Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dlaczego nie działa fun. empty ?
Forum PHP.pl > Forum > Przedszkole
piotrekk
Witam,
staram się sprawdzić, czy w zmiennych post przesłane są dane za pomocą funkcji empty.
Wywołanie funkcji wygląda tak:
  1. $imie = checkNameSurname($_POST['imie']);
  2. $nazwisko = checkNameSurname($_POST['nazwisko']);


A tak funkcja:

  1. function checkNameSurname($name)
  2. {
  3.  
  4. if(empty($name))
  5. {
  6. $_SESSION['error'] = "Pola imię i nazwisko nie mogą być puste i muszą zawierać tylko litery!";
  7. header("Location: ../rejestracja.php");
  8. }
  9. }


W post na pewno są dane! Nie mam pojęcia czemu nie działa, ponieważ w innych wypadkach wszystko chodzi jak należy.
nospor
  1. function checkNameSurname($name)
  2. {
  3.  
  4. if(empty($name))
  5. {
  6. $_SESSION['error'] = "Pola imię i nazwisko nie mogą być puste i muszą zawierać tylko litery!";
  7. header("Location: ../rejestracja.php");
  8. }
  9. return true;
  10. }
Armstrong
Skoro są dane to w czym problem?

PS: dodaj return $name //Lub jak mod wyżej napisał
Ps2: Po kiego do tego funkcja? Chyba że ja czegoś nie wiem
piotrekk
tak wygląda bo to był kawałek funkcji.

Niestety w dalszym etapie nie chce mi działać funkcja ereg sprawdzająca czy wpisane są tylko litery. Czy wiecie dlaczego ?

Wygląda tak:

  1. function checkNameSurname($name, $connection)
  2. {
  3.  
  4. if(empty($name))
  5. {
  6. $_SESSION['error'] = "Pola imię i nazwisko nie mogą być puste i muszą zawierać tylko litery!";
  7. header("Location: ../rejestracja.php");
  8. }
  9. return $name;
  10. if(trim(strlen($name)) > 50)
  11. {
  12. $_SESSION['error'] = "Wyraz imie i nazwisko nie może być dłuższy niż 50 znaków!";
  13. header("Location: ../rejestracja.php");
  14. }
  15.  
  16. if(!ereg("^[[:alpha:]]$", $name))
  17. {
  18. $_SESSION['error'] = "Pola imię i nazwisko nie mogą być puste i muszą zawierać tylko litery!";
  19. header("Location: ../rejestracja.php");
  20. }
  21. else
  22. {
  23. $input = trim($name);
  24.  
  25. mysql_real_escape_string($input, $connection);
  26.  
  27. return $input;
  28.  
  29. }
  30. }
erix
A o funkcjach filter słyszałeś? Chyba nie. ereg jest zaniechane i zostanie usunięte w PHP6.

O tym, że jak raz prosi się o wyjątki - nie wspomnę.
piotrekk
no widzisz nie slyszalem cholera, widzialem ze ereg zaniechane wlasnie ale nie znalazlem odpowiednika na php net, przy tych propozycjach
darko
E tam, nie znalazłeś odpowiednika (odpowiednika tylko i wyłącznie w kontekście potrzeb autora, właściwie powinno być ekwiwalentu <- bo mnie zaraz tu "zajadą", że ctype_alpha nie jest odpowiednikiem ereg, bo nie jest! ), proszę: http://www.php.net/manual/en/function.ctype-alpha.php
Pawel_W
do autora tematu, odpowiednikiem eregi jest preg_match winksmiley.jpg

słabo szukałeś, bo znalazłbyś na pewno wpisując do googl'a chociażby "wyrażenia regularne php"

co do tej funkcji, to dlaczego dajesz return $name przed jej dalszym ciągiem?
przecież dalej się nie wykona...

i do tego to $_SESSION['error']...
mógłbyś chociaż zrobić return "treść błędu", bo o wyjątkach, o których wspominał ~erix pewnie nie słyszałeś winksmiley.jpg
bartg
Nospor: nie
  1. return true;

a chyba
  1. return $name;
nospor
@bartg zasugerowalem się nazwą funkcji "check". Nazwa jasno wskazuje ze jest sprawdzanie poprawności a nie filtrowanie. No ale ten błąd poprawiono już we wcześniejszych postach winksmiley.jpg
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.