Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z obsluga formularza
Forum PHP.pl > Forum > Przedszkole
n3on
Mam cos takiego:
  1. <?php 
  2. {
  3.   $header = &#092;"MIME-Version: 1.0nContent-type: text/html; charset=iso-8859-2nContent-Transfer-Encoding: 8bitnFrom: adres@nadawcyn\";
  4.   $tresc = &#092;"<html><body bgcolor=#EFFEF2><font face=arial><b>Nazwisko:</b> $nazwisko<br><b>Ilość pokoi:</b> $pokoje<br><b>Rodzaj pokoi:</b>$pokoj_r<br><b>Termin przybycia:</b>$przybycie<br><b>Termin odjazdu:</b> $odjazd<br> <b>Telefon kontaktowy:</b> $tel_kont<br>\";
  5.   if ($dane_faktury) { $tresc .= $faktura_nazwa.'<br>'.$faktura_ulica.'<br>'.$faktura_kod.'<br>'.$faktura_nip.'<br> '; }
  6.   
  7.   if (!empty($nazwisko) || !empty($pokoje) || !empty($pokoj_r) || !empty($przybycie) || !empty($odjazd) || !empty($tel_kont))
  8.   {
  9.    if ($dane_faktury)
  10.    {
  11.     if(!empty($faktura_nazwa) || !empty($faktura_ulica) || !empty($faktura_kod) || !empty($faktura_nip))
  12.     {
  13.      $mail=@mail(&#092;"adres@odbiorcy\",\"rezerwacja miejsc\",\"$tresc</b></body></html>\",$header);
  14.      if ($mail) 
  15.      { 
  16.       echo &#092;"<p class=text>Dziękujemy za wysłanie fomularza.<br></p>\";
  17.      }
  18.      else
  19.      {
  20.       echo &#092;"<p class=text>Formularz nie mógł zostać wysłany z powodów od nas niezależnych.<br><a href=zamowienie.html>Spróbuj ponownie.</a></p>\"; 
  21.      }
  22.     }
  23.     else 
  24.     {
  25.      echo&#092;"<p class=text>Nie wypełniłeś wszystkich wymaganych pól.<br><a href=zamowienie.html>Powrót do formularza</a><p>\";
  26.     }
  27.    }
  28.    else
  29.    {
  30.     $mail=@mail(&#092;"adres@odbiorcy\",\"rezerwacja miejsc\",\"$tresc</b></body></html>\",$header);
  31.     if ($mail) 
  32.     { 
  33.      echo&#092;"<p class=text>Dziękujemy za wysłanie fomularza.<br></p>\";
  34.     }
  35.     else
  36.     {
  37.      echo&#092;"<p class=text>Formularz nie mógł zostać wysłany z powodów od nas niezależnych.<br><a href=zamowienie.html>Spróbuj ponownie.</a></p>\"; 
  38.     }
  39.    }
  40.   }
  41.   else
  42.   {
  43.    echo&#092;"<p class=text>Nie wypełniłeś wszystkich wymaganych pól.<br><a href=zamowienie.html>Powrót do formularza</a><p>\";
  44.   }
  45. }
  46. ?>      


i powinno to dzialac na takiej zasadzie ze gdy nie wpisze danych w pola podstawowe (pierwsze if) to odrazu zglasza blad niewypelnienia pol. jesli wypelnie dane faktury pomijajac ktores z pol rowniez zglasza blad. Niestety nie dziala to w ten sposob - niezaleznie co bym nie wpisal zawsze wysyla maila - nawet przy wszystkich polach pustych.
nospor
Po pierwsze: używaj odpowoedniego BBCODE
Po drugie: ja tam nigdzie nie widzę znacznik <form> ani żadnego input. Gdzie niby gościu ma wpisać jakiekolwiek dane?
Wave
nospor zauważ że skrypt nie ma zwracać danych do tablic get czy post tylko je weryfikować. :] Formularz zapewne znajduje się w innym pliku...

n3on odnoś się do danych poprzez tabilce, np:
  1. <?php
  2.  
  3. if (!empty($_POST['nazwisko']) || !empty($_POST['pokoje']))
  4.  
  5. ?>
n3on
dane z formularza sa przekazywane - wrzucilem echo i wyswietla wszystko co zostanie wpisane, tak wiec z przekazywaniem danych nie ma problemu. Dziala to tak jakby nie sprawdzalo czy ktoras ze zmiennych jest pusta. Moze jakies sugestie jak to naprawic? uzyc innej metody? inaczej sformulowac warunek? ja nie widze powodu dla ktorego tak sie dzieje...

jesli to w czyms pomoze - ponizej kod formularza: (pomiedzy poszczegolnymi polami formularza znajduje sie kod html ktory wycialem - tylko formatowanie strony)

  1. <?php
  2.  
  3. <form method=&#092;"post\" action=\"m.php\" name=dane>
  4. <input type=&#092;"text\" size=\"25\" name=\"nazwisko\" class=\"form\">
  5. <input name=&#092;"tel_kont\" type=\"text\" class=\"form\" id=\"tel_kont\" size=\"25\">
  6. <input name=&#092;"przybycie\" type=\"text\" class=\"form\" id=\"przybycie\" size=\"25\">
  7. <input name=&#092;"odjazd\" type=\"text\" class=\"form\" id=\"odjazd\" size=\"25\">
  8. <select name=&#092;"pokoj_r\" class=\"form\">
  9. <option value=&#092;"1osobowy\">1 osobowy</option>
  10. <option value=&#092;"2osobowy\">2 osobowy</option>
  11. </select>
  12. <input type=&#092;"text\" size=\"25\" name=\"pokoje\" class=\"form\">
  13. <input type=checkbox name='dane_faktury'><input name=faktura_nazwa type=text class=&#092;"form\" size=25 >
  14. <input name=faktura_ulica type=text class=&#092;"form\" size=25 >
  15. <input name=faktura_kod type=text class=&#092;"form\" size=25 >
  16. <input name=faktura_nip type=text class=&#092;"form\" size=25>
  17. <input value=&#092;"Wyślij\" name=\"submitform\" type=\"submit\">
  18. </form>
  19.  
  20. ?>
mariuz
N3on mi sie wydaje , że wykrzyknik neguje to empty wiec przykladowo:
  1. <?php
  2.  
  3. if !empty($i) 
  4. echo &#092;"coś jest\";
  5. if empty($i)
  6. echo &#092;"pusto\";
  7.  
  8.  
  9. ?>


Ale to tylko moje skromne zdanie (kogos kto sie nie zna)
Jeżeli sie mylę to poprawcie mnie ale nie karccie za to winksmiley.jpg
Pozdro
Guest
no wlasnie i tutaj chyba byl problem... podstawowy blad logiki
z kodu wynikalo:

jesli zmienna nie jest pusta lub jakas inna nie jest pusta... (czyli wystarczylo zeby jedna byla wypelniona zeby wysylal... a jako ze jedno pole bylo select to zawsze bylo wypelnione) - wystarczyo zmienic w warunkach "||" na "&&" smile.gif

w kazdym razie dziala - dzieki za pomoc
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.