HTML PHP MYSQL - marcin456 - 22-11-2009
witam mam taki formularz Kod: <form action="nowyprodukt.php" method="post">
Numer produktu: <input type=text name=nrproduktu maxlength=3 size=4><br><br>
Nazwa produktu: <input type=text name=nazwaproduktu maxlength=30 size=30><br><br>
Cena:<input type=text name=cena maxlength=5 size=6><br><br><br>
<input type=submit value="Wstaw do bazy">
</form>
i taki skrypt php Kod: <?
if (!$nrproduktu || !$nazwaproduktu || !$cena)
{
print "Nie zostały wypełnione wszystkie pola";
exit;
}
$nrproduktu = addslashes($nrproduktu);
$nazwaproduktu = addslashes($nazwaproduktu);
$cena = addslashes($cena);
@$db = mysql_pconnect("localhost", "root", "krasnal");
if (!$db)
{
print "Nie można nawiązać połączenia z bazą danych";
exit;
}
mysql_select_db("sklep");
$query = "insert into produkty values ('".$nrproduktu."', '".$nazwaproduktu."', '".$cena."')";
$result = mysql_query($query);
if ($result)
print "Towar <b>".$nazwaproduktu."</b> został dodany do bazy danych.";
else { print "W bazie istnieje już produkt o tym numerze."; }
?>
wrzucilem to na serwer cba.pl stworzylem tam taka tabeleKod: create table produkty
( nrproduktu int unsigned not null auto_increment primary key,
nazwaproduktu char(40) not null,
cena float (3,2) not null
);
i po wprowadzeni wszystkich danych do formularza i kliknięciu wstaw do bazy wyskakuje napis "Nie zostały wypełnione wszystkie pola" co mam zrobic pomocy
te dane naprawdę są pozmieniane na odpowiednieKod: ("localhost", "root", "krasnal");
("sklep");
RE: HTML PHP MYSQL - Labsta.com - 22-11-2009
Nie zagłębiałem się zbytnio, ale kompletnie brak cudzysłowów w formularzu
Kod: <input type="text" name="nrproduktu" maxlength="3" size="4"><br><br>
<input type="text" name="nazwaproduktu" maxlength="30" size="30"><br><br>
<input type="text" name="cena" maxlength="5" size="6"><br><br><br>
RE: HTML PHP MYSQL - marcin456 - 22-11-2009
ale na komputerze z krasnal serw wszystko działa bez tego
dodanie cudzysłowów nie pomoglo
RE: HTML PHP MYSQL - BeamBear - 23-11-2009
szczerze mówiąc, to ja tą walidację ciut inaczej bym zrobił
Kod: $nrproduktu = $_POST["nrproduktu"];
$nazwaproduktu = $_POST["nazwaproduktu"];
$cena = $_POST["cena"];
if (empty($nrproduktu) || empty($nazwaproduktu) || empty($cena))
{
print "Nie zostały wypełnione wszystkie pola";
}
else
{
$nrproduktu = addslashes($nrproduktu);
$nazwaproduktu = addslashes($nazwaproduktu);
$cena = addslashes($cena);
$query = "insert into produkty values ('".$nrproduktu."', '".$nazwaproduktu."', '".$cena."')";
$result = mysql_query($query);
if ($result)
{
print "Towar <b>".$nazwaproduktu."</b> został dodany do bazy danych.";
}
else
{
print "W bazie istnieje już produkt o tym numerze.";
}
}
empty() sprawdza Ci czy na pewno zmienna jest pusta, a nie czy jej nie ma... No i przede wszystkim - skąd niby serwer ma wiedzieć, że zmienna $nrproduktu zawierać będzie wartość z formularza? Może właśnie w tym rzecz?
|