Problem maskierung zeichen

falls es mit strip_slashes() nicht t mach es doch per str_replace is zwar nicht die schönste variante , sollte aber gehen.
 
Also ich hab jetzt nochml ne ganze menge probiert!
Hab festgestellt, dass beim 2. Post der Variable( Vorschau, Gebühren und Speichern) alles nach den doppelten anführungstrichen verschwindet.
Hab noch folgendes hinzugefügt, bringt aber bei den doppelten Anführungstrichen nichts:
PHP:
function array_stripslashe(&$var)
{
    if(is_string($var)) {
        $var = stripslashes($var);
    } 
    else {
        if(is_array($var))
        {
            foreach($var AS $key => $value) {
                array_stripslashes($var[$key]);
            }
        }    
    }
}

if(get_magic_quotes_gpc()) { 
        array_stripslashe($_GET);
        array_stripslashe($_POST);
        array_stripslashe($_COOKIE);
}

Mit den Varibalen wird nichts weiter gemacht bis zum Datenbankeintrag. Es fehlt halt beim 2.mal posten alles nach den doppelten Anführungsstichen.
Jemand noch ne Idee?

mfg

Sebastian
 
Wichtig ist es nicht die Übersicht zu verlieren. Allgemein lautet der Leitspruch: Eingaben validieren/filtern, Ausgaben maskieren. Eingaben sind dabei alle von außen kommende Daten, also sowohl die per GET-/POST-Methode übergebenen Daten also auch Cookie-Daten oder andere von außen manipulierbaren Daten. Ausgaben ist alles, was das PHP-Skript verlässt, also sowohl normale Ausgaben an den Client aber auch an andere Subsysteme wie etwa die Datenbank.

In deinem Fall würde ich die Magic Quotes deaktivieren und die Maskierung der Metazeichen manuell vornehmen. Bei Daten für MySQL-Datenbankabfragen wäre es die mysql_real_escape_string() und bei Daten für HTML die htmlspecialchars()-Funktion. Mehr ist eigentlich nicht notwendig.
 
Danke!
Naja es ist nicht so einfach die Übersicht zu behalten, wenn man einen Kleinanzeigenmarkt programmiert. Ist halt dass letzte Problem, was ich habe.

Mir ist aber aufgefallen, dass es garnicht daran liegt. Bei der Ausgabe im input oder textarea kommen die Probleme:

PHP:
<input maxlength="255" size="40" type="text" name="anz_titel" value='<?=$anz_titel;?>' class="form" />
Bei dem Beispiel wird alles angezeigt, außer es gibt einfache Anführungsstriche, da wird der Text danach anbgeschnitten.

PHP:
<input maxlength="255" size="40" type="text" name="anz_titel" value="<?=$anz_titel;?>" class="form"/>
Hier ist es genau andersherum, also Problem bei doppelten Anführungstrichen.

Kann ich es irgendwie umgehen? Oder ist es dass selbe Problem?

mfg
 
Zurück