Seite 1 von 1

PHP Setzt bei für die Zeichen ' und " immer ein \ vor,

Verfasst: 16.04.2007 16:59
von Mafia GmbH
Hallo,
HAbe eine Frage. Ich muß eine Suche Programmieren. Und wenn die User ' oder " Zeichen eingeben macht PHP automatisch ein \ Zeichen da vor.
Wie kann ich dies aber verhindern, bzw. Abstellen das es bei jedem ' und " Zeichen ein \ Zeichen davor setzt.

Weil ich muß dem User zeigen nach was er gerade gesucht hat, und PHP setzt automatisch in die TEXTBOX gleich \' rein. Und desto heufiger der user auf suchen klickt desto mehr macht PHP \ Zeichen dahinter. Also das nach ein par klickst shcon so aussehen wird. \\\\\\\\\'
Naja, ist zimlich blöd, ich weiß das diese Funktion gut ist das man bei der Datenbank kein Blödsin durch die Suchfunktion gemacht werden kann, aber dafür habe ich eine eigene Funktion vorgesehen.


Kann man dies bei PHP irgend wie sagender soll die POST eingangsvariablen nicht bearbeiten???

Verfasst: 16.04.2007 17:09
von Balint

Verfasst: 16.04.2007 18:22
von BruceCompanys
Eine schöne Funktion dafür:

Code: Alles auswählen

function quote_core($text){
    if (!is_array($text)) return stripslashes($text);
    $r = array();
    foreach ($text as $k => $v)
    {
        $r[$k] = (!is_array($v)) 
            ? stripslashes($v)
            : quote_core($v);
    }
    return $r;
} 

Verfasst: 16.04.2007 18:35
von mgutt
Naja die Funktion brauchst Du nur, wenn die Eingabe ein Array ist. Hier geht es aber nur um Daten aus einem Feld und da reicht stripslashes().

Gruß

Verfasst: 16.04.2007 20:24
von S2B
Btw: Bei der Funktion kann man sich das zusätzliche Array auch sparen:

Code: Alles auswählen

function quote_core($text){
    if (!is_array($text)) return stripslashes($text);
    foreach ($text as $k => $v)
    {
        $text[$k] = (!is_array($v))
            ? stripslashes($v)
            : quote_core($v);
    }
    return $text;
} 

Verfasst: 11.06.2007 19:15
von Dungeonwatcher
Hi große Meister! 8)

Wie müsste dann folgender Code aussehen, damit die Backslashes nicht mehr mit angezeigt werden?

Code: Alles auswählen

	if ( $decrypt )
		{
			$cipher_alg = MCRYPT_RIJNDAEL_256;
			$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
			$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
			$key = "This is a very secret key";
			$decrypted_message = str_replace("<b>Um diese verschl&uuml;sselte Nachricht zu lesen, gebe das Passwort unten rechts ein und klicke dann auf den Button \"Nachricht entschl&uuml;sseln\":</b>\n\n", "", $private_message);
			$decrypted_message = str_replace("<br />", "", $decrypted_message);
			$decrypted_message = trim(mcrypt_decrypt($cipher_alg, $encryption_key, pack("H*", $decrypted_message), MCRYPT_MODE_CFB, "$iv"));
			$private_message = str_replace("\r\n", "<br />", $decrypted_message);
			$decrypted_message = str_replace("\"", "\"", $decrypted_message);
		}