Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z logowaniem
Forum PHP.pl > Forum > PHP
misiek2592
Witam moze ktos mi tu pomoże, mam problem ze skryptem, podczas logowania na stronie www.ideatown.pl
przykład:
login: demo
hasło: demo
wyskakuje błąd z funkcją eregi

Deprecated: Function eregi() is deprecated in /home/misiekpo/domains/ideatown.pl/public_html/include/functions/main.php on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/misiekpo/domains/ideatown.pl/public_html/include/functions/main.php:325) in /home/misiekpo/domains/ideatown.pl/public_html/login.php on line 78

czy ktoś pomoże rozwiązać problem
redeemer
To nie błąd a informacja, że używasz funkcji eregi, która jest przestarzała i w końcu "wyleci" z PHP. "Błąd" jest wyświetlany i nagłówki nie mogą zostać wysłane. Manual
misiek2592
A jak można naprwaić to?
redeemer
Najlepiej to zastąpić funkcje ereg* funkcjami preg*. Możesz wyłączyć też raportowanie błędów typu E_DEPRECATED za pomocą funkcji którą podlinkowałem w poprzednim poście. Trzecim wyjściem jest skorzystanie z buforowania wyjścia, jednak w tym wypadku na stronie będzie dalej się pojawiać: Deprecated: Function eregi() is deprecated...
misiek2592
Czy byłbyś w stanie pomóc mi z tym problemem ponieważ jestem laikiem jesli chodzi o php i nie chce namieszac w skrypcie.

Czy może to być także wina serwera na którym jest? Wypróbowałem skrypt na innym serwerze lecz tu są inne informacje a błąd wymieniony wyżej nie występuje jak mozna to naprawic lub wyłączyć te info?
redeemer
To nie wina samego serwera, ale różnic w konfiguracji. Wstaw sobie na początku skryptu:
  1. error_reporting(E_ALL ^ E_DEPRECATED);
misiek2592
w jakim pliku? w htaccess czy index?
Korab
W index.
viking
Ale lepiej to popraw bo któregoś dnia dostawca hostingu ci zaktualizuje wersję PHP do takiej, która już nie obsługuje eregi i zostaniesz z niedziałającą stroną. Informacje o błędach nie są po to żeby je ukrywać tylko naprawiać.
misiek2592
Oto funkcja o którą chodzi, jest w tym funkcja eregi i może ktoś mi powie jak ją popraić, widzę ze to problem z weryfikacją email.

  1. function verify_valid_email($emailtocheck)
  2. {
  3. $eregicheck = "^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}\$";
  4. return eregi($eregicheck, $emailtocheck);
  5. }
  6.  
  7. function verify_email_unique($emailtocheck)
  8. {
  9. global $config,$conn;
  10. $query = "select count(*) as total from members where email='".mysql_real_escape_string($emailtocheck)."' limit 1";
  11. $executequery = $conn->execute($query);
  12. $totalemails = $executequery->fields[total];
  13. if ($totalemails >= 1)
  14. {
  15. return false;
  16. }
  17. else
  18. {
  19. return true;
  20. }
  21. }
viking
A mało jest w sieci funkcji do sprawdzania maili opartych na regexpach? Ta i tak jest do niczego bo wykluczasz choćby 6 znakową domenę .travel.
Pierwszy z brzegu wątek: http://stackoverflow.com/questions/201323/...email-addresses
misiek2592
Problem z tym że ja nie wiem jak to zakodować na nowo ponieważ jestem zielony w php.
viking
W takim razie nauczysz się czegoś nowego. Musisz zastąpić eregi -> preg_match. I tyle filozofii. Albo całą funkcję verify_valid_email(). Do tego był ostatnio wątek w przedszkolu.
misiek2592
ok viking w takim razie spróbuje jak to zrobić, jak coś bedzie szło nie tak to będę pisał smile.gif

Próbowałem w każdą strone jak się da zmienić to na preg_match i nie działa niestety, coś źle robie, czy ktoś mógłby zmienić tą formułe na preg_match.


  1. function verify_valid_email($emailtocheck)
  2. {
  3. $eregicheck = "^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}\$";
  4. return eregi($eregicheck, $emailtocheck);
  5. }
redeemer
Może łatwiej Ci będzie użyć funkcji filter_var. Nawet w przykładzie jest walidacja email.
misiek2592
A czy możesz pokazać jak będzie wyglądać ta funkcja po zmianie?
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.