Wat is beter?
Gewijzigd op 11/10/2011 19:45:02 door - SanThe -
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$sQuery = "SELECT name, pass FROM users WHERE name = '".mysql_real_escape_string((string) $_POST['naam'])."' AND id = ".(int) $_POST['id'];
// Dan vind ik dit beter
$name = mysql_real_escape_string((string) $_POST['naam']);
$id = (int) $_POST['id'];
$sQuery = "SELECT name, pass FROM useres WHERE name = '".$name."' AND id = ".$id;
?>
$sQuery = "SELECT name, pass FROM users WHERE name = '".mysql_real_escape_string((string) $_POST['naam'])."' AND id = ".(int) $_POST['id'];
// Dan vind ik dit beter
$name = mysql_real_escape_string((string) $_POST['naam']);
$id = (int) $_POST['id'];
$sQuery = "SELECT name, pass FROM useres WHERE name = '".$name."' AND id = ".$id;
?>
Als ik nu in het formulier als id "hoi" opgeef, dan wordt dit omgezet naar het cijfer 1. Beter is om te controleren of $_POST['id'] een numerieke waarde bevat. Ja, doorgaan... nee, afbreken.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sQuery = "SELECT name, pass
FROM users
WHERE name = '".mysql_real_escape_string((string) $_POST['naam'])."'
AND id = ".(int) $_POST['id'];
?>
$sQuery = "SELECT name, pass
FROM users
WHERE name = '".mysql_real_escape_string((string) $_POST['naam'])."'
AND id = ".(int) $_POST['id'];
?>
Toevoeging op 11/10/2011 20:34:47:
Ozzie PHP op 11/10/2011 20:27:06:
$id = (int) $_POST['id'];
Als ik nu in het formulier als id "hoi" opgeef, dan wordt dit omgezet naar het cijfer 1. Beter is om te controleren of $_POST['id'] een numerieke waarde bevat. Ja, doorgaan... nee, afbreken.
Als ik nu in het formulier als id "hoi" opgeef, dan wordt dit omgezet naar het cijfer 1. Beter is om te controleren of $_POST['id'] een numerieke waarde bevat. Ja, doorgaan... nee, afbreken.
Geen 1 maar 0.
Gewijzigd op 11/10/2011 20:29:51 door - SanThe -
correct, was even in de war met een boolean. Thanks voor de correctie.
Je kan ook sprintf gebruiken, %d zorgt er dan voor dat het een int is, en niets anders.
Code (php)
1
2
3
4
2
3
4
<?php
$sQuery = sprintf("SELECT name, pass FROM users WHERE name = '%s' AND id = %d",
mysql_real_escape_string($_POST['naam']), $_POST['id']);
?>
$sQuery = sprintf("SELECT name, pass FROM users WHERE name = '%s' AND id = %d",
mysql_real_escape_string($_POST['naam']), $_POST['id']);
?>
Kan je ook vertellen wat ik niet goed doe bij de if's?
Gewijzigd op 11/10/2011 22:03:22 door Jordi Kroon
$error = array met waarde
die kan je dan met een foreach doorlopen
En if(!strlen($naam) <5 || !strlen($naam) > 20) betekent als $naam NIET kleiner is dan 5 of NIET groter dan 20. Dit geeft altijd een error behalve als $naam = ''.
lees dan zie ik het ja.
@wouter als jou mamier dmv count netter is dan ben ik zeker bereid die te gebruiken.
Gewijzigd op 11/10/2011 23:10:01 door Jordi Kroon
Code (php)
Als ik dezelfde functie met dezelfde parameters meerdere keren gebruik dan zet ik ze meestal wel in een aparte var. strlen zal wel niet zo veeleisend zijn maar andere kunnen dat wel zijn.
Maar waar is het gedeelte dat controleerd of $_POST['naam'] wel bestaat? Dat is wat ik juist mis in je script.