Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie dotyczące formularza php
Forum PHP.pl > Forum > PHP
threat
Poniżej znajduje się formularz php który zamieściłem między elementami blokowymi <div>...</div>
Więc moje pytanie jest następujące... Dlaczego pozostała część strony poza tymi elementami blokowymi nie zostaje wyświetlona.
Na pewno przyczyną jest argument "or die" bo wyświetla mi się po złym wypełnieniu formularza "Nie udało się wysłać wiadomości" a
reszta strony jest ucięta tak jakby nie wczytał pozostałych elementów blokowych z których składa się strona.

  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4.    // wyświetlamy formularz
  5.    echo "<table border=\"0\"><form method=\"post\">
  6. <tr>
  7. <td>Treść wiadomości</td>
  8. <td><textarea name=\"tresc\" style=\"width: 250px; height: 100px\"></textarea></td>
  9. </tr>
  10. <tr>
  11. <td>Imię, nazwisko lub nick</td>
  12. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  13. </tr>
  14. <tr>
  15. <td>Adres e-mail</td>
  16. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  17. </tr>
  18. <tr>
  19. <td>&nbsp;</td>
  20. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  21. <input type=\"reset\" value=\"Od nowa\"></td></form>
  22. </tr>
  23. </table>";
  24. }
  25. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  26. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  27.    // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  28.    // zmienna $message zawiera treść wiadomości
  29.    $message = "Treść wiadomości:\n$_POST[tresc]\nWysłał: $_POST[imie]\ne-mail: $_POST[email]";
  30.    // zmienna $header zawiera przede wszystkim adres zwrotny
  31.    $header = "From: $_POST[imie] <$_POST[email]>";
  32.    // funkcja mail() za pomocą której wiadomość zostanie wysłana
  33.    @mail("adres@domena.pl","Wiadomosc ze strony WWW","$message","$header")
  34.    or die('Nie udało się wysłać wiadomości');
  35.    // wyświetlenie komunikatu w przypadku powodzenia
  36.    echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  37. }
  38. // lub w przypadku nie wypełnienia formularza do końca
  39. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  40.  
  41. ?>


Jeśli taki temat był już poruszany to prosiłbym o nakierowanie bo nie potrafię znaleźć. Z góry dzięki.
erix
  1. Użyj normalnego bbcode
  2. puść gdzieś ten kod na żywo
threat
Puścić na żywo mogę dopiero o 16 natomiast tak wygląda po zamianie na bbcode i wydaje się że Formularz jest ok tylko jak umieszcze go pomiędzy <div>...</div> to pozostałe ignoruje i i ich poprostu nie wyświetla.
erix
Cytat
pomiędzy <div>...</div> to pozostałe ignoruje i i ich poprostu nie wyświetla.

Że co...? ohmy.gif
threat
mam coś takiego:

CODE
<div id="bla">
.
.
.
.
</div>

/* Później ten formularz

<div id="formularz">
<?php

.
.
?>

/* No i dalej są divy z zawartością strony

<div id="dolstrony">
.
.
</div>


To on już tego <div id="dolstrony"></div> nie wyświetla gdy się błędnie wypełni ten formularz tylko pojawia się komunikat "Nie udało się wysłać wiadomości" z uciętą resztą strony.

A jak niezrozumiale napisałem to po 16 wyśle na żywo.
Fifi209
Cytat(threat @ 20.07.2009, 12:38:07 ) *
mam coś takiego:

CODE
<div id="bla">
.
.
.
.
</div>

/* Później ten formularz

<div id="formularz">
<?php

.
.
?>

/* No i dalej są divy z zawartością strony

<div id="dolstrony">
.
.
</div>


To on już tego <div id="dolstrony"></div> nie wyświetla gdy się błędnie wypełni ten formularz tylko pojawia się komunikat "Nie udało się wysłać wiadomości" z uciętą resztą strony.

A jak niezrozumiale napisałem to po 16 wyśle na żywo.


die('Nie udało się wysłać wiadomości');

Zatrzymuje dalsze wykonywanie kodu.
threat
ok ja to rozumiem, że on zatrzymuje dalsze wykonywanie kodu ale da się tak zrobić aby on był ograniczony tylko do diva w którym się znajduje a nie psuł strony?
Fifi209
Cytat(threat @ 20.07.2009, 12:49:16 ) *
ok ja to rozumiem, że on zatrzymuje dalsze wykonywanie kodu ale da się tak zrobić aby on był ograniczony tylko do diva w którym się znajduje a nie psuł strony?


Nie. ;d Bo parsujesz cały plik. A to że jest w divie nie ma najmniejszego znaczenia dla parsera winksmiley.jpg
erix
Poczytaj o wyjątkach.
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.