* On Thu, 26 Jun 2003 at 20:30 +0200, Dieter Kroemer wrote: [...]
Ich möchte den folgendem Befehl in _eine_ Zeile schreiben, acuh wenn es vielleicht nicht schön ist; es soll also keine extra Variable hierfür erstellt werden:
mysql_query("INSERT INTO gaestebuch (mail, name, eintrag) VALUES ('$_REQUEST['feldname']' ...");
aber das kann natürlich nicht funktionieren, da die Anfangs-' und End-' sich gegenseitig in die Quere kommen. Gibt es eine Möglichkeit, wie man diese ' irgendwie schachteln kann (also ähnlich einer Klammer auf/zu)? Die " kann ich ja auch nicht nehmen, da diese ja auch schon in Gebrauch sind :-((
Wenn ich mich richtig erinnere, werden die Arrayindizes in Strings überhaupt nicht in Anführungszeichen gepackt, sollte also so sein: mysql_query("INSERT INTO gaestebuch (mail, name, eintrag) VALUES ('$_REQUEST[feldname]' ..."); Die Anführungszeichen machen aber kein Problem. Was Dir aber sehr wohl ein Problem macht könnte, ist übermäßiges Vertrauen. Alles, was von Aussen kommt, ist per Definition äusserst evil, so auch alles, was in $_REQUEST kommt. Niemand hindert $FOO daran, in feldname so etwas wie "xxxx, yyy, zzz); delete * from geastebuch;" o.ä. (ich weiß jetzt nicht genau, ob das so wirklich funktionieren würde) zu übergeben. Felder von Draussen _müssen_ wie ein rohes Ei behandelt werden, alles andere ist grob fahrlässig. Für Eintragungen in MySQL-Datenbank gibt es die Funktion mysql_escape_string, sähe also so aus: mysql_query("INSERT INTO gaestebuch (mail, name, eintrag) VALUES ('" . mysql_escape_string($_REQUEST['feldname']) . "' ..."); ^ ^ Die beiden Anführungszeichen sind dann mgl.weise hyperfluid, ausprobieren. Mit dem Operator . können zwei Strings zusammengehängt werden, damit brauchst Du keine Variablen o.ä. anpatzen.
Ich weiß nicht, ob ich mich klar ausdrücke, daher noch ein Bsp.: '123'456'899' ^ ^ ^ ^ 1.' 2.' 3.' 4.'
Wie kann man einem php-Script erklären, dass das 2.' nicht das Ende-' vom ersten 1.' sondern das Anfangs-' vom 4.'ist?
Escapen. Maskier die ', die nicht Anführungszeichen sein sollen, mit einem Backslash: '123\'456\'899'. /apm -- GPG welcome, request public key: mailto:adalbert+key@lopez.at