/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Apostrof (') laver vrøvl
Fra : Sonni Jensen


Dato : 27-09-10 12:45

Jeg prøver at gemme en update:

echo $sql_hest = "UPDATE `nv_heste` SET
`horse_id`='$_POST[regnr]',
`navn`='$_POST[navn]',
`kon`='$_POST[kon]',
WHERE regnr='$_GET[regnr]'";

Men i 'navn' er der apostrof f.eks. Gill's Girl.

Jeg får alle oplysningrne fra en FORM.

hvordan kan jeg opbygge mine sætning til at forhindre disse fejl.

på forhånd tak.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Birger Sørensen (27-09-2010)
Kommentar
Fra : Birger Sørensen


Dato : 27-09-10 14:14

Den 27-09-2010, skrev Sonni Jensen:
> Jeg prøver at gemme en update:
>
> echo $sql_hest = "UPDATE `nv_heste` SET
> `horse_id`='$_POST[regnr]',
> `navn`='$_POST[navn]',
> `kon`='$_POST[kon]',
> WHERE regnr='$_GET[regnr]'";
>
> Men i 'navn' er der apostrof f.eks. Gill's Girl.
>
> Jeg får alle oplysningrne fra en FORM.
>
> hvordan kan jeg opbygge mine sætning til at forhindre disse fejl.
>
> på forhånd tak.

Det der er en invitation til injektion.
Du skriver ikke, hvilket interface du bruger - antager mysql.

http://dk2.php.net/manual/en/function.mysql-real-escape-string.php

$regnr = mysql_real_escape_string( stripslashes( $_POST[ 'regnr']));
tilsvarende for andre variable
$sql_hest = "UPDATE nv_heste SET horse_id='$regnr', navn='$navn',
kon='$kon' WHERE regnr='$regnr'";

Er der lidt rod med $_GET[] og $_POST[]?

Det sikrer dig ikke mod injektion, men er mindre modtageligt end at
bruge variablene direkte.
"Det rigtige" (i PHP, IMHO) er at bruge prepared statements - og du
skal så bruge et andet interface, f.eks. mysqli

http://dk2.php.net/manual/en/book.mysqli.php

Birger

--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk



Henrik Glensbo (27-09-2010)
Kommentar
Fra : Henrik Glensbo


Dato : 27-09-10 14:24

prøv med " istedet for apostrof de steder du bruger apostrof

hilsen
Henrik

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste