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