funktionerne bruges til at escape tekster inden man smider den i en database! dvs at man forbedre tegn som " og ' på at blive lagt ind i rækken (jeg er ikke klar over om flere tegn bliver behandlet)
du skal bruge addslahses når du smider det ind i en tabel (der vil blive smidt en slash (\) foran de "forbudte" tegn) og stripslashes når du har hævet det ud, for at få det til at se rigtigt ud igen :)
Okay.
Jeg bruger self også htmlspecialchars() når jeg trækker data ud af tabellen, og de lapper ikke indover hverken addslashes eller stripslashes vel?
Og hvilke skal bruges først? altså skal det være stripslashses(htmlspecielchars($streng)) eller omvendt når jeg hiver data ud af tabellen?
Og så lige et tillægssprøgsmål:
Når man nu også bruger nl2br hvordan vil et udtræd af tabbellen så se ud, når jeg bruger de tre funktioner?
Lige en ting. Det er en misforståelse at der skal bruges stripslashes ved udtræk fra databasen. De ekstra \ tegn bliver ikke indsat i databasen, men tjener kun et formål ved overførslen. Det gavner altså ikke at bruge stripslashes på dataudtræk.
Et sted hvor man derimod kan have gavn af stripslashes er når man fx skal skrive data, hvor der er tilføjet addslashes (fx med magic_quotes_gpc fra en form), til en fil.
Men selvom det ikke gavner at bruge stripslashes ved udtræk, skal man stadig bruge addslashes ved indsættelse?
Ja, men du skal kun bruge addslashes, hvis de ikke er tilføjet automatisk fx med magic_quotes_gpc.
Altså hvis data kommer fra GET, POST eller COOKIE, bør du tjekke om de er sat i forvejen. Til det formål kan du bruge get_magic_quotes_gpc(), fx:
$data = get_magic_quotes_gpc() ? $_POST['data'] : addslashes($_POST['data']);
okaj, er magic_qoutes_gpc ikke sat som standard?
Jo, det mener jeg, men hvis koden skal være portabel kan man jo ikke regne med den altid er sat (eller at det ikke bliver ændret på en given serveropsætning).
Men hvis data kommer fra en tabel, er stripslashes aldrig nødvendigt eller hvordan, detox?
knaldebang -> Kun hvis der er tilføjet addslashes til data der var escapet i forvejen. fx hvis man bruger addslashes samtidig med magic_quotes_gpc er sat.