Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] formilarz pocztowy, funkcja if
matyskiewicz
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


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.

Ten post edytował matyskiewicz 29.10.2006, 21:46:44
Go to the top of the page
+Quote Post
venomz
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

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


unexpected $end

widocznie gdzies nie domknales klamry

edit:
sprawdzilem w quancie i brakuje klamry na koncu

Ten post edytował venomz 29.10.2006, 21:49:17
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Jak można rozwiązać ten problem?
http://www.zw.matyskiewicz.biz/zw/kontakt....d=administrator

quant co to?

Ten post edytował matyskiewicz 29.10.2006, 21:55:40
Go to the top of the page
+Quote Post
Master Miko
post
Post #4





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


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.

Ten post edytował Master Miko 29.10.2006, 21:59:20
Go to the top of the page
+Quote Post
venomz
post
Post #5





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 18.09.2006

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


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #6





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


a nawet taki mam (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
A rozwiazaniem powyzszego problemu (nie wysylanie) jest brak znaczników <form> (IMG:http://forum.php.pl/style_emoticons/default/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

Ten post edytował matyskiewicz 29.10.2006, 22:37:38
Go to the top of the page
+Quote Post
Master Miko
post
Post #7





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Przeczytaj mojego POSTA?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.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" />


Ten post edytował Master Miko 29.10.2006, 22:41:05
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #8





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


a moge prosic latwiejszym jezykiem?

I walidacje dac tutaj:
  1. <?php
  2. if ($_GET['id'] == 'administrator') {
  3. ...
  4. print $kontakt_admin;
  5. ?>


Ten post edytował matyskiewicz 29.10.2006, 22:40:31
Go to the top of the page
+Quote Post
Master Miko
post
Post #9





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


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ę.

Ten post edytował Master Miko 29.10.2006, 22:44:27
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #10





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
Master Miko
post
Post #11





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


No niestety... kiedyś też robilłem formularze i mi nie wychodziły (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Tutaj poszukaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Wybierz taką, która najbardziej Ci odpowiada.

Ten post edytował Master Miko 29.10.2006, 23:01:22
Go to the top of the page
+Quote Post
matyskiewicz
post
Post #12





Grupa: Zarejestrowani
Postów: 184
Pomógł: 3
Dołączył: 6.10.2006
Skąd: Poznań

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


dzieki znalazłem cos idealnego:) Pozdrawiam dziekuje za okazana pomoc.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 05:23