Autor | Zpráva | ||
---|---|---|---|
Jan Profil |
#1 · Zasláno: 19. 5. 2010, 23:49:47 · Upravil/a: Jan
Ahoj mám takovýto jednoduchý skript
<form method="post" action="<?echo $_SERVER["PHP_SELF"]?>"> Zboží: <input name="retezec" value="<?echo $_POST["retezec"]?>"> <input type="Submit" name="odesli"> </form> <?php $dbHost = 'hz-'; $dbUser = ''; $dbPass = ''; $dbName = ''; mysql_connect($dbHost, $dbUser, $dbPass); mysql_select_db($dbName); mysql_query("SET NAMES 'utf8'"); $vysledek = mysql_query("select * from tbl_product where pd_name=".$_POST["retezec"]); $radku = mysql_num_rows($vysledek); if ($radku==0) echo "záznam ".$_POST["retezec"]." nenalezen"; else { echo "záznam ".$_POST["retezec"]." má následujících $radku rádků:<BR>"; while ($zaznam=MySQL_Fetch_Array($vysledek)): echo $zaznam["pd_name"]."<BR>\n"; endwhile; } ;?> Bohužel mi nefunguje, vypisuje chybu viz Zde je přímí odkaz na tento script Tímto skriptem chci říci nadi mi zadané slovo v produktech , pkud tam je vypiš celý název produktu. Pozěji z něj udělám odkaz na ten soubor a další věci, nyná potřebuji poradit v čem mám chybu, děkuji za rady. I přez vypisování chyby nevyhledá zboží z tabulky... |
||
panther Profil |
#2 · Zasláno: 19. 5. 2010, 23:53:31
Jan:
máš špatně sql dotaz, vypiš si mysql_error(). |
||
Jan Profil |
#3 · Zasláno: 20. 5. 2010, 00:02:12
píše mi to tohle :
Došlo k chybě v dotazu: select nebo jiny sql prikaz... You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sql prikaz...' at line 1 Co to znamená nevím |
||
Majkl578 Profil |
#4 · Zasláno: 20. 5. 2010, 00:07:03
Jan:
„Co to znamená nevím“ Znamená to, že v SQL dotazu je chyba. Lokalizovat ji nelze, protože jsi smazal jedinou možnost její identifikace. Tipuju to na mezery v $_POST["retezec"] .
Script je náchylný k SQL injection. |
||
__construct Profil |
#5 · Zasláno: 20. 5. 2010, 07:56:05 · Upravil/a: __construct
Čo takto dať string do úvodzoviek ??
$vysledek = mysql_query("select * from tbl_product where pd_name='{$_POST["retezec"]}'"); Majkl578: „Script je náchylný k SQL injection.“ A tak ako Ti Majkl napísal ošetri si to .. Keď Ti tam pošlem blbec'; DROP TABLE tbl_product; -- |
||
Majkl578 Profil |
#6 · Zasláno: 20. 5. 2010, 12:07:35
__construct:
„o sa asi stane .. ?“ Nic. Vícenásobné dotazy v jednom volání mysql_query nejsou z bezpečnostních důvodů dovoleny. |
||
Časová prodleva: 14 let
|
0