Eingabe Sonderzeichen verhindern!?

markberg

Erfahrenes Mitglied
Hallo,
ich lasse über ein Form Einträge erstellen. Wenn jemand "hallo" eingibt, erscheint bei der Ausgabe ja \"hallo\"...
Kann od. soll man das bereits bei der Speicherung in der DB verhindern oder lieber bei der Ausgabe? Und wie stellt man das als Anfänger an :(

thx
 
Dass den Anführungszeichen bereits ein Maskierungszeichen vorangestellt ist, liegt wohl an den so genannten Magic Quotes. Deaktiviere diese einfach und das Problem sollte beseitigt sein.
 
Hi,
Danke erstmal.Ich habe jetzt dieses dazu gefunden:

set_magic_quotes_runtime(0);

Setze ich dies ins Form oder in der Ausgabeseite?

Oder gibt es noch eine Möglichkeit, dies im "Ganzen" zu deaktivieren?

Nochmal thnx :)
 
Setze am besten Folgendes in einer „.htaccess“-Konfigurationsdatei im Hauptverzeichnis ein:
Code:
php_flag   magic_quotes_gpc   off
 
Muss nochmal stören,
also das mit der .htaccess Datei haut nicht hin (Kann keine Seite mehr aufrufen). Habe gegoogelt, geht wohl anscheinend fast nie...

Gibt es da noch eine andere Lösung?

Habe damit leider keine Erfahrungen...

thx
 
Dann bleibt dir wohl nichts anderes übrig als nachzuarbeiten:
PHP:
<?php

	function strip_magic_quotes( $mixed )
	{
		if( is_array($mixed) ) {
			return array_map(__FUNCTION__, $mixed);
		}
		return stripslashes($mixed);
	}

	// strip magic quotes from gpc-variables
	if( (bool) ini_get('magic_quotes_gpc') === true ) {
		array_walk($_GET,    'strip_magic_quotes');
		array_walk($_POST,   'strip_magic_quotes');
		array_walk($_COOKIE, 'strip_magic_quotes');
	}

?>
Dieser Algorithmus sorgt dafür, dass die Magic Quotes wieder automatisch entfernt werden. Daher sollte dieser am Anfang eines Skriptes ausgeführt werden.
 
Zurück