Avatar billede dennism Nybegynder
26. januar 2004 - 16:28 Der er 11 kommentarer og
1 løsning

PHP - stripslashes

Jeg har denne text-box:

<INPUT TYPE=text name=title class=but size=25 maxlength="40" value="<?PHP echo"$_POST[title]"; ?>">

Jeg vil nu have tilføjes en "stripslashes" til variablen, og skriver derfor følgende:

<INPUT TYPE=text name=title class=but size=25 maxlength="40" value="<?PHP echo stripslashes($_POST[title]); ?>">

Men hvis $_POST[title] f.eks. indeholder test"", så står der test i boxen, og ikke test""

Hvad er fejlen?
Avatar billede taskmgr Nybegynder
26. januar 2004 - 16:49 #1
Er magic_quotes_gpc sat til?

I så fald vil " ' \ og NUL's blive escaped automatisk.

Brug i øvrigt $_GET['foo'] i stedet for $_GET[bar]
Avatar billede taskmgr Nybegynder
26. januar 2004 - 16:49 #2
I så fald vil " ' \ og NUL's blive escaped automatisk i GET/POST/Cookies
Avatar billede dennism Nybegynder
26. januar 2004 - 16:51 #3
Jeg er ikke intereseret i at lave om på opsætningen på serveren. Jeg vil hellere have denne tekst box til at virke!? Den skulle da ik gerne slette "" af sig selv!?
Avatar billede dennism Nybegynder
26. januar 2004 - 16:54 #4
Se her:

<INPUT TYPE=text name=title class=but size=25 maxlength="40" value="<?PHP echo stripslashes($_POST[title]); ?>">
<TEXTAREA class=textarea name=text ROWS="5" COLS="50"><?PHP echo stripslashes($_POST[title]); ?></TEXTAREA>

I text-boxen står der test, og i textarea'et står der test""

Hvorfor står der ik det samme?
Avatar billede taskmgr Nybegynder
26. januar 2004 - 17:02 #5
htmlspecialchars(stripslashes($_POST['title']));
Avatar billede dennism Nybegynder
26. januar 2004 - 17:05 #6
Oki, må jeg få en forklaring? :)

Også på hvorfor det er forskelligt fra de to form-typer!?
Avatar billede dennism Nybegynder
26. januar 2004 - 17:08 #7
Kan jeg også godt bruge "htmlspecialchars" i min textarea?
Avatar billede dennism Nybegynder
26. januar 2004 - 17:09 #8
.. Uden at det ødelægger noget.
Avatar billede taskmgr Nybegynder
26. januar 2004 - 17:10 #9
Jeg er ikke helt sikker på den her, men når man bruger input typen "text", så bliver alt efter et escaped tegn vist nok fjernet.

...og du har således magic_quotes_gpc sat til :)
Avatar billede taskmgr Nybegynder
26. januar 2004 - 17:11 #10
Det skulle du godt kunne gøre
Avatar billede Slettet bruger
26. januar 2004 - 18:32 #11
Du kan jo prøve at overveje, hvordan de ville se ud, når den ankommer til browseren

<INPUT TYPE=text name=title class=but size=25 maxlength="40" value="<?PHP echo stripslashes($_POST[title]); ?>">

bliver til:

<INPUT TYPE=text name=title class=but size=25 maxlength="40" value="tekst""">

Og dette vil naturligvis forvirre den stakkels browser.

<TEXTAREA class=textarea name=text ROWS="5" COLS="50"><?PHP echo stripslashes($_POST[title]); ?></TEXTAREA>

bliver til:

<TEXTAREA class=textarea name=text ROWS="5" COLS="50">tekst""</TEXTAREA>

Og det kan browseren sagtens forstå.
Avatar billede Slettet bruger
26. januar 2004 - 18:34 #12
Og ja, du kan sagtens bruge htmlspecialchars på teksten til dit textarea også.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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