Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
HTML PHP MYSQL
#1
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");
Odpowiedz
#2
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>
Odpowiedz
#3
ale na komputerze z krasnal serw wszystko działa bez tego

dodanie cudzysłowów nie pomoglo
Odpowiedz
#4
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?
"Kod ma być koszerny!" [Obrazek: 106.gif]
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak sprawdzić czy adres www znajduje sie w bazie mysql? jarekcda 8 9,035 13-05-2017, 01:02
Ostatni post: miketodson255
  Optymalizacja MySQL-a tomek_00 1 3,928 01-09-2013, 13:31
Ostatni post: hieroshima
  [MySQL] Struktura bazy dla słownika msx83 2 3,926 24-08-2013, 16:26
Ostatni post: msx83
  Komunikacja PHP z MySQL na serwerze pawstrze 5 6,453 16-07-2013, 15:58
Ostatni post: Engine
  [MySQL] wyszukiwarka problem darlowiak 3 3,560 13-06-2013, 12:58
Ostatni post: darlowiak

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl