Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z php+xhtml
Forum PHP.pl > Forum > Po stronie przeglądarki
tortusz
Witam
Ja z php nie teges, a mam taki skrypt do wysyłania formularza:

Kod
<div>
<?php
if ((!$tytul) or (!$kto) && (!$mail) && (!$tresc))  {
    echo "<p>Wypeł‚nij wszystkie pola. Dzięki :-)</p>";
    echo "<p></p>";
    echo "<a href='wiadomosci.php' onclick='self.history.back();'><p>Wstecz</p></a>";
    exit;
    }
$message="tytuł: $tytul\n\n"."kto: $kto\n\n"."mail: $mail\n\n"."treść: $tresc\n\n";
    mail("biuro@generacja-t.org","Wiadomość od twardziela","$message","From:$kto $mail\r\nReply-to:$mail");
    echo "<h2>Dzięki :-) Formularz wysłany z adresu: $mail</h2>";
    echo "<p></p>";
    echo $text;
?>
</div>
<p>Przy exit; tego tekstu nie widać</p>


I wszystko ok. Niestety wyjście z warunku przez exit; sprawia o dziwo zatrzymanie wyświetlania paragrafu pod spodem. Nie wiem jak to możliwe, ale tak jest :(

Dowód: źle
Dla porównania: dobrze

Dzięki za pomoc
dr_bonzo
1. oddziel warstwe biznsowa od prezentacji: wyslylaj maila przed wyswietlaniem htmla i na podstawie tego czy sie udalo czy nie wyswietl stosowny komunikat
2.
Cytat
Niestety wyjście z warunku przez exit;...
exit() konczy dzialanie SKRYPTU nie warunku!!!
Wiec nic dziwnego ze nic wiecej sie nie wyswietla.
tortusz
ok, dzięki za wyjaśnienie. Dlaczego zatem wtrąca się do html-a? Widziałeś różnicę w 2 linkach? Kopie mi resztę divów. Kiedy wpowadzi się w formularzu wszystkie dane, to wyświetla ok. Możesz pomóc co zmienić
Dzieki smile.gif
dr_bonzo
Ach: blad wyswietlasz gdy nie podano danych w formyularzu, a nie gdy mail sie nie wyslal -- moja pomylka. Ale to nie zmienia przyczyny bledu

exit przerywa wyswietlanie dalszego htmla!
Po prostu go usun.

  1. <?php
  2. if ( (!$tytul) .... i reszta )
  3. {
  4.  // uzupelnij pola...
  5. }
  6. else
  7. {
  8. // tutaj wysyloaj maila
  9. }
  10. ?>


i exit niepotrzebny.

Powinienes sprawdzac tez czy mail zostal wyslany
tortusz
Niestety nie działa jak trzeba. Wyrzucenie exit() pomogło na layout ale skrypt nie wykonuje się jak należy.
Czy wypełnię wszystkie czy nie to przyjmuje wysyłkę sad.gif W przypadku pustego pola powinien ostrzec. Błądzę w mgle...
dr_bonzo
Zly warunek:

if ((!$tytul) or (!$kto) && (!$mail) && (!$tresc))

wszedzie powinien byc OR (||) czyli: gdy ktorekolwiek z pol jest puste to.

Cytat
Czy wypełnię wszystkie czy nie to przyjmuje

Teraz jest: gdy nie wypelnisz tytulu I ktoregos z pozostalych pol formularz jest akceptowany.
tortusz
Dzięki, działa smile.gif Jestem twoim dłużnikiem biggrin.gif
dr_bonzo
Zaraz ci wysle numer konta tongue.gif biggrin.gif
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.