|
|
poskladani dotazu MySQL pomoci PHP
|
23.4.2009 18:05
David
|
Zdravim mam dotazek
na strance mam formular:
<form action="" method="">
<input type="text" size="20" maxlength="14" name="cislo" value="">
<input type="text" size="20" maxlength="14" name="datum" value="">
<input type="text" size="20" maxlength="20" name="jmeno" value="">
<input type="text" size="20" maxlength="14" name="prodejce" value="">
</form>
uzivatel ma moznost vyplnit jednu nebo vice polozek
a ja z toho potrebuji vydolovat SQL dotaz
napadlo me to udelat takto:
if ( !empty($_GET['cislo']) and !empty($_GET['datum']) and !empty($_GET['jmeno']) and !empty($_GET['prodejce']))
{
$vysledek = mysql_query('SELECT * FROM `automaty` WHERE `cislo` LIKE \'%'.$_GET['cislo'].'%\' AND `zakaznik` = LIKE \'%'.$_GET['jmeno'].'%\' AND `dat` = '.$_GET['datum'].' AND `prodejce` = '.$_GET['prodejce'].' ');
}
elseif( !empty($_GET['cislo']) and !empty($_GET['datum']) and !empty($_GET['jmeno']))
{
$vysledek = mysql_query('SELECT * FROM `automaty` WHERE `cislo` LIKE \'%'.$_GET['cislo'].'%\' AND `zakaznik` = LIKE \'%'.$_GET['jmeno'].'%\' AND `dat` = '.$_GET['datum'].' ');
}
...
...
no jenomze to je takovy hodne krkolomny... pokud by tech policek bylo 10 tak se muzu jit rovnou zastrelit
takze pokud nekdo vi jak na to privitam kazdou radu.
dekuji |
|
|
Re: poskladani dotazu MySQL pomoci PHP
|
24.4.2009 07:31
Rudolf Svátek
|
Co nějak takhle?
<form action="" method="post">
<input type="text" size="20" maxlength="14" name="polozka[cislo]" value="">
<input type="text" size="20" maxlength="14" name="polozka[datum]" value="">
<input type="text" size="20" maxlength="20" name="polozka[jmeno]" value="">
<input type="text" size="20" maxlength="14" name="polozka[prodejce]" value="">
<input type="submit" name="odeslat" value="odeslat" />
</form>
<?php
if(IsSet($_POST['polozka'])) {
$sql = "SELECT * FROM `automaty` WHERE 1 ";
foreach($_POST['polozka'] as $key => $value) {
$sql .= $value > "" ? "AND `".$key."` LIKE %'".$value."'% " : "";
}
$vysledek = mysql_query($sql);
}
?>
|
|
|
Re: poskladani dotazu MySQL pomoci PHP
|
24.4.2009 13:46
Aleš Hakl
|
A co kdyz nekdo udela neco jako ?polozka[cislo`%20not%20null;drop%20database;--]=foo ? :) |
|
|
Re: poskladani dotazu MySQL pomoci PHP
|
27.4.2009 07:13
Rudolf Svátek
|
Zabezpečení tady neřeším. Na formuláře mám třídy co mi to ošetří. Kromě toho ani David ve svém příkladu bezpečnost nijak nepostihuje. Navíc to posílá v GETu, kde je to ještě snadnější napadnout. |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|