Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dlaczego nie działa fun. empty ?
piotrekk
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 2
Dołączył: 13.11.2006

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




  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. }
Go to the top of the page
+Quote Post
Armstrong
post
Post #3





Grupa: Zarejestrowani
Postów: 200
Pomógł: 40
Dołączył: 26.08.2009
Skąd: Kobiernice

Ostrzeżenie: (0%)
-----


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

Ten post edytował Armstrong 5.01.2010, 14:56:54
Go to the top of the page
+Quote Post
piotrekk
post
Post #4





Grupa: Zarejestrowani
Postów: 123
Pomógł: 2
Dołączył: 13.11.2006

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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ę.
Go to the top of the page
+Quote Post
piotrekk
post
Post #6





Grupa: Zarejestrowani
Postów: 123
Pomógł: 2
Dołączył: 13.11.2006

Ostrzeżenie: (0%)
-----


no widzisz nie slyszalem cholera, widzialem ze ereg zaniechane wlasnie ale nie znalazlem odpowiednika na php net, przy tych propozycjach
Go to the top of the page
+Quote Post
darko
post
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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

Ten post edytował darko 5.01.2010, 18:06:19
Go to the top of the page
+Quote Post
Pawel_W
post
Post #8





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


do autora tematu, odpowiednikiem eregi jest preg_match (IMG:style_emoticons/default/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ś (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
bartg
post
Post #9





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Nospor: nie
  1. return true;

a chyba
  1. return $name;


Ten post edytował bartg 5.01.2010, 22:47:09
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




@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 (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 07:28