Tills någon råkar stänga av magic_quotes ja. Då är det frittfram.
Vilket de är från början i PHP >= v4.
Default-inställningen är fortfarande att magic_quotes_gpc är satt.
Däremot är den rekommenderade inställningen att det inte ska sättas.
De flesta (om inte alla) webhotell har det satt, och lär väl fortsätta så långt in i framtiden, om de har något säkerhetstänkande. Annars är väl risken stor att vi får se massor av SQL-injections även i PHP-skript.
Det är därför man gör klokt i att köra funktionen addslashes() manuellt på de okända variabler som skickas till en sql-fråga.
Och får frågan av sina användare varför de får backslash före sina citationstecken (eftersom maqic_quotes sannolikt är satt).
Antingen får man kolla efter i inställningarna om magic_quotes_gpc är satt, och köra addslashes om det inte är satt.
Eller så får man i sitt skript kolla om det är satt, och om inte köra addslashes.
Detta börjar mer likna en tråd i PHP-forumet :)
och ska vi diskutera vidare de rent tekniska aspekterna i PHP kanske vi ska göra det i PHP-forumet.
Blir lite långtråkigt för icke-PHP-are annars. ;)
Och får frågan av sina användare varför de får backslash före sina citationstecken (eftersom maqic_quotes sannolikt är satt).
Men det får de ju ändå om inte stripslashes() körs innan informationen presenteras!?
Och får då frågan av användarna varför deras backslash är bortplockade :)
MySQL strippar backslashes när den lägger in värdet, och du får då en dubbel strip. Hur det är med andra databaser vet jag inte.
Generellt kan man inte säga att man ska köra addslashes. Först måste man kolla om PHP redan gjort detta.
Är man ambitiös gör man detta i sitt skript, och kör addslashes vid behov.
Är man något mindre ambitiös så kollar man i PHP-inställningarna om behovet finns.
Varken på min lokala windowsmaskin eller på webbhotellet kan jag få det att fungera.
Slashes hänger kvar, och det bör de också göra då $_POST-arrayen sätts innan någon kod körts på sidan.