web-forms

Status
Niet open voor verdere reacties.

imacbest

Gebruiker
Lid geworden
28 nov 2008
Berichten
227
Hallo,

Ik heb een scriptje waarbij je instelingen van een website kunt wijzigen (titel etc) en de gegevens worden in een database opgeslagen.
Nu doe ik dus netjes addslashes() etc voor veiligheid :cool:
maar als ik dan de gegevens in dat form wil veranderen dan werkt het niet :S
voordat ik ze in de value zet doe ik stripslashes() om de slashes weer weg te halen.
HTML:
<input type="text" name="title" value="<?=$title;?>" size="30" />
of:
<input type="text" name="title" value='<?=$title;?>' size="30" />
Als $title "" of '' bevat dan wordt het niet weergegeven in het veld :(
weet iemand een oplossing om dit probleem op te lossen?
 
ken je de basis van php wel?

Wat dacht je hier van:
PHP:
<?php 
 $title = "De titel van deze pagina";
?>

<input type="text" name="title" value="<?php echo $title; ?>" size="30" />
 
eh ja ik ken de basis...
<?=$tekst;?> is goed hoor, als je het zo doet hoef je niet echo gedoe uit te typen.
Maar hoe doe ik het dan als iemand ' of " in zijn tekst heeft? zoals in het voorbeeld
 
addslashes en vervolgens stripslashes heb je niks aan... Voegt nauwelijks veiligheid toe

Om data in html te weergeven gebruik je
Code:
<?php echo htmlentities($title, ENT_QUOTES, 'UTF-8'); ?>

En om data in een database te plaatsen gebruik je *_real_escape_string() (afhankelijk van de engine & interface die je gebruikt)

Daarnaast kun je jezelf beter niet aanleren om <?=$title;?> te gebruiken aangezien dat niet overal standaard werkt
 
ik werk met mysql, dus hoe kan ik het besten de input beveiligen? want ik heb van iemand geleerd dat addslashes() beter is dan mysql_real_escape_string(), dus wat is jullie mening? wat is het beste?
 
beste is om geen mysql_ te gebruiken. Maar als je het dan toch al doet moet je mysql_real_escape_string gebruiken.
addslashes() hoort niet op zo'n plek.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan