Autor Zpráva
smonkey
Profil
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
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
smonkey:
tvá podmínka
if($_POST['name']=="" || $_POST['subject'] =="" || $_POST['text'] =="")
znamená: Pokud je jméno, předmět nebo text prázdný, pokračuj.

Tos asi nechtěl.
smonkey
Profil
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
Stačí to takto:
if (!empty($_POST['name']) AND !empty($_POST['subject']) AND !empty($_POST['text'])) {

}
smonkey
Profil
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
za tím mysql_query dej
echo mysql_error();
. A až problém odhalíš, nezapomeň to zase smazat, než skript publikuješ ;)
smonkey
Profil
No žádnou chybu mi to nevyhazuje, prostě to jen přesměruje na vypsani.php
Keeehi
Profil
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')");
mělo by to fungovat vždy.
smonkey
Profil
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
smonkey:
a vstupy si projeď funkcí
mysql_real_escape_string();
Majkl578
Profil
[#9] Keeehi
5 neošetřených potencionálních E_NOTICE. Navíc naprosto zbytečné proměnné.
smonkey
Profil
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
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
Ok, :-) Díky, už tomu rozumím
Majkl578
Profil
[#14] Keeehi:
Není to zbytečné
Ale je.

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: