Autor | Zpráva | ||
---|---|---|---|
eLhomer0 Profil |
#1 · Zasláno: 26. 5. 2012, 13:24:46
Zdravím,
mám jednoduchý formulář, kde má uživatel možnost napsat nějaký text a ten by se po odeslání měl zapsat do databáze. Místo něj se však do db zapíše jenom prázdná hodnota. Nevíte někdo, prosím, v čem je problém? if (!isset($_POST['submit'])) { //kdyz neni submitnuto, ukaze formular ?> <br> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Zadejte jméno tématu: <input type="text" size="50" name="tema" /> <input type="submit" value="Odeslat téma" name="submit"> </form> <? } else { echo "Téma bylo úspěšně zapsáno."; } $zapisNazevTematu = $_POST["tema"]; //ulozeni dat z formulare echo $zapisNazevTematu; } $strSQL = "INSERT INTO texty(tema) values('" . $zapisNazevTematu . "')"; //db query mysql_query($strSQL) or die(mysql_error()); //db query - spustit |
||
ShiraNai7 Profil |
#2 · Zasláno: 26. 5. 2012, 13:48:20
1) Prilozena ukazka neni kompletni PHP kod.. (blok s $zapisNazevTematu = $_POST["tema"]; je ocividne v nejake podmince, ktera asi neprojde.
2) Mas tam moznou SQL injection |
||
eLhomer0 Profil |
#3 · Zasláno: 26. 5. 2012, 14:36:15
Celý kód je tady.
Je to skript, který zobrazí do tabulky data z MySQL a pod tabulkou umožní pomocí formuláře nová data do tabulky zadat. Už jsem zjistil, že pokud se hodnota zadá a submitne se, do databáze se zapíše pouze prázdná hodnota. Když ale potom dám aktualizovat (F5) a údaje se odešlou znovu, zapíše se do db správná hodnota. Bohužel se ale zapisuje potom pořád dokola při každé aktualizaci. Je možné tomu nějak zamezit (vynulovat ty inputy)? Děkuji <? /*********** DB CONNECT ***********/ mysql_connect('localhost:8889', 'root', 'root') or die(mysql_error()); mysql_select_db('texty') or die(mysql_error()); /*********** VÝPIS TABULKY + features ***********/ $dotaz = "SELECT * FROM texty"; $phpdotaz = mysql_query($dotaz); while($radek = mysql_fetch_array($phpdotaz)) { ?> <table border="1" style="table-layout: fixed; border-collapse: collapse;" cellpadding="10" > <tr> <td width="400"><? echo $radek['tema'] . "<br />"; ?></td> </tr> </table> <? /*********** ZAPIS DAT **********/ if (!isset($_POST['submit'])) { //kdyz neni submitnuto, ukaze formular ?> <br> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Zadejte jméno tématu: <input type="text" size="50" name="tema" /> <input type="submit" value="Odeslat téma" name="submit"> </form> <? } else { echo "Téma bylo úspěšně zapsáno."; } $zapisNazevTematu = $_POST["tema"]; //ulozeni dat z formulare echo $zapisNazevTematu; $strSQL = "INSERT INTO texty(tema) values('" . $zapisNazevTematu . "')"; //db query mysql_query($strSQL) or die(mysql_error()); //db query - spustit mysql_close($link); ?> |
||
eLhomer0 Profil |
#4 · Zasláno: 27. 5. 2012, 21:24:41
Vyřešeno, prosím lock.
|
||
Časová prodleva: 11 let
|
0