Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
HTML PHP MYSQL - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: HTML PHP MYSQL (/thread-html-php-mysql)



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 tabele
Kod:
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 odpowiednie
Kod:
("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?