![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam dwa problemy związane z moim kodem do strony bazodanowej Pierwszym jest to że nie mogę sobie poradzić z zabezpieczeniem przed pustym formularzem. Po wejściu na stronę wyświetla mi się tekst, który chce aby pojawił się gdy ktoś zapomni wypełnić wszystkie pola w formularzach: "Nie podałeś wszystkich danych dotyczących klienta bądź dane są niepoprawne" Drugim problemem jest to, że gdy dodam rekord do bazy i po tym odświerze strone dane znów się dodają. Mógłby ktoś rzucić okiem i powiedzieć jak to poprawić? Jestem początkujący w tym temacie także prosze o wyrozumiałość ![]() Wklejam kod: if(isset($_POST["ok1"]) || (isset($_POST["ok2"])) || (isset($_POST["ok3"] ))){ //odbieramy dane z formularza $marka = $_POST['marka']; $model = $_POST['model']; $rok = $_POST['rok']; $nr_vin = $_POST['nr_vin']; $imie = $_POST['imie']; $nazwisko=$_POST['nazwisko']; $adres=$_POST['adres']; $nr_tel=$_POST['nr_tel']; $id_klienta=$_POST['id_klienta']; $id_auta=$_POST['id_auta']; $id_mechanika=$_POST['id_mechanika']; $data_przyjecia=$_POST['data_przyjecia']; $data_odbioru=$_POST['data_odbioru']; $opis=$_POST['opis']; $status=$_POST['status']; $cena_czesci=$_POST['cena_czesci']; $cena_robota=$_POST['cena_robota']; } if ((!empty($marka)) || (!empty($model)) || (!empty($rok)) || (!empty($nr_vin))){ //dodajemy rekord do bazy $dodajauto="INSERT INTO `auto`(`idauta`, `marka`, `model`, `rok`, `nrvin`) VALUES (NULL,'$marka','$model','$rok','$nr_vin')"; mysql_query ("$dodajauto"); echo ("Dodano auto do bazy"); $wynik = mysql_query("SELECT max(idauta) idauta FROM auto WHERE 1") or die('Błąd zapytania'); echo "<table cellpadding=\"2\" border=1>"; while($r = mysql_fetch_assoc($wynik)) { echo "<tr>"; echo "<td>ID Auta</td>"; echo "<td>".$r['idauta']."</td>"; echo "</tr>"; } echo "</table>"; }else { echo "Nie podałeś wszystkich danych dotyczących danych bądź dane są niepoprawne"; } if ((!empty($imie)) || (!empty($nazwisko)) || (!empty($adres)) || (!empty($nr_tel))){ $dodajklient="INSERT INTO `klient`(`idklienta`, `imie`, `nazwisko`, `adres`, `nrtel`) VALUES (NULL,'$imie','$nazwisko','$adres','$nr_tel')"; mysql_query ("$dodajklient"); echo ("Dodano klienta do bazy"); $wynik1 = mysql_query("SELECT max(idklienta) idklienta FROM klient WHERE 1") or die('Błąd zapytania'); if(mysql_num_rows($wynik1) > 0) { echo "<table cellpadding=\"2\" border=1>"; while($r1 = mysql_fetch_assoc($wynik1)) { echo "<tr>"; echo "<td>ID Klienta</td>"; echo "<td>".$r1['idklienta']."</td>"; echo "</tr>"; } echo "</table>"; } //$stmt1=$dbstmt->prepare("INSERT INTO klient (imie,nazwisko,adres,nrtel) VALUES (?,?,?,?)") or die($dbstmt->error); //$stmt1->bind_param('sssi',$imie,$nazwisko,$adres,$nr_tel); //$stmt1->execute(); }else { echo "Nie podałeś wszystkich danych dotyczących klienta bądź dane są niepoprawne"; } if ((!empty($id_klienta)) || (!empty($id_auta)) || (!empty($id_mechanika)) || (!empty($data_przyjecia)) || (!empty($data_odbioru)) || (!empty($opis)) || (!empty($status)) || (!empty($cena_czesci)) || (!empty($cena_robota))){ $dodajnaprawa="INSERT INTO `naprawa`(`idnaprawy`, `idklienta`, `idauta`, `idmechanika`, `dataprzyjecia`, `dataodbioru`, `opisusterki`, `status`, `cenaczesci`, `cenarobota`) VALUES (NULL,'$id_klienta','$id_auta','$id_mechanika','$data_przyjecia','$data_odbioru','$opis','$status','$cena_czesci','$cena_robota')"; mysql_query ($dodajnaprawa); echo "Dodano zlecenie do bazy"; }else{ echo "Nie podałeś wszystkich danych dotyczących naprawy bądź dane są niepoprawne"; } |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 342 Pomógł: 23 Dołączył: 20.01.2011 Skąd: Chełm Ostrzeżenie: (0%) ![]() ![]() |
Mogłeś chociaż dać znacznik php by jakoś na forum to było czytelne ale mniejsza o to. Popraw warunki if z || na && bo przepuszczasz dane jeśli chociaż jedna wartość będzie prawdziwa. Z odświeżaniem to musisz się zabezpieczyć bo niestety tak to jest jak klikasz odśwież.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem z || na && oprócz pierwszego if'a bo tam chyba powinno zostać || bo chce dodawać dane osobno do tabel a nie wszystkie razem czyli wystarczy, że jeden warunek zostanie spełniony
Ale ciągle wyskakuje mi informacja o "Nie podałeś wszystkich danych.." Jak to rozwiązac by wyskakiwał komunikat "Nie podałeś wszystkich danych.." tylko wtedy gdy formularze nie zostaną wypełnione dla danego submita którym zatwierdziłem wysłanie danych do bazy. Mam nadzieję że zrozumiecie o co chodzi bo nie napisałem tego dosyć zrozumiale chyba ![]() Zaznaczyłem na czerwono o co mi chodzi. ![]() Ten post edytował lukis19944 8.08.2017, 14:18:05 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 3 Dołączył: 11.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem te ten plik php ma odpowiadać za 3 różne submity?
jeżeli tak to raczej tak powinno to być.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
No niestety, dalej po zatwierdzeniu jednego submita pokazuje mi komunikat o pozostałych o niewypełnionych formularzach..
Ma ktoś jakiś pomysł jeszcze? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jak wygląda przycisk którym wysyłasz formularze? var_dump($_POST);
Prosta logika. Jeżeli istnieje zmienna x w tablicy POST zrób x (sprawdzenie koniecznych pól), jeśli y to y itd. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Jeden z nich
<input type="submit" name="ok1" value="zatwierdź" /> var_dump($_POST); array (size=18) 'marka' => string 'dasdafadf' (length=9) 'model' => string 'fdaf' (length=4) 'rok' => string '2' (length=1) 'nr_vin' => string 'e4gdfv68fxv4x' (length=13) 'ok1' => string 'zatwierdź' (length=10) 'imie' => string '' (length=0) 'nazwisko' => string '' (length=0) 'adres' => string '' (length=0) 'nr_tel' => string '' (length=0) 'id_klienta' => string '' (length=0) 'id_auta' => string '' (length=0) 'id_mechanika' => string '' (length=0) 'data_przyjecia' => string '' (length=0) 'data_odbioru' => string '' (length=0) 'opis' => string '' (length=0) 'cena_czesci' => string '' (length=0) 'cena_robota' => string '' (length=0) 'status' => string 'W trakcie' (length=9) O to chodziło bo nie bardzo rozumiem? ![]() Ten post edytował lukis19944 9.08.2017, 13:15:28 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrób po prostu:
Ten post edytował viking 9.08.2017, 13:13:30 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
tak miałem zrobić?
Ale to nie pomogło. dalej 3 komunikaty po wciśnięciu jednego przycisku..
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W takim razie sprawdź co się dzieje z komunikatami. Powinny być tylko w tych ifach wyżej.
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 3 Dołączył: 11.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował dvdx95 9.08.2017, 14:14:31 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż jakieś przykładowe dane po wysłaniu formularza var_dump($_POST);
-------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Wkleiłem kilka postów wyżej.
To jest wysłanie za pomocą pierwszego submita array (size=18) 'marka' => string 'dasdafadf' (length=9) 'model' => string 'fdaf' (length=4) 'rok' => string '2' (length=1) 'nr_vin' => string 'e4gdfv68fxv4x' (length=13) 'ok1' => string 'zatwierdź' (length=10) 'imie' => string '' (length=0) 'nazwisko' => string '' (length=0) 'adres' => string '' (length=0) 'nr_tel' => string '' (length=0) 'id_klienta' => string '' (length=0) 'id_auta' => string '' (length=0) 'id_mechanika' => string '' (length=0) 'data_przyjecia' => string '' (length=0) 'data_odbioru' => string '' (length=0) 'opis' => string '' (length=0) 'cena_czesci' => string '' (length=0) 'cena_robota' => string '' (length=0) 'status' => string 'W trakcie' (length=9) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
No to nie ma opcji żeby działały ify od ok2 i 3.
-------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
To w czym może być problem że tak się dzieje?
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Szklana kula akurat przestała działać. Zapewne kod który obecnie tam masz by ją włączył.
-------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
dvdx95 wielkie dzięki za pomoc, kod działa tak jak trzeba
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 15:03 |