| 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: 14 let
|
|||
0