Jag är ganska ny på php och jag vill vara säker på att jag gör detta rätt. Obs detta exempel gäller bara strängar, jag vet att man måste validera tal på annat sätt.
Koden nedan antar att MagicQuotes är avstängt.
$sName = $_POST["sName"];
if ( $bMySql )
{
// mySql
$sSql = "INSERT INTO test (name) VALUES('" . addslashes($sName) . "')";
}
else
{
// msSql
$sSql = "INSERT INTO test (name) VALUES('" . str_replace("'", "''", $sName) . "')";
}
Är detta korrekt eller behöver man göra något mer?
Gammal tråd men jag började fundera på samma sak. Satt och trixade med min gästbok men lyckades inte utföra några sql queries. Behöver man använda addslashes och kolla tecken med php + mySQL? :q
Normalt sett så är magic_quotes_gpc satt och då behöver du inte köra addslashes, eftersom PHP redan gjort det åt dig. Kolla upp hur det är på din server.
Sen kan det finnas anledning att att köra det du ska visa på sidan genom htmlentities eller liknande för att inte din HTML-kod ska sabbas. Detta gör du när du visar t.ex meddelande (använd det dock mot alla postfält där besökaren fyller i)