Avatar billede kongfjong Nybegynder
30. april 2005 - 18:39 Der er 13 kommentarer og
1 løsning

Brug af addslahses() og stripslashes()

Hey;

Jeg vil gerne vide lidt mere om de tofunktioner. Hvornår bruger man dem typisk osv. Har læst lidt php.net, men der fås den kun på engelsk fordi når jeg læser den på dansk f****r siden af en eller anden grund op...
Avatar billede elskermad.dk Nybegynder
30. april 2005 - 18:43 #1
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 :)
Avatar billede kongfjong Nybegynder
30. april 2005 - 18:47 #2
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?
Avatar billede kongfjong Nybegynder
30. april 2005 - 18:49 #3
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?
Avatar billede detox Nybegynder
30. april 2005 - 18:56 #4
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.
Avatar billede kongfjong Nybegynder
30. april 2005 - 19:00 #5
Men selvom det ikke gavner at bruge stripslashes ved udtræk, skal man stadig bruge addslashes ved indsættelse?
Avatar billede detox Nybegynder
30. april 2005 - 19:10 #6
Ja, men du skal kun bruge addslashes, hvis de ikke er tilføjet automatisk fx med magic_quotes_gpc.
Avatar billede detox Nybegynder
30. april 2005 - 19:15 #7
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']);
Avatar billede kongfjong Nybegynder
30. april 2005 - 19:31 #8
okaj, er magic_qoutes_gpc ikke sat som standard?
Avatar billede detox Nybegynder
30. april 2005 - 19:45 #9
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).
Avatar billede kongfjong Nybegynder
30. april 2005 - 20:17 #10
Nej self:D
Avatar billede knaldebang Nybegynder
30. april 2005 - 21:51 #11
Men hvis data kommer fra en tabel, er stripslashes aldrig nødvendigt eller hvordan, detox?
Avatar billede detox Nybegynder
30. april 2005 - 22:45 #12
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.
Avatar billede kongfjong Nybegynder
26. maj 2005 - 18:52 #13
svar detox?:)
Avatar billede detox Nybegynder
10. juni 2005 - 00:09 #14
Værs'go
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester