Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyświetlanie strony a exit;
Forum PHP.pl > Forum > Przedszkole
Lethys
Mam problem z wyświetlaniem strony kiedy jest warunek z exit;

Strone robie na takiej zasadzie ze includuje jej elementy takie jak header, footer, menu itp. Zebym nie musial w razie zmiany edytowac wszystkich plikow.

Wyglada to tak:

  1. <?php
  2.  
  3. include "header.php";
  4. include "left_menu.php";
  5.  
  6. //kod rejestracji i warunek
  7. ...
  8. if (10 < strlen($_POST['user'])) {
  9. print "<br><center>Za długa nazwa użytkownika!</center><meta http-equiv=\"Refresh\" content=\"1; url=rejestracja.php\">";
  10. }
  11.  
  12. //kolejne includowanie
  13.  
  14. include "right_menu.php";
  15. include "footer.php";
  16.  
  17. ?>


I problem polega na tym ze jak wyskoczy błąd (przez warunek) to nie zostaną zaincludowane ostatnie 2 pliki.


Jak moge rozwiazac to?
Daiquiri
A co oznacza Twój warunek? Jeżeli 10 jest mniejsze niż długość nazwy użytkownika. Na pewno miał taki być? Poza tym, musiałbyś go dać poniżej dołączanych plików, tylko po co taki mechanizm w tym przypadku?
Lethys
Warunek dałem jako przykład a znaczy że tyle że nazwa użytkownika nie może być większa niż 10 znaków.

Jak rozwiązać problem szablonów? Przecież elementy które są po głównej części strony (gdzie jest kod, treść) to zawsze np.footer.php

Jak mam includować footera wcześniej skoro jest on na końcu kod HTML?
Daiquiri
Sprawdź swój warunek. Przecież nie musisz robić od razu exit. Jeżeli warunek nie zostanie spełniony to wszystko co jest w klamrach się nie wykona.
ewaslawek5
Wymaż na końcu exit; Polecenie to zatrzymuje bowiem cały skrypt...
Pawel_W
albo do sprawdzania zrób oddzielną funkcję, która walnie return false, jeżeli wystąpi błąd smile.gif
ewaslawek5
Masz tu gotowca i rmów mi wujo:

  1. if (isset ($_POST['wyslij'])){//isset wyslij
  2.  
  3. echo("<h2>Wyniki rejestracji</h2>");
  4.  
  5. $problem = FALSE;
  6.  
  7. if (strlen($uzytkownik) > 50){
  8. $problem = TRUE;
  9. echo("<p id='uwaga'>Zbyt długa nazwa Loginu. Maksymalnie <b>50</b> znaków.</p>");
  10. }
  11.  
  12. if (!$problem){
  13. //tutaj sa działania jesli nie ma problemu
  14.  
  15.  
  16. }else{
  17. echo("<p>Wróć do poprzedniej strony i spróbuj ponownie.</p>");
  18. }
  19. }
Lethys
Hmm przykladowo przy rejestracji mam kilka warunkow.

np.

//sprawdzanie czy wpisany mail jest w bazie

  1. $test2 = mysql_num_rows(mysql_query("select * from players where email='".$_POST['email']."'"));
  2. if ($test2 > 0) {
  3. print "<br><center>Ktoś już użył takiego adresu email!</center><meta http-equiv=\"Refresh\" content=\"1; url=rejestracja.php\">";
  4. }


I przeciez jak wywale exit na koncu to ktos sie zarejestruje z tym samym mailiem co juz jest w bazie, tak? Czy sie myle?

ewaslawek5
To co ci podałem, jest to gotowe rozwiązanie...

Masz jeszcze raz pokazane gotowe rozwiazanie:

  1. if (isset ($_POST['wyslij'])){//isset wyslij
  2.  
  3. echo("<h2>Wyniki rejestracji</h2>");
  4.  
  5. $problem = FALSE;
  6.  
  7. if (strlen($uzytkownik) > 50){
  8. $problem = TRUE;
  9. echo("<p id='uwaga'>Zbyt długa nazwa Loginu. Maksymalnie <b>50</b> znaków.</p>");
  10. }
  11.  
  12. if (!$problem){
  13. //tu dzialania jesli nie ma problemu
  14.  
  15.  
  16. }else{
  17. echo("<p>Wróć do poprzedniej strony i spróbuj ponownie.</p>");
  18. }
  19. }else{
  20. //tu formularz
  21.  
  22. }
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.