PHP get
Gewijzigd op 01/01/1970 01:00:00 door Henk ter Horst
Edit:
Een kleine beveilegings tip: Laat bijvoordeeld als men een auto opbraagd wel controlleren of de id inderdaad nummeriek is en of de GET niet leeg is.
Edit 2:
Zie Onderstaand berocht, Van Crispijn.
Gewijzigd op 01/01/1970 01:00:00 door Bart Tuma
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(isset($_GET['id']) && ctype_digit($_GET['id'])){
//pagina van de auto
$sql = "SELECT
velden
FROM
autos
WHERE
id = ".mysql_real_escape_string($_GET['id']);
}else{
//overzichtspagina
}
?>
if(isset($_GET['id']) && ctype_digit($_GET['id'])){
//pagina van de auto
$sql = "SELECT
velden
FROM
autos
WHERE
id = ".mysql_real_escape_string($_GET['id']);
}else{
//overzichtspagina
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if( emtpy($_GET['id']) || !ctype_digit((string)$_GET['id']) )
{
// overzicht
}
else
{
// auto
}
?>
if( emtpy($_GET['id']) || !ctype_digit((string)$_GET['id']) )
{
// overzicht
}
else
{
// auto
}
?>
Dan komt string 0 er ook niet doorheen.
edit:
Je hoeft trouwens geen mysq_real_escape... te gebruiken voor nummers:
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Oke bedankt lui, hij werkt nou :D
Geen slechte gewoonte om altijd mysql_real_escape_string te gebruiken denk ik... Wat de isset/empty heb je gelijk. empty() doet in dit geval alles voor je!
Als je mysql_real_escape_string gebruikt zul je quote (') om het getal moeten zetten.
Als je vergeet om bv "$_GET['id']" op waarde te controleren, dan gaat je query toch echt verkeerd als "$_GET['id']" geen nummer is . (je zou zelfs SQL injecties kunnen krijgen)
dank je martijn! maar van te voren controleren of het een nummer is is dan toch wel juist?
Tuurlijk ;P
Bump voor de javascript/html nieuwe topic. De andere met GET is gelukt!
Maak dan maar een nieuw topic en verander deze topic titel even terug. Dit is een beetje verwarrend zo...