Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Sprawdzanie czy pola formularza są wypełnione
drips
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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


Witam, mam taki formularz i super działa dochodzi mi na wskazanego maila nałozyłem maski do wprowadzania dat itp. ale mam problem poniewaz nie wiem co dopisać żeby sprawdzał czy wszystkie pola są wypełnione i po wysłaniu pokazywał się komunikat o poprawnie wysłanym mailu?

kod formularza :
<form action="" method="post">
<input class="imie" type="text" name=imie>imię</input>
<input class="nazwisko" type="text" name=nazwisko>nazwisko</input>
<input id="drugi eimie"class="drugi imie" type="text" name=drugie imie>drugie imie</input>
<input id="date" class="od"type="text" name=od>od</input>
<input id="date2" class="do"type="text" name=do>do</input>
<input class="adres" type="text" name=adres>adres</input>
<input class="adres" type="text" name=adres2>adres cd..</input>
<input class="miasto"type="text" name=miasto>miasto</input>
<input id="kod" type="text" name=kod>Kod pocztowy</input><br />
Kraj
<select name="kraj">
<option value="" selected="selected">...</option>
<option value="Poland" >Polska</option>
</select>
<input type="submit" value="wyslij" />
</form>


<?php
$to = 'mojadres@op.pl';
$subject = 'Dane';
$message="ImiÄ™:".$_POST['imie'].'\n';
$message.="Nazwisko:".$_POST['nazwisko'].'\n';
$message.="drugie imie:".$_POST['drugie imie'].'\n';
$message.="Od:".$_POST['od'].'\n';
$message.="Do:".$_POST['do'].'\n';
$message.="Adres:".$_POST['adres'].'\n';
$message.="Adres2:".$_POST['adres2'].'\n';
$message.="Miasto:".$_POST['miasto'].'\n';
$message.="Kod:".$_POST['kod'].'\n';
$message.="Kraj:".$_POST['kraj'].'\n';
$headers = 'From: adres@op.pl' . "\r\n" .
'Reply-To: adres@op.pl' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>


pomożecie?

Ten post edytował drips 13.09.2010, 12:44:33
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Aby sprawdzał czy wszystkie pola są wypełnione to:
  1. if(isset($_POST['imie']) && $_POST['imie']!="" && isset($_POST['nazwisko']) && $_POST['nazwisko']!="" /*i tak dalej dla reszty pol*/){
  2. //Jesli wszystkie wypelniono
  3. }
  4. else{
  5. echo 'wypelnij wszystkie pola';
  6. }


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
drips
post
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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



<form action="" method="post">
<input class="imie" type="text" name=imie>imię</input>
<input class="nazwisko" type="text" name=nazwisko>nazwisko</input>
<input id="pesel"class="pesel" type="text" name=pesel>PESEL</input>
<input id="date" class="od"type="text" name=od>od</input>
<input id="date2" class="do"type="text" name=do>do</input>
<input class="adres" type="text" name=adres>adres</input>
<input class="adres" type="text" name=adres2>adres cd..</input>
<input class="miasto"type="text" name=miasto>miasto</input>
<input id="kod" type="text" name=kod>Kod pocztowy</input><br />
Kraj
<select name="kraj">
<option value="" selected="selected">...</option>
<option value="Poland" >Polska</option>
</select>
<input type="submit" value="wyslij" />
</form>


<?php
$to = 'informatyk@mops.przemysl.pl';
$subject = 'Wniosek';
$message="ImiÄ™:".$_POST['imie'].'\n';
$message.="Nazwisko:".$_POST['nazwisko'].'\n';
$message.="Od:".$_POST['od'].'\n';
$message.="Do:".$_POST['do'].'\n';
$message.="Adres:".$_POST['adres'].'\n';
$message.="Adres2:".$_POST['adres2'].'\n';
$message.="Miasto:".$_POST['miasto'].'\n';
$message.="Kod:".$_POST['kod'].'\n';
$message.="Kraj:".$_POST['kraj'].'\n';
$headers = 'From: wniosek@mops.przemysl.pl' . "\r\n" .
'Reply-To: wniosek@mops.przemysl.pl' . "\r\n" .
'X-Mailer: PHP/' . phpversion();



//sprawdzanie czy wypełniono wszystkie pola formularza
if(isset($_POST['imie']) && $_POST['imie']!="" && isset($_POST['nazwisko']) && $_POST['nazwisko']!=""
&& isset($_POST['od']) && $_POST['od']!="" && isset($_POST['do']) && $_POST['do']!="" && isset($_POST['adres']) && $_POST['sdres']!=""
&& isset($_POST['adres2']) && $_POST['adres2']!="" && isset($_POST['miasto']) && $_POST['miasto']!="" && isset($_POST['kod']) && $_POST['kod']!=""
&& isset($_POST['kraj']) && $_POST['kraj']!=""/*i tak dalej dla reszty pol*/){


//Jesli wszystkie wypelniono

}

else{
echo 'wypelnij wszystkie pola';

}

mail($to, $subject, $message, $headers);

?>
Zrobiłem w ten sposób:

i cały czas jest widoczny komunikat "wypełnij wszystkie pola
Go to the top of the page
+Quote Post
krispak
post
Post #4





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


Wrzuc do srodka a nie na zewnatrz jak ty masz
  1. //sprawdzanie czy wypełniono wszystkie pola formularza
  2. if(isset($_POST['imie']) && $_POST['imie']!="" && isset($_POST['nazwisko']) && $_POST['nazwisko']!=""
  3. && isset($_POST['od']) && $_POST['od']!="" && isset($_POST['do']) && $_POST['do']!="" && isset($_POST['adres']) && $_POST['sdres']!=""
  4. && isset($_POST['adres2']) && $_POST['adres2']!="" && isset($_POST['miasto']) && $_POST['miasto']!="" && isset($_POST['kod']) && $_POST['kod']!=""
  5. && isset($_POST['kraj']) && $_POST['kraj']!=""/*i tak dalej dla reszty pol*/)
  6. {
  7. $to = 'informatyk@mops.przemysl.pl';
  8. $subject = 'Wniosek';
  9. $message="ImiÄ™:".$_POST['imie'].'\n';
  10. $message.="Nazwisko:".$_POST['nazwisko'].'\n';
  11. $message.="Od:".$_POST['od'].'\n';
  12. $message.="Do:".$_POST['do'].'\n';
  13. $message.="Adres:".$_POST['adres'].'\n';
  14. $message.="Adres2:".$_POST['adres2'].'\n';
  15. $message.="Miasto:".$_POST['miasto'].'\n';
  16. $message.="Kod:".$_POST['kod'].'\n';
  17. $message.="Kraj:".$_POST['kraj'].'\n';
  18. $headers = 'From: wniosek@mops.przemysl.pl' . "\r\n" .
  19. 'Reply-To: wniosek@mops.przemysl.pl' . "\r\n" .
  20. 'X-Mailer: PHP/' . phpversion();
  21. mail($to, $subject, $message, $headers);
  22. } else {
  23. echo 'wypelnij wszystkie pola';
  24. }


Ten post edytował krispak 13.09.2010, 13:36:24


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
drips
post
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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


mam skopiowane od ciebie i dalej się wyświetla cały czas ten komunikat, więc jak możesz to zerknij na to jeszcze raz
Go to the top of the page
+Quote Post
krispak
post
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


Dodaj przed input submit jeszcze to
  1. <input type="hidden" name="send" value="1" />

i to w php, a tam gdzie komentarz "// tutaj daj poprzedni kod ktory wkleilem" wklej to z poprzedniego mojego postu
  1. if(isset($_POST['send']) && $_POST['send'] == 1)
  2. {
  3. // tutaj daj poprzedni kod ktory wkleilem
  4. }


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
Makciek
post
Post #7





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


a nie lepiej było by wykorzystać funkcję
  1. empty($_POST['zmienna'])
