Autor | Zpráva | ||
---|---|---|---|
smonkey Profil |
#1 · Zasláno: 15. 2. 2010, 17:11:39 · Upravil/a: smonkey
Zdravím,
obracím se na Vás s prosbou o pomoc. Zkoušel jsem už fakt hodně věcí (Přidávat ',",. / přepisovat / číst) a pořád to nemůžu zprovoznit :-( Co vlastně potřebuji? Potřebuji, aby se mi pomocí formuláře odesílal obsah do databáze MySQL. V čem je problém? To tak uplně nevím, myslím že bude někde v odeslani.php Kódy: odeslani.php <html> <body> Jméno: <input type="text" name="name"> <br> E-mail: <input type="text" name="email"> <br> Předmět: <input type="text" name="subject"> <br> Text: <textarea name="text" rows="4"></textarea> <br> <input type="hidden" name="date"> <br> <input type="submit" name="odeslat" value="odeslat"> </body> </html> <? include('pripojeni.php'); if(isset($_POST['odeslat'])) { if($_POST['name']=="" || $_POST['subject'] =="" || $_POST['text'] ==""){ mysql_query("INSERT INTO clanky (name, email, subject, text, date) VALUES ('$name', '$email', '$subject', '$text', '$date')"); } } ?> vypsani.php <?php include("pripojeni.php"); $sql = mysql_query('SELECT name, email, subject, text, date FROM clanky ORDER by date ASC'); if(mysql_num_rows($sql) > 0){ while($row = mysql_fetch_array($sql)){ $name = $row['name']; $date = $row['date']; $email = $row['email']; $subject = $row['subject']; $text = $row['text']; } }else{ echo 'V databazi se nenachazi zadne clanky'; } ?> + pripojeni.php Za rady / náměty předem Děkuji ;-) |
||
Kalby Profil |
#2 · Zasláno: 15. 2. 2010, 17:36:13
cely formular musis mit zabaleny do tagu form, dale ta podminka if je dost divna, kdyz budou ty policka prazdne tak je chces ukladat do databaze?
melo by spis byt: if(isset($_POST['name'])&&$_POST['name']!=''){ |
||
panther Profil |
#3 · Zasláno: 15. 2. 2010, 17:38:34
smonkey:
tvá podmínka if($_POST['name']=="" || $_POST['subject'] =="" || $_POST['text'] =="") Tos asi nechtěl. |
||
smonkey Profil |
#4 · Zasláno: 15. 2. 2010, 19:21:28 · Upravil/a: smonkey
Aha, děkuji pěkně, takže pokud to chápu dobře rak bych měl dát místo
if($_POST['name']=="" || $_POST['subject'] =="" || $_POST['text'] =="") toto: if(isset($_POST['name']) && $_POST['name']!='') if(isset($_POST['subject']) && $_POST['subject']!='') if(isset($_POST['text']) && $_POST['text']!=''){ Je to tak? |
||
fuckin Profil |
#5 · Zasláno: 15. 2. 2010, 19:35:59
Stačí to takto:
if (!empty($_POST['name']) AND !empty($_POST['subject']) AND !empty($_POST['text'])) { } |
||
smonkey Profil |
#6 · Zasláno: 15. 2. 2010, 19:38:47 · Upravil/a: smonkey
Nyní to mám takto:
<html> <body> <form action="vypsani.php" method="post"> Jméno: <input type="text" name="name"> <br> E-mail: <input type="text" name="email" value="@"> <br> Předmět: <input type="text" name="subject"> <br> Text: <textarea name="text" rows="4"></textarea> <br> <input type="hidden" name="date"> <br> <input type="submit" name="odeslat" value="odeslat"> </form> </body> </html> <? include('pripojeni.php'); if(isset($_POST['odeslat'])) { if (!empty($_POST['name']) && !empty($_POST['subject']) && !empty($_POST['text'])) { mysql_query("INSERT INTO clanky (name, email, subject, text, date) VALUES ('$name', '$email', '$subject', '$text', '$date')"); } } ?> Nevím, pořád to nijak nezapisuje do DB, zkoušel jsem kupu věcí, měnit apostofy, uvozovky, tečky a ja nevím co vše ještě a nic... |
||
AM_ Profil |
#7 · Zasláno: 15. 2. 2010, 22:26:23
za tím mysql_query dej
echo mysql_error(); |
||
smonkey Profil |
#8 · Zasláno: 16. 2. 2010, 09:53:27
No žádnou chybu mi to nevyhazuje, prostě to jen přesměruje na vypsani.php
|
||
Keeehi Profil |
#9 · Zasláno: 16. 2. 2010, 10:35:23
smonkey:
Špatný action. Pokud ukládáte v souboru odeslani.php([#1][#6]) pak i action musí směřovat tam. <form action="odeslani.php" method="post"> Dále si nejsem jistý, zda vám bude fungovat toto: mysql_query("INSERT INTO clanky (name, email, subject, text, date) VALUES ('$name', '$email', '$subject', '$text', '$date')"); Možná to fungovat bude, možná ne, to záleží na nastavení servru. Pokud to však přepíšete takto: $name=$_POST['name']; $email=$_POST['email']; $subject=$_POST['subject']; $text=$_POST['text']; $date=$_POST['date']; mysql_query("INSERT INTO clanky (name, email, subject, text, date) VALUES ('$name', '$email', '$subject', '$text', '$date')"); |
||
smonkey Profil |
#10 · Zasláno: 16. 2. 2010, 14:24:21
Ano Ano, funguje to ;-) Všem moc moc děkuji :-) Ještě si s tím budu hrát a poznávat co to všechno umí ;-) Takže ještě jednou děkuji
|
||
dan55 Profil |
#11 · Zasláno: 16. 2. 2010, 19:08:08
smonkey:
a vstupy si projeď funkcí mysql_real_escape_string(); |
||
Majkl578 Profil |
#12 · Zasláno: 16. 2. 2010, 19:35:10
[#9] Keeehi
5 neošetřených potencionálních E_NOTICE. Navíc naprosto zbytečné proměnné. |
||
smonkey Profil |
#13 · Zasláno: 16. 2. 2010, 19:51:11
dan55:
> smonkey: > a vstupy si projeď funkcí > > > mysql_real_escape_string(); To nějak zabezpečí script? Děkuji :-) Majkl578: > [#9] Keeehi > 5 neošetřených potencionálních E_NOTICE. Navíc naprosto zbytečné proměnné. To znamená, že to tam je zbytečné? |
||
Keeehi Profil |
#14 · Zasláno: 16. 2. 2010, 20:52:50
smonkey:
Není to zbytečné, jen se to dá zapsat jinak. mysql_query("INSERT INTO clanky (name, email, subject, text, date) VALUES ('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_POST['subject'])."', '".mysql_real_escape_string($_POST['text'])."', '".mysql_real_escape_string($_POST['date'])."')"); mysql_real_escape_string(); je funkce, která ošetří případné nebezpečné znaky jako je '. |
||
smonkey Profil |
#15 · Zasláno: 16. 2. 2010, 20:55:08
Ok, :-) Díky, už tomu rozumím
|
||
Majkl578 Profil |
#16 · Zasláno: 17. 2. 2010, 10:40:20
|
||
Časová prodleva: 14 let
|
0