• 19.07.2025, 00:27
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

sTa-AzRAel

Full Member

PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 01:20

Hi Leute,

ich habe folgendes Problem:
Beim Eintragen von einem PHP Script in MySQL geht jeder \ verloren.

Hier ein auszug von meinem Script:

Quellcode

1
2
3
4
if (!isset($gb) && ($igb=="1")) {
$eintrag=nl2br(htmlentities($eintrag));
$save="INSERT INTO guestbook (eintrag) values('$eintrag'')";
mysql_query($save, $connect);


Wenn $eintrag z.b. lediglich" \o/" ist wird nur "o/" ausgegeben. und in der Datenbank steht auch nur ein "o/"

Woran kann das liegen, dass ein \ schlichtweg ignoriert wird?

Gruß Dominik
19.01.2003 WaKü on Board ;D Ich traue jedem, nur nicht dem Teufel der in jedem steckt

xx_ElBarto

God

Re: PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 01:23

du musst glaube ich zwei backslahs machen, dann steht einer drin, warum das nu so is weiß ich auch gerade net ;D

Shoggy

Sven - Admin

Re: PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 01:46

Der Backslash ist ein Kontroll-Zeichen mit dem man normalerweise bestimmte Kommandos startet.

Wie schon richtig gesagt wurde musst du "\\" schreiben.
Aber zum Glück befinden wir uns in einer modernen Programmiersprache mit Lösungen für dieses Problem:

$eintrag=AddSlashes($eintrag)

diesen zusätzlichen Backslash wird man auch ebenso einfach wieder los:

$eintrag=StripSlashes($eintrag)

sTa-AzRAel

Full Member

Re: PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 02:08

alles klar :D

ihr seid meine helden ;)
19.01.2003 WaKü on Board ;D Ich traue jedem, nur nicht dem Teufel der in jedem steckt

Y0Gi

God

Re: PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 05:30

Quellcode

1
values('$eintrag'')";

aua aua. gerade bei sowas sind addslashes() bzw. mysql_escape_string SEHR wichtig.

weiterhin solltest du mit $_POST['varname'] bzw. $_GET['varname'] arbeiten. zum einen, weil $varname im restricted_mode nicht existiert, zum anderen weil man sonst uninitialisierte variablen mittels parameter überschreiben kann. infos dazu gibts an jeder guten php-ecke.

und WENN du schon INSERT INTO groß schreibst - und das ist gut so - dann aber auch bitte alle keywords, sprich VALUES. :)

und noch so ne anregung: warum machst du nl2br() vorm speichern? mach das doch lieber bei der ausgabe, dann sind weniger und im zweifelsfall manuell besser lesbarere daten in der datenbank, weil die br-tags fehlen.

ThimschE

unregistriert

Re: PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 10:15

Ich finde es immer wieder faszinierend, wenn Yogi loslegt. :)
Bekomme das ja häufig mit..... ;)

Bluefake

God

Re: PHP MySQL Übergabe: Backslash

Freitag, 18. Juni 2004, 10:59

Wenn Y0Gi erstmal angefangen hat, reicht das immer für eine Gänsehaut. ;D

RESPECT!
Arbeiten am Mac ist natürlich keine Arbeit, sondern sinnvoll gestaltetes Glück.

Y0Gi

God

Re: PHP MySQL Übergabe: Backslash

Samstag, 19. Juni 2004, 16:13

Zitat von »Bluefake«

Wenn Y0Gi erstmal angefangen hat, reicht das immer für eine Gänsehaut. ;D

muahahaha. :) ich hab ja eigentlich was gegen quotes in der sig, aber in diesem fall mach ich mal ne ausnahme!