Go to the top of the page
+Quote Post
MateuszS
post
Post #8





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Najlepiej i najkrócej zrobić

  1. foreach($_POST as $value) {
  2. if(empty($value)) {
  3. echo "Puste pole!";
  4. break;
  5. }
  6. }


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
drips
post
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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


Dalej coś jest nie tak, piszę tylko orientacyjnie jak będziesz miał chwilkę to zerknij

<h3> Zapraszam do pisania wiadomości</h3>

<form action="" method="post">
<input class="imie" type="text" name=imie>imię</input>
<input class="nazwisko" type="text" name=nazwisko>nazwisko</input>
<input id="date" class="od"type="text" name=od>od</input>
<input id="date2" class="do"type="text" name=do>do</input>
<input class="adres" type="text" name=adres>adres</input>
<input class="adres" type="text" name=adres2>adres cd..</input>
<input class="miasto"type="text" name=miasto>miasto</input>
<input id="kod" type="text" name=kod>Kod pocztowy</input>


<input type="hidden" name="send" value="1" />
<input type="submit" value="wyslij" />
</form>


<?php

if(isset($_POST['send']) && $_POST['send'] == 1){
//sprawdzanie czy wypełniono wszystkie pola formularza
if(isset($_POST['imie']) && $_POST['imie']!="" && isset($_POST['nazwisko']) && $_POST['nazwisko']!=""
&& isset($_POST['od']) && $_POST['od']!="" && isset($_POST['do']) && $_POST['do']!="" && isset($_POST['adres']) && $_POST['sdres']!=""
&& isset($_POST['adres2']) && $_POST['adres2']!="" && isset($_POST['miasto']) && $_POST['miasto']!="" && isset($_POST['kod']) && $_POST['kod']!=""
/*i tak dalej dla reszty pol*/)
{
$to = 'wniosek@op.pll';
$subject = 'Wniosek';
$message="Imie:".$_POST['imie'].'\n';
$message.="Nazwisko:".$_POST['nazwisko'].'\n';
$message.="Od:".$_POST['od'].'\n';
$message.="Do:".$_POST['do'].'\n';
$message.="Adres:".$_POST['adres'].'\n';
$message.="Adres2:".$_POST['adres2'].'\n';
$message.="Miasto:".$_POST['miasto'].'\n';
$message.="Kod:".$_POST['kod'].'\n';

$headers = 'From: wniosek@op.pl' . "\r\n" .
'Reply-To: wniosek@op.pl' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
} else {
echo 'wypelnij wszystkie pola';
}
}
?>



albo coś źle zrozumiałem ale to nie działa tak jak bym chciał
Go to the top of the page
+Quote Post
MateuszS
post
Post #10





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


1. Używaj bbcode bo czuję się jakbym czytał moją książkę z fizyki.
2. Może twój serwer nie obsługuje funkcji mail()


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
drips
post
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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


Serwer na pewno obsługuję tą funkcję tylk ocoś z tym sprawdzaniem jest nie tak.
Go to the top of the page
+Quote Post
MateuszS
post
Post #12





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Zrobiłeś tak jak Ci zaproponowałem?


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
drips
post
Post #13





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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


Cytat(MateuszS @ 13.09.2010, 20:11:06 ) *
Najlepiej i najkrócej zrobić

  1. foreach($_POST as $value) {
  2. if(empty($value)) {
  3. echo "Puste pole!";
  4. break;
  5. }
  6. }




Teraz to już mam kompletny mentlik w głowie i nic z tego nie wiem a jak to zaimplementować twoim sposobem
Go to the top of the page
+Quote Post
tr@k
post
Post #14





Grupa: Zarejestrowani
Postów: 41
Pomógł: 8
Dołączył: 13.09.2010

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


$_POST['sdres']!=""


--------------------
Web usability
Program Partnerski
Go to the top of the page
+Quote Post
sadistic_son
post
Post #15





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Po pierwsze, tak jak zauważył tr@k masz literówkęexclamation.gif
Po drugie, używaj poprawnie htmla, czyli np.
<input class="miasto"type="text" name="miasto" />miasto</input>

Po trzecie... skoro nie sprawdzasz nigdzei czy w ogole wyslano formularz to nie dziw sie ze program czepia sie ze sa puste pola, skoro nawet ich nie wypelniono. Zacznij od sprawdzenia czy wyslano formularz, potem sprawdzaj czy pola sa powypelniane:
  1. if(isset($_POST['wyslij'])){ //sprawdzenie czy kliknieto przycisk wyslij
  2.  
  3. if(isset($_POST['imie']) && $_POST['imie']!="" && isset($_POST['nazwisko']) && $_POST['nazwisko']!=""
  4. && isset($_POST['od']) && $_POST['od']!="" && isset($_POST['do']) && $_POST['do']!="" && isset($_POST['adres']) && $_POST['adres']!=""
  5. && isset($_POST['adres2']) && $_POST['adres2']!="" && isset($_POST['miasto']) && $_POST['miasto']!="" && isset($_POST['kod']) && $_POST['kod']!=""){
  6. $to = 'wniosek@op.pll';
  7. $subject = 'Wniosek';
  8. $message="Imie:".$_POST['imie'].'\n';
  9. $message.="Nazwisko:".$_POST['nazwisko'].'\n';
  10. $message.="Od:".$_POST['od'].'\n';
  11. $message.="Do:".$_POST['do'].'\n';
  12. $message.="Adres:".$_POST['adres'].'\n';
  13. $message.="Adres2:".$_POST['adres2'].'\n';
  14. $message.="Miasto:".$_POST['miasto'].'\n';
  15. $message.="Kod:".$_POST['kod'].'\n';
  16.  
  17. $headers = 'From: wniosek@op.pl' . "\r\n" .
  18. 'Reply-To: wniosek@op.pl' . "\r\n" .
  19. 'X-Mailer: PHP/' . phpversion();
  20. mail($to, $subject, $message, $headers);
  21. } else {
  22. echo 'wypelnij wszystkie pola';
  23. }
  24.  
  25. }
Ustaw nazwe przycisku do wysylania:
  1. <input type="submit" value="wyslij" name="wyslij" />


Ten post edytował sadistic_son 13.09.2010, 22:57:59


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
krispak
post
Post #16





Grupa: Zarejestrowani
Postów: 250
Pomógł: 55
Dołączył: 27.08.2008

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


@sadistic_son juz mu wstawialem sprawdzanie wysylania formularza z hiddenem ale twoje sprawdzanie tez moze byc..
Zmien literowke $_POST['sdres']!="" na $_POST['adres']!="" i zastosuj to co podeslalem w poprzednim moim poscie a bedzie dzialac.
I dobrze byloby gdybys poprawnie zastosowal htmla jak juz napisal @sadistic_son.


--------------------
* * * * * * * * * * * * * * * * * * * * * * * * *
PHP, Laravel, Docker, Docker Compose, Laradock, Redis, JS, React, Vue, CSS, SCSS, Gulp, GIT ... itd..
Go to the top of the page
+Quote Post
drips
post
Post #17





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.09.2009

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


Dzięki za wszystkie odpowiedzi, poprawiłem i działa ale, jeszcze prośba o komunikat że poprawnie wysłano dane z formularza, gdy zamienię :
  1. mail($to, $subject, $message, $headers);
na
  1. if(mail($to, $subject, $message, $headers)) echo poprawnie wysłano dane z formularza";
to przez cąły czas wyświetla mi się komunikat że poprawnie wysłano dane z formularza, nawet gdy go jeszcze nie wypełniłem.



OK już sam znalazłem swój błąd
  1. if(mail($to, $subject, $message, $headers)) echo"poprawnie wysłano dane z formularza";
zabrakło mi nawiasów, wiem że to sa zupełne podstawy ale ja dopiero zaczyna m przygodę z php i czasem nawet takie podstawy są ciężkie

tak że jeszcze raz wielkie dzięki

Ten post edytował drips 14.09.2010, 07:59:08
Go to the top of the page
+Quote Post

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: 20.08.2025 - 05:53