Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] formilarz pocztowy
Forum PHP.pl > Forum > Przedszkole
matyskiewicz
Witam,
Napisałem funkcje wywylania maili:
  1. <?php
  2. function kontakt(){
  3. if ($_GET['id'] == 'administrator') {
  4. print $kontakt_admin;
  5. print '<table>';
  6. print '<tr>';
  7. print '<td>Imię i nazwisko</td>';
  8. print '<td><input name="imie" type="text" class="pole" /></td>';
  9. print '</tr>';
  10. if($_POST['imie'] == "") {
  11. print '<tr>';
  12. print '<td></td>';
  13. print '<td><div class="blad">Proszę podać imię, nazwisko, bądź ksywę.</div></td>';
  14. print '</tr>';
  15. } else {
  16. }
  17. print '<tr>';
  18. print '<td>Adres e-mail:</td>';
  19. print '<td><input name="email" type="text" class="pole" /></td>';
  20. print '</tr>';
  21. if($_POST['email'] == "") {
  22. print '<tr>';
  23. print '<td></td>';
  24. print '<td><div class="blad">Proszę podać poprawny adres e-mail.</div></td>';
  25. print '</tr>';
  26. } else {
  27. }
  28. print '<tr>';
  29. print '<td>Temat:</td>';
  30. print '<td><input name="temat" type="text" class="pole" /></td>';
  31. print '</tr>';
  32. print '<tr>';
  33. print '<td>Treść:</td>';
  34. print '<td><textarea name="tresc" class="textarea"> </textarea></td>';
  35. print '</tr>';
  36. if($_POST['tresc'] == "") {
  37. print '<tr>';
  38. print '<td></td>';
  39. print '<td><div class="blad">Proszę wpisać treść wiadomości.</div></td>';
  40. print '</tr>';
  41. } else {
  42. }
  43. print '<tr>';
  44. print '<td></td>';
  45. print '<td><input type="submit" value="Wyślij" />&nbsp;&nbsp;&nbsp;<input type="reset" value="Wyczyść" /></td>';
  46. print '</tr>';
  47. print '</table>';
  48.  if (($_POST['imie'] != "") AND ($_POST['email'] != "") AND ($_POST['tresc'] != "")) { 
  49.  $wyslij = mail(".$mail_admin.",$_POST['temat'],$_POST['tresc'],"From: ".$_POST['imie']."<".$_POST['email'].">");
  50.  if ($wyslij) {
  51.  print "<script>alert ('Wiadomość została wysłana')</script>";
  52.  header("Location: kontakt.php?id=wyslane");
  53.  } else {
  54.  print "<script>alert ('UWAGA! Wystąpił błąd przy wysyłaniu.')</script>";
  55.  header("Location: kontakt.php?id=administrator");  
  56.  }
  57. } else {
  58. print 'Wystąpił błąd w otwieraniu strony. Prosimy ponformować <a href="'.$mail_admin.'" class="link">Administratora</a>.';
  59. }
  60. }
  61. ?>
Niewiem dlaczego ale na tej lini:
  1. <?php
  2. if (($_POST['imie'] != "") AND ($_POST['email'] != "") AND ($_POST['tresc'] != "")) {
  3. ?>

Parse error: syntax error, unexpected $end

wywala mi bład. Proszę o pomoc w rozwiazaniu problemu.
venomz
unexpected $end

widocznie gdzies nie domknales klamry

edit:
sprawdzilem w quancie i brakuje klamry na koncu
matyskiewicz
Hmm, no tak, głupi błąd!
Ale przynajmniej mi unaocznił kolejny błąd jakim jest od razu wyświetlenie braku wypełnieniał pola, oraz funkcja nie wysyła maili sad.gif
Jak można rozwiązać ten problem?
http://www.zw.matyskiewicz.biz/zw/kontakt....d=administrator

quant co to?
Master Miko
Cytat
kolejny błąd jakim jest od razu wyświetlenie braku wypełnieniał pola

Sprawdzaj, czy został wysłany submit (submit też wysyła się przez GET i POST). Jeśli tak - to znaczy, że możesz validować. Jeśli nie - to znaczy że jest to pierwsze wejście.
venomz
Cytat(matyskiewicz @ 29.10.2006, 22:54:56 ) *
quant co to?


quanta plus - edytor pod linuxa. zainstaluj sobie jakis edytor ktory koloruje skladnie - latwiej Ci bedzie wylapac glupie bledy tak jak ten wyzej winksmiley.jpg
matyskiewicz
a nawet taki mam biggrin.gif
A rozwiazaniem powyzszego problemu (nie wysylanie) jest brak znaczników <form> sadsmiley02.gif
Poprawiony kod i dzialajacy wyglada tak:
  1. <?php
  2. function kontakt(){
  3. if ($_GET['id'] == 'administrator') {
  4. print $kontakt_admin;
  5. print '<form action="" method="post">';
  6. print '<table>';
  7. print '<tr>';
  8. print '<td>Imię i nazwisko</td>';
  9. print '<td><input name="imie" type="text" class="pole" /></td>';
  10. print '</tr>';
  11. if($_POST['imie'] == "") {
  12. print '<tr>';
  13. print '<td></td>';
  14. print '<td><div class="blad">Proszę podać imię, nazwisko, bądź ksywę.</div></td>';
  15. print '</tr>';
  16. } else {
  17. }
  18. print '<tr>';
  19. print '<td>Adres e-mail:</td>';
  20. print '<td><input name="email" type="text" class="pole" /></td>';
  21. print '</tr>';
  22. if($_POST['email'] == "") {
  23. print '<tr>';
  24. print '<td></td>';
  25. print '<td><div class="blad">Proszę podać poprawny adres e-mail.</div></td>';
  26. print '</tr>';
  27. } else {
  28. }
  29. print '<tr>';
  30. print '<td>Temat:</td>';
  31. print '<td><input name="temat" type="text" class="pole" /></td>';
  32. print '</tr>';
  33. print '<tr>';
  34. print '<td>Treść:</td>';
  35. print '<td><textarea name="tresc" class="textarea"> </textarea></td>';
  36. print '</tr>';
  37. if($_POST['tresc'] == "") {
  38. print '<tr>';
  39. print '<td></td>';
  40. print '<td><div class="blad">Proszę wpisać treść wiadomości.</div></td>';
  41. print '</tr>';
  42. } else {
  43. }
  44. print '<tr>';
  45. print '<td></td>';
  46. print '<td><input type="submit" name="administrator" value="Wyślij" />&nbsp;&nbsp;&nbsp;<input type="reset" value="Wyczyść" /></td>';
  47. print '</tr>';
  48. print '</table>';
  49. print '</form>';
  50.  if (($_POST['imie'] != "") AND ($_POST['email'] != "") AND ($_POST['tresc'] != "")) { 
  51.  $wyslij = mail(".$mail_admin.",$_POST['temat'],$_POST['tresc'],"From: ".$_POST['imie']."<".$_POST['email'].">");
  52.  if ($wyslij) {
  53.  print "<script>alert ('Wiadomość została wysłana')</script>";
  54.  header("Location: kontakt.php?id=wyslane");
  55.  } else {
  56.  print "<script>alert ('UWAGA! Wystąpił błąd przy wysyłaniu.')</script>";
  57.  header("Location: kontakt.php?id=administrator");  
  58.  }
  59. }
  60. } else {
  61. print 'Wystąpił błąd w otwieraniu strony. Prosimy ponformować <a href="'.$mail_admin.'" class="link">Administratora</a>.';
  62. }
  63.  
  64. }
  65. ?>

Dzialajacy ale nie do konca: informacja o niewypelnieniu pola powinna sie pojawic po przycisnieciu submita a nie przed... jak z tego problemu wyjść?
http://www.zw.matyskiewicz.biz/zw/kontakt....d=administrator
Master Miko
Przeczytaj mojego POSTA?questionmark.gifquestionmark.gif?

Sprawdzaj, czy został wysłany submit (submit też wysyła się przez GET i POST). Jeśli tak - to znaczy, że możesz validować. Jeśli nie - to znaczy że jest to pierwsze wejście.

  1. <?php
  2. if(!empty($_POST['submit'])) // walidacja...
  3. ?>


Masz to w ogóle źle napisane...
Zamiast:

  1. <form action="" method="post">
  2. <input type="submit" name="administrator" value="Wyślij" />


  1. <form action="skrypt.php?id=administrator" method="post">
  2. <input type="submit" name="submit" value="Wyślij" />
matyskiewicz
a moge prosic latwiejszym jezykiem?

I walidacje dac tutaj:
  1. <?php
  2. if ($_GET['id'] == 'administrator') {
  3. ...
  4. print $kontakt_admin;
  5. ?>
Master Miko
Masz źle napisany skrypt - W formularzu który GENERUJE HTML (czyli cały <form> itp) masz zapisaną walidacje ZAWSZE - tzn bez względu czy został wysłany, czy nie zawsze waliduje:
  1. <?php
  2. if($_POST['imie'] == "") {
  3. print '<tr>';
  4.  print '<td></td>';
  5. print '<td><div class="blad">Proszę podać imię, nazwisko, bądź ksywę.</div></td>';
  6. print '</tr>';
  7.  } else {
  8.  }
  9. ?>

Cóż mogę radzić? Zmień koncepcję.
matyskiewicz
Cytat(Master Miko @ 29.10.2006, 23:43:54 ) *
Cóż mogę radzić? Zmień koncepcję.

No to sie teraz załamałem.
W takim razie jaka bedzie najlepsza koncepcja (proszę o przyklad), postaram sie sam stworzyc.
Master Miko
No niestety... kiedyś też robilłem formularze i mi nie wychodziły tongue.gif

Tutaj poszukaj smile.gif

Wybierz taką, która najbardziej Ci odpowiada.
matyskiewicz
dzieki znalazłem cos idealnego:) Pozdrawiam dziekuje za okazana 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.