Frage

Ich habe dieses Formular:

<form name="myForm" action="#">
     <input type="text" name="firstField" />
     <input type="text" name="secondField" />
     <input type="submit" name="submitButton" />
</form>

, und ich habe eine Ajax-Anfrage:

$('input[type="submit"]').click(function(){
       var serialized = $('form').serialize();
       //ajax request
       $.ajax({
                type : "POST",
                url : "takeAction.php",
                data : serialized,
                succes : function(){
                    alert('done');
                }
       }); 
});

das Problem ist, dass, wenn eine meiner Felder Wert „'“ enthält, wie (wer hier der Chef ist) meine Ajax-Anforderung nicht abgeschlossen werden kann (Ich versuche, eine MySQL-Zeile zu aktualisieren, aber der Code fehlschlägt, ich habe keine Fehler nur erhalten dass meine Reihe nicht aktualisiert wird). Ich weiß, dass es etwas über Zitate ist, aber ich don t wissen, wie es zu tun. Dank

War es hilfreich?

Lösung

Das Problem ist in Ihrem PHP-Code auf dem Server, in Ihrem HTML oder JavaScript.

Sie sind wahrscheinlich die eingereichten Daten Werte direkt in eine SQL-Abfrage schreiben, ja:?

$query = sprintf("SELECT * FROM users WHERE user='%s'", $user);

Sie müssen entweder benutzen Prepared Statements verwenden oder mysql_real_escape_string() Ihre Werte zu entkommen:

$query = sprintf("SELECT * FROM users WHERE user='%s'",
                  mysql_real_escape_string($user));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top