Supportnet / Forum / Skripte(PHP,ASP,Perl...)
datensätze mit Ausführungszeichen wiederverwenden??
Frage
hallo...
ich lese aus einer db in einem datenfeld datensätze aus, die zu 10%
ein " enthalten...
da ich die seite mit php so gestaltet habe das sie sich selbst aufruft(php_self), und diesen datensatz an sich selbst übergibt, um mehrer datensätze durchzublättern...gibt es in 90% kein problem..aber wenn z.b. in der db sowas wie "Kirche";Gebäude;Stasse steht
schreibt php selbst in die variable zwei backslashe rein also...
\"Kirche\";Gebäude;Strasse
wenn sich beim blättern auf der seite diese variante in der variablen befindet, sucht er natürlich in der db
vergebens...
wie kann ich die \ wieder entfernen..
sodass die variable im orginalzustand bleibt und er di db auch danach absucht????
Antwort 1 von Nessus
Hi,
bei der Ausgabe "ereg_replace" verwenden.
http://de2.php.net/manual/de/function.ereg-replace.php
HTH
Nessus
bei der Ausgabe "ereg_replace" verwenden.
http://de2.php.net/manual/de/function.ereg-replace.php
HTH
Nessus
Antwort 2 von raben.lazarus
jo das ist ne idee..
habs mal so probiert..
$suw=ereg_replace("\", "", $zeichenkette);
dann kommt allerdings..
Parse error: parse error, unexpected '\"' in C:\FoxServ\www\wandmalereien1\php\maldetails.php on line 14
habs mal so probiert..
$suw=ereg_replace("\", "", $zeichenkette);
dann kommt allerdings..
Parse error: parse error, unexpected '\"' in C:\FoxServ\www\wandmalereien1\php\maldetails.php on line 14
Antwort 3 von raben.lazarus
ups ich habs danke schön
$suw=ereg_replace("[\]","", $suw);
$suw=ereg_replace("[\]","", $suw);
Antwort 4 von muevol
Hi,
die Funktion stripslashes() ist einfacher
die Funktion stripslashes() ist einfacher
Antwort 5 von raben.lazarus
stimmt super geht auch....
llerdings funktioniert mein weiterblättern noch nicht...
in der variable steht jetzt zwar "Kirche";....
aber irgendwas mit der sql abfrage stimmt nicht, wenn ich die seite neu aufrufe bzw umblätter ist die variable leer...hmm
llerdings funktioniert mein weiterblättern noch nicht...
in der variable steht jetzt zwar "Kirche";....
aber irgendwas mit der sql abfrage stimmt nicht, wenn ich die seite neu aufrufe bzw umblätter ist die variable leer...hmm
Antwort 6 von Nessus
Wenn die Var leer ist, dürftest Du ohne eine genauere Betrachtung ein kleineres Problem mit register_globals haben.
Nessus
Nessus
Antwort 7 von raben.lazarus
hmm aha..
das bedeutet ??
(ich such nebenbei schon ;-))
das bedeutet ??
(ich such nebenbei schon ;-))
Antwort 8 von raben.lazarus
hm, ok klar ich benutze natürlich
$HTTP_POST_VARS[];
aber das wir uns richtig verstehen...
(steht auch oben) nur bei ca. 10% der daten passiert das... und zwar denen die ein Anführungszeichen haben bei den anderen 90% gibt es kein problem...
$HTTP_POST_VARS[];
aber das wir uns richtig verstehen...
(steht auch oben) nur bei ca. 10% der daten passiert das... und zwar denen die ein Anführungszeichen haben bei den anderen 90% gibt es kein problem...
Antwort 9 von Nessus
Dann hast Du die oben angegebenen Antworten falsch eingesetzt, oder ich habe was falsch verstanden.
Was mich wundert, das Du mit solchen Datensätzen arbeitest. Wäre da nicht der bessere Angriffspunkt?
Nessus
Was mich wundert, das Du mit solchen Datensätzen arbeitest. Wäre da nicht der bessere Angriffspunkt?
Nessus
Antwort 10 von raben.lazarus
leider nein ist eine bestehende db(aus access konvertiert) mit
über 90.000 einträgen in verschiedenen tabellen... und (denn die frage hab ich den verantworlichen auch schon gestellt) die anführungszeichen sollen bleiben :-(
stell die vor du machst ne sql abfrage in einer "phpseite" ind der am ende steht...
WHERE tblBild.Stichwort='$suw'";
die ergebnisse werden in arrays abgespeichert... irgenwo auf der seite gibt es einen vor und einen zurück knopf und die "durchblättern" das array...
so das alle gefundenen datensätze nacheinander angezeigt werden...
wie gesagt klappt wunderbar...
bis auf die datensätze die anführungszeichen haben
z.b. "Kirche";Gebäude;St...
wenn da nur steht Gebäude;Strasse..etc
gibt es kein prob!
über 90.000 einträgen in verschiedenen tabellen... und (denn die frage hab ich den verantworlichen auch schon gestellt) die anführungszeichen sollen bleiben :-(
stell die vor du machst ne sql abfrage in einer "phpseite" ind der am ende steht...
WHERE tblBild.Stichwort='$suw'";
die ergebnisse werden in arrays abgespeichert... irgenwo auf der seite gibt es einen vor und einen zurück knopf und die "durchblättern" das array...
so das alle gefundenen datensätze nacheinander angezeigt werden...
wie gesagt klappt wunderbar...
bis auf die datensätze die anführungszeichen haben
z.b. "Kirche";Gebäude;St...
wenn da nur steht Gebäude;Strasse..etc
gibt es kein prob!
Antwort 11 von semi
Ich habe mal probeweise einen Datensatz mit Anführungszeichen erstellt.
"Test"
die folgenden Abfragen lieferten den Datensatz korrekt.
Gruß,
Michael
"Test"
die folgenden Abfragen lieferten den Datensatz korrekt.
SELECT ... WHERE name='"Test"'
SELECT ... WHERE name='\"Test\"'Wenn es für Dich mehr ein Anzeigeproblem ist, dann verwende, wie muevol schon schrieb, stripslashes beim Speichern?Gruß,
Michael
Antwort 12 von pcknowhower
Gelöscht wg.HP-Eigenwerbung/Spamming

