PDA

Bekijk Volledige Versie : Addslashes and stripslashes



Haico
07/03/05, 19:45
Hallo iedereen,

Ik wil een PHP pagina hebben die deze 3 stappen kan uitvoeren:

1) een formulier laten invullen door de bezoeker.
2) de ingevulde gegevens ter controle laten zien met de keuze 'bewerken' of
'versturen'. Bij de keuze bewerken ga je terug naar stap 1. De keuze
versturen stuurt je door naar stap 3.
3) Het plaatsen van de ingevulde data in een database

Nu heb ik al talloze scripts doorgeplozen, gezocht op Google en boeken
doorgespit maar het is me nog steeds niet gelukt om de zin;

[ Ik denk dat ik 's avonds kom maar 'tezijnertijd' zal ik wel inzien dat
3/4 minder is dan "2" ]

die ik in stap 1 heb ingevuld alle mogelijke stappen te laten doorlopen en
er nog steeds hetzelfde te laten uitkomen. Is er iemand die mij kan
schrijven wat ik in case 1,2 en 3 moet gebruiken van het arsenaal ;
addslashes, stripslashes, nl2br, htmlspecialchars ? Oh ja, ik zit gehost bij
Digitalus en heb werkelijk geen flauw idee of bepaalde waarden op ON of OFF
staan....

Alvast bedankt!

Haico

=========== stukkie proefcode =======================

<?php
switch ( $action ) {
case "1": // Stap 1 - het formulier invullen of bewerken
echo ("<form action='quotes.php' method='post' >") ;
echo ("<input type='hidden' name='action' value='2'>") ;
echo ("<span class='main_normaal'>zin met quotes </span>") ;
echo ("<input type='text' name='zin' value='$zin' size='40'
maxlength='100'>") ;
echo ("<center><input type='submit' value='Verder >>'></center>\n") ;
echo ("</form>") ;
break ;

case "2": // stap 2 - de ingevulde gegevens controleren
echo ("<form action='quotes.php' method='post' >") ;
echo ("<input type='hidden' name='action' value='1'>") ;
echo ("<span class='main_normaal'>zin met quotes </span>") ;
echo ("<input type='text' name='zin' value='$zin' size='40'
maxlength='100'>") ;
echo ("<center><input type='submit' value='<< naar stap 1'></center>\n") ;
echo ("</form>") ;
echo ("<form action='quotes.php' method='post' >") ;
echo ("<input type='hidden' name='action' value='3'>") ;
echo ("<span class='main_normaal'>zin met quotes </span>") ;
echo ("<input type='text' name='zin' value='$zin' size='40'
maxlength='100'>") ;
echo ("<center><input type='submit' value='naar stap 3 >>'></center>\n") ;
echo ("</form>") ;
break ;

case "3":
// stap 3 - Plaatsen in database
$sql="INSERT INTO een tabel $zin ";
break ;
}
?>

====================== einde proefcode ==========================

Daniel Tryba
07/03/05, 20:25
Haico <spaapenMONKEYTALExs4allINHOLLAND> wrote:
> 1) een formulier laten invullen door de bezoeker.
> 2) de ingevulde gegevens ter controle laten zien met de keuze 'bewerken' of
> 'versturen'. Bij de keuze bewerken ga je terug naar stap 1. De keuze
> versturen stuurt je door naar stap 3.
> 3) Het plaatsen van de ingevulde data in een database
>
>
> die ik in stap 1 heb ingevuld alle mogelijke stappen te laten doorlopen en
> er nog steeds hetzelfde te laten uitkomen. Is er iemand die mij kan
> schrijven wat ik in case 1,2 en 3 moet gebruiken van het arsenaal ;
> addslashes, stripslashes, nl2br, htmlspecialchars ? Oh ja, ik zit gehost bij
> Digitalus en heb werkelijk geen flauw idee of bepaalde waarden op ON of OFF
> staan....

magic quotes is de meest gruwelijke feature die default aanstaat in PHP.

Stap1)
variabelen die in een script binnenkomen via get/post/cookies ontdoen
van slashes indien magic_quotes_gpc[1] aanstaat:
if(get_magic_quotes_gpc())
{
$var=stripslashed($_GET['var']);
}

Stap2)
output naar html dien te worden htmlescaped [2]:
echo "<input name='var' value='".htmlespecialchars($var,ENT_QUOTES)."'>";

Stap3)
output naar een database dient op de voor de database gebruikelijke
manier te worden escaped, soms betekend dat dat chars dienen te worden
vooraf gegaan door een \ [3] soms door een ' [4], stel mysql:
$query="update foo set bar='".mysql_escape_string($var)."'";
(indien bar een string is natuurlijk).
Een database abstratie laag met prepared statements doet hier
overigens wonderen :)

[1] http://nl2.php.net/manual/en/function.get-magic-quotes-gpc.php
[2] http://nl2.php.net/manual/en/function.htmlspecialchars.php
of
http://nl2.php.net/manual/en/function.htmlentities.php
[3] http://nl2.php.net/manual/en/function.mysql-escape-string.php
[4] http://nl2.php.net/manual/en/ref.sybase.php#ini.magic-quotes-sybase

Maarten Wierda
07/03/05, 21:15
Daniel Tryba wrote:

> magic quotes is de meest gruwelijke feature die default
> aanstaat in PHP.

Ach, het idee is leuk. De uitvoering is alleen wat minder :)


--
Cheers,
Maarten Wierda

"Shit happens. Then you wipe."