Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzanie czy pola formularza są wypełnione
Forum PHP.pl > Forum > Przedszkole
drips
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?
sadistic_son
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. }
drips

<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
krispak
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. }
drips
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
krispak
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. }
Makciek
a nie lepiej było by wykorzystać funkcję
  1. empty($_POST['zmienna'])
MateuszS
Najlepiej i najkrócej zrobić

  1. foreach($_POST as $value) {
  2. if(empty($value)) {
  3. echo "Puste pole!";
  4. break;
  5. }
  6. }
drips
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ł
MateuszS
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()
drips
Serwer na pewno obsługuję tą funkcję tylk ocoś z tym sprawdzaniem jest nie tak.
MateuszS
Zrobiłeś tak jak Ci zaproponowałem?
drips
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
tr@k
$_POST['sdres']!=""
sadistic_son
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" />
krispak
@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.
drips
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.