Autor Zpráva
eLhomer0
Profil
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
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
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
Vyřešeno, prosím lock.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: