kongen
april 27, 2015, 2:11pm
1
Jeg har denne koden. I arrayen så er det en single quote i firmanavnet. Denne må være der. Arrayen skal så kastes inn i et skjema som lages med php. Arrayen har også double quotes i seg.
$values = serialize(array(
"navn" => "Pål Pålsen",
"firma" => "Pål's hønefarm"
));
$form = "<form action='' method='post'>
<input type='hidden' name='values' value='".$values."' />
<input name='Submit' type='submit' value='Send' />
</form>";
echo $form;
Når jeg ser på kildekoden i Firefox så har skemafeltet ‘values’ fått rød skrift pga det ikke valideres riktig i hht w3c.
Når skal man bruke single quotes og når skal man bruke double quotes?
adeneo
april 27, 2015, 3:41pm
2
Her finnes det alternativer.
Man kan enten skrive riktig norsk
$values = serialize(array(
"navn" => "Pål Pålsen",
"firma" => "Påls hønefarm"
));
eller bli helt amerikaner og bruke backtick
$values = serialize(array(
"navn" => "Pål Pålsen",
"firma" => "Pål`s hønefarm"
));
eller skrive riktig PHP med escaping
$values = serialize(array(
"navn" => "Pål Pålsen",
"firma" => "Pål\'s hønefarm"
));
eller bruke doble tødler i HTML’en
[code=“php”]$values = serialize(array(
“navn” => “Pål Pålsen”,
“firma” => “Pål’s hønefarm”
));
$form = '
';
echo $form;
[/code]
1 Like
kongen
april 27, 2015, 7:44pm
3
Hvordan escaper man en string som inneholder båre ’ og "
Thomas' høner legger egg "hver" dag
Jeg får ikke lagt stringen i addslashes når stringen inneholder begge typer quotes.
adeneo
april 27, 2015, 8:26pm
4
Litt usikker, men noe sånt kanskje
$str1 = 'Thomas\' høner legger egg "hver" dag';
$str2 = addslashes($str1); // Thomas\' høner legger egg \"hver\" dag
Pong
mai 2, 2015, 8:34pm
5
Ikke noe mer å tilføye.
Jeg bruker vanligvis single quotes for vanlige strenger. Vanesak, ikke fanesak.
Addslashes fikser det meste. Problemet var at hvis en value har double quotes i seg så tror browseren at den skal lukke value med denne quoten.
eksempel:
$hello = 'Koding er "lett" ';
<input type="hidden" name="hello" value="'.$hello.'" />
Så blir det i browseren noe slik
<input type="hidden" name="hello" value="Koding er "lett"" />
Slik at value blir
Koding er
mens
lett""
står utenfor value.
Når man skal dytte en array som inneholder både single og double quotes inne i et skjemafelt så er det som å be om trøbbel. Kan man poste data på andre måter enn skjema uten bruk av javascript?
Pong
mai 4, 2015, 3:21pm
7
Sjekk denne:
http://stackoverflow.com/questions/46483/htmlentities-vs-htmlspecialchars
Gjør det du kan for å sikre at det du sender til browseren er sikker.