Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] sprawdzanie czy pole formularza nie jest puste
mispolarny
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


mam taki kod:
  1. $nazwa_f = $_POST['nazwa_f'];
  2. $place = $_POST['place'];
  3. $www = $_POST['www'];
  4. $os_kontakt = $_POST['os_kontakt'];
  5. $email = $_POST['email'];
  6.  
  7. if($nazwa_f and $place and $www and $os_kontakt and $email) {
  8.  
  9. // dodajemy rekord do bazy
  10. $ins = @mysql_query("INSERT INTO potencjalni SET nazwa_f='$nazwa_f', place='$place', www='$www', os_kontakt='$os_kontakt', 
  11. email='$email', added='$added'");
  12. ?>
  13. <br />
  14. <?php
  15. if($ins) echo "Rekord został dodany poprawnie";
  16. else echo "Błąd nie udało się dodać nowego rekordu";
  17.  
  18. }


pierwsze pytanie to czy if jest dobrze napisany? bo jak ktores pole jest niewypelnione to nie wyswietla tego else echo "Błąd nie udało się dodać nowego rekordu";
a po drugie jak ktos zostawi puste pole to zeby nie czyscilo formularza tylko wracalo do niego i np. czerwona gwiazdka (oczywiscie moze to uwydataniac w jakikolwiek sposob, byleby bylo wiadomo o co chodzi) zaznaczalo miejsce ktore jeszcze nalezy uzupelnic?
Go to the top of the page
+Quote Post
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


if(empty($zmienna)) sprawdza czy zmienna ma pustą wartość

a dane spowrotem możesz przekazać przez sesję. I tam zaznaczać które są niepoprawne.

Ten post edytował Shili 11.07.2008, 12:32:47
Go to the top of the page
+Quote Post
mispolarny
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


a moglbys cos blizej napisac?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. <?php
  2. if(!empty($nazwa_f && $place && $www && $os_kontakt && $email))
  3. ?>



btw. Shili to kobieta winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
mispolarny
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


Cytat(piotrooo89 @ 11.07.2008, 13:48:41 ) *
  1. <?php
  2. if(!empty($nazwa_f && $place && $www && $os_kontakt && $email))
  3. ?>

btw. Shili to kobieta winksmiley.jpg


przepraszam w takim razie smile.gif
a po wrzuceniu tej linijki wyswietla biala strone smile.gif
Go to the top of the page
+Quote Post
piotrooo89
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




  1. <?php
  2. if( (!empty($nazwa_f)) && (!empty($place)) && (!empty($www)) && (!empty($os_kontakt)) && (!empty($email)) )
  3. ?>


tak Ci chyba źle podałem... sry.


--------------------
Go to the top of the page
+Quote Post
mispolarny
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if( (!empty($nazwa_f)) && (!empty($place)) && (!empty($www)) && (!empty($os_kontakt)) && (!empty($email)) ) {
  3.  
  4. // dodajemy rekord do bazy
  5. $ins = @mysql_query("INSERT INTO potencjalni SET nazwa_f='$nazwa_f', place='$place', www='$www', os_kontakt='$os_kontakt', email='$email', 
  6. added='$added', interest='$interest'");
  7. ?>
  8. <br />
  9. <?php
  10. if($ins) echo "Rekord został dodany poprawnie";
  11. else echo "Błąd nie udało się dodać nowego rekordu";
  12.  
  13. }
  14. ?>


jesli nie uzupelnie wszystkich pol to nie pojawia mi sie komunikat o bledzie...
i jak zrobic zeby zapamietowala sie sesja z wartosciami w polach?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #8


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




co do pierwszego będzie się tak działo ponieważ masz && czyli i. zmień sobie na || czyli or.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
jesli nie uzupelnie wszystkich pol to nie pojawia mi sie komunikat o bledzie...
bo przeciez komunikat o bledzie wyswietlasz wlasnie tylko wtedy, gdy uzupelnisz wszystkie i nie powiedzie sie zapytanie. Masz ze tak powiem sprzeczne zalozenia winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
piotrooo89
post
Post #10


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




kurcze nie zauważyłem że tam nie ma elsa... zrób jak mówi nospor


--------------------
Go to the top of the page
+Quote Post
mispolarny
post
Post #11





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


fakt smile.gif
poprawilem, ale teraz za kazdym razem gdy odswiezam strone to wyskakuje komunikat...
  1. <?php
  2. if( (!empty($nazwa_f)) || (!empty($place)) || (!empty($www)) || (!empty($os_kontakt)) || (!empty($email)) ) {
  3.  
  4. // dodajemy rekord do bazy
  5. $ins = @mysql_query("INSERT INTO potencjalni SET nazwa_f='$nazwa_f', place='$place', www='$www', os_kontakt='$os_kontakt', email='$email', 
  6. added='$added', interest='$interest'");
  7. ?>
  8. <br />
  9. <?php
  10. if($ins) echo "Rekord został dodany poprawnie";
  11. else echo "Błąd nie udało się dodać nowego rekordu";
  12.  
  13. }
  14. else echo "Błąd nie udało się dodać nowego rekordu";


jak to obejsc?
i co z tym zachowywaniem danych?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #12


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pewnie nic w zmiennych nie masz więc będzie komunikat.


--------------------
Go to the top of the page
+Quote Post
mispolarny
post
Post #13





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


no dokladnie nie mam nic w zmiennych, ale jak zrobic tak zeby ten komunikat sie nie wyswietlal a wszystko chodzilo ladnie smile.gif
Go to the top of the page
+Quote Post
piotrooo89
post
Post #14


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




musisz wpisać coś w formularzu z którego przesyłasz dane... to chyba jest proste...


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




raz marudzisz ze nie wyswietla, raz marudzisz ze sie wyswietla... zdecyduj sie bo z taką hustawką nastrojów to nas dobijesz winksmiley.jpg

Jak chcesz by to wszystko sie dzialo tylko po wyslaniu forma, to obejmij to wszystko jeszcze jednym ifem:
if (!empty($_POST)){
....
}


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
mispolarny
post
Post #16





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 11.07.2008, 14:33:10 ) *
raz marudzisz ze nie wyswietla, raz marudzisz ze sie wyswietla... zdecyduj sie bo z taką hustawką nastrojów to nas dobijesz winksmiley.jpg

Jak chcesz by to wszystko sie dzialo tylko po wyslaniu forma, to obejmij to wszystko jeszcze jednym ifem:
if (!empty($_POST)){
....
}


hehe
coz dzis widocznie jak kobieta jestem tongue.gif
dzieki, o to chodzilo smile.gif
a teraz jak przechowac w sesji te dane ktore sie wprowadzilo? zeby np. jak ktos nie wpisze czegos do forma to mu to wszystko nie zniklo i zeby nie musial wprowadzac tego jeszcze raz...
Go to the top of the page
+Quote Post
nospor
post
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




sesja tu nie potrzebna

  1. <?php
  2. echo '<input name="cos" value="'.$_POST['cos'].'" />';
  3. ?>

tak w skrocie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pilsener
post
Post #18





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


1. Robisz templat formularza, który wygląda mniej więcej tak:
  1. <form action="index.php" method="post">
  2. <input type="text" name="nazwisko"{V_NAZWISKO} />
  3. </form>
- trzymasz to sobie w pliku lub bazie

2. Wyświetlasz normalnie formularz na stronie, za {} podstawiając odpowiednie zmienne (może to być np. tytuł, numer etc.)
3. Odbierasz dane i parsujesz je:
  1. <?php
  2. $nazwisko = $_POST['nazwisko'];
  3. if(empty($nazwisko)){
  4.  $error[] = 'wypełnij pole nazwisko';
  5. }
  6. ?>
- sprawdzasz poprawność danych i generujesz tablice błędów/warningów

3. Dodajesz do bazy lub odrzucasz:
  1. <?php
  2. if(empty($error)){
  3.  //kod dodający do bazy, jeśli tablica błędów jest pusta
  4. }else{
  5.  $tresc_naglowek .= '<h4 class="error">Formularz zawiera błędy: '.join(", ",$error).'</h4>'; //doklejasz błędy do treści
  6.  $v_nazwisko = ' value="'.$nazwisko.'"'; //generujesz dodatkowe zmienne do formularza
  7.  //tutaj ponownie wyświetlasz formularz podstawiając za {V_NAZWISKO} odpowiednie wa
    rtości. Można np. zrobić value="wypełnij to pole" etc.
  8. }
  9. ?>


Przykład działania: brydz.ugu.pl (dodawanie komentarzy do newsów). Możesz wszystko zrobić na jednej stronie (action do tej samej strony), wtedy dodatkowo musisz sprawdzać, czy tablica $_POST jest pusta. Jeśli jest, wyświetlasz formularz, jak nie to dodajesz.
Go to the top of the page
+Quote Post
mispolarny
post
Post #19





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.07.2008

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 11.07.2008, 14:39:40 ) *
sesja tu nie potrzebna

  1. <?php
  2. echo '<input name="cos" value="'.$_POST['cos'].'" />';
  3. ?>

tak w skrocie


fajne to rozwiazanie bo proste smile.gif
a powiedz mi teraz jak wyczyscic formularz? smile.gif

bo mam tak: <input type="reset" value="Wyczyść formularz" />
ale teraz to nie dziala...

Ten post edytował mispolarny 11.07.2008, 14:01:29
Go to the top of the page
+Quote Post
piotrooo89
post
Post #20


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




robisz pole:
<input type="reset" value="Wyczysc" />


--------------------
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 17:41