Das """ Zeichen maskieren

Das """ Zeichen maskieren

am 11.11.2006 10:49:32 von Joerg Trumpfheller

Hallo Leute,

ich habe mir zwei Formulare gebaut, mit denen ich meine Linksammlung
verwalten will. Auf der einen Seite gibt es ein Upload Formular, mit
dem die url-adresse, der url-name, alphabetische Zuordnung und noch ein
paar andere Informationen in die Datenbank geschrieben werden. Das
andere Formular ist zum updaten der gespeicherten Datenbankeinträge,
indem ein Eintrag selektiert wird und die Informationen zurück in die
Formularfelder geschrieben werden. Das klappt soweit auch ganz gut nur
kommt jetzt der Sonderfall, wo ich auch schon archivmäßig gesucht
habe, aber die Beispiele haben mir nicht richtig weitergeholfen. Der
Spezialfall ist, wenn im urlnamen ein ' vorkommt z.B. Joerg's Website.
Beim Insert in die Tabelle kann ich ja vorher sagen:
$urlName =3D str_replace("'", "\'", $_GET['urlName']);
$urlName wird dann so in der Datenbank abgelegt wie angezeigt.

Selektiere ich mir den Eintrag und die Infos aus der Tabelle und will
ihn wieder im im Formular mit

while ($row =3D mysql_fetch_array($result, MYSQL_ASSOC))
{
...
$urlName =3D $row['urlName'];
...
}
...
"value=3D'$urlName'" ?>>

anzeigen, wird es nach Joerg abgeschnitten. str_replace funktioniert da
nicht, weil es dann nach \ abgeschnitten wird,

urlencode($urlName) sieht dann so aus Joerg%27s+Website, also dachte
ich mir kann ich doch das dann wieder mit str_replace für den value
des input-tags abarbeiten

$urlName =3D str_replace("+", " ", $urlName);
$urlName =3D str_replace("%27", "'", $urlName);
echo "value=3D'$urlName'"
?>>

wodurch ich aber wieder genau bei dem abgeschnittenen Text lande. Also,
welche php-Funktion kann das. Ich habs nicht gefunden.

Gruß Joerg

Re: Das """ Zeichen maskieren

am 11.11.2006 11:25:39 von Niels Braczek

Joerg Trumpfheller schrieb:

> $urlName =3D str_replace("'", "\'", $_GET['urlName']);
> $urlName wird dann so in der Datenbank abgelegt wie angezeigt.

$urlName =3D mysql_real_escape_string( $_GET['urlName'] );

> while ($row =3D mysql_fetch_array($result, MYSQL_ASSOC))

while ( $row =3D mysql_fetch_assoc( $result ) ) {

> > "value=3D'$urlName'" ?>>

htmlspecialchars( $urlName ); ?>">

Da du offensichtlich völlig neu in der Materie bist, seien dir die
wichtigsten Quellen ans Herz gelegt:

Manual: http://www.php.net/manual/en/
FAQ: http://www.php-faq.de/

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Das """ Zeichen maskieren

am 11.11.2006 11:29:11 von Udo Neist

Joerg Trumpfheller wrote:

> Hallo Leute,
>
> ich habe mir zwei Formulare gebaut, mit denen ich meine
> Linksammlung verwalten will. Auf der einen Seite gibt es ein
> Upload Formular, mit dem die url-adresse, der url-name,
> alphabetische Zuordnung und noch ein paar andere Informationen in
> die Datenbank geschrieben werden. Das andere Formular ist zum
> updaten der gespeicherten Datenbankeinträge, indem ein Eintrag
> selektiert wird und die Informationen zurück in die Formularfelder
> geschrieben werden. Das klappt soweit auch ganz gut nur kommt
> jetzt der Sonderfall, wo ich auch schon archivmäßig gesucht habe,
> aber die Beispiele haben mir nicht richtig weitergeholfen. Der
> Spezialfall ist, wenn im urlnamen ein ' vorkommt z.B. Joerg's
> Website. Beim Insert in die Tabelle kann ich ja vorher sagen:
> $urlName = str_replace("'", "\'", $_GET['urlName']); $urlName wird
> dann so in der Datenbank abgelegt wie angezeigt.

Schau dir die Funktionen addslashes bzw. stripslashes oder
mysql(i)_real_escape_string mal genauer an. Die sollten dein
Problem lösen können.

Gruß
Udo

Re: Das """ Zeichen maskieren

am 11.11.2006 13:16:49 von Joerg Trumpfheller

Danke Leute,

ja als so ein Newbie versuch ich mich gerade Stück für stück in die
Materie einzuarbeiten und manchmal bleibt man an einer Sache hängen,
wo man nicht weiter weiß.
Ich werd dann ausprobieren, ob's funktioniert. Die beiden genannten
Quellen sind mir bekannt, vieleicht aber noch nicht ganz vertraut, denn
es stellt sich ja immer die Frage, wo man sucht. Ich hab mich halt bei
string-Funktionen und url-Funktionen durchgelesen und irgendwann
aufgegeben es weiter auszuprobieren. Deswegen ja auch hier meine Frage
und nach dem Motto: "Da werden Sie geholfen" die hoffentlich
entscheidende Anwort bekommen.=20

Joerg's Gruß