Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]błąd wyskakuje z powodu warunków [if]
Forum PHP.pl > Forum > Przedszkole
Majzel
Witam mam taki kod:
  1. <?php
  2. if (empty($_POST['nick']) && empty($_POST['email']) && empty($_POST['text'])
  3. echo 'wypelnij dane';
  4. if (ereg('^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$', $_POST['email'])
  5. echo 'zly email';
  6. ?>



i wyskakuje:
Parse error: syntax error, unexpected T_ECHO in
wiem że napewno coś b.prostego ale nie wiem już dlaczego...
i powiedzcie jeszcze mi dlaczego można pisać albo po if () klamry: {} albo od razu kod?
pzdr.
k_@_m_i_l
Poprawny kod :
  1. <?php
  2. if (empty($_POST['nick']) && empty($_POST['email']) && empty($_POST['text']))
  3. echo 'wypelnij dane';
  4. if (ereg('^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+ , $_POST['email']))
  5. echo 'zly email;
  6.  
  7. ?>


Jak dajesz klamry {} po if() to w wypadku spełnienia/bądź nie spełnienia warunku zostaną wykonane wszystkie instrukcje między klamrami.Jak ich nie dasz to zostanie wykonana tylko jedna instrukcja w wypadku spełnienia/niespełnienia warunku.
piotrooo89
na pierwszy rzut oka to od razu masz za mało nawiasów w if'ie:

  1. <?php
  2. if ( (empty($_POST['nick'])) && (empty($_POST['email'])) && (empty($_POST['text'])) )
  3. ?>


a ja bym polecał Ci walidacje maila zrobić tak:
  1. <?php
  2. (eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST['email']))
  3. ?>


a odnośnie if'ów to jesli jest jedno polecenie po if'ie można pominąć klamry jak jest więcej już nie. ja mimo nawet jednego polecenia zawsze daje klamry ( {} )
nexis
Cytat(Majzel @ 21.06.2008, 19:02:58 ) *
i powiedzcie jeszcze mi dlaczego można pisać albo po if () klamry: {} albo od razu kod?


Klamry można pominąć tylko i wyłącznie w przypadku kiedy po if lub else występuje jedna instrukcja:

  1. <?php
  2. if (true) echo 'prawda';
  3. else echo 'fałsz';
  4. ?>
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.