Serwis wykorzystuje pliki cookies. Korzystając z forum wyrażasz zgodę na używanie cookies. Więcej informacji w regulaminie. OK (wyłącz komunikat)

Autor Wątek: PHP - przestarzała funkcja eregi  (Przeczytany 7178 razy)

Offline r3pilc3

  • Nowicjusz
  • *
  • Wiadomości: 3
PHP - przestarzała funkcja eregi
« dnia: 24 Lipiec, 2012, 21:57:00 »
Mam stronę działającą na zasadzie frameworka. Wiele plików.php z elementami javascript.
W XAMPP 1.7.1 (PHP 5.2.8 utworzyłem bazę danych powprowadzałem dane. Wyświetlam stronę localhost/nazwastrony i wszystko działa ;]
Strona jest OK!

Pragnę tą stronę mieć w XAMPP 1.7.7, który posiada wersję PHP 5.3.8.
W tym rzecz, że nowsza wersja PHP w XAMPP 1.7.7 napotyka błędy gdy próbuje wyświetlić stronę administratora.
Strona główna nie zawiera błędów. natomiast strona logowania administratora napotyka błędy. Oto strona dla wzrokowców: (zwróćcie uwagę, że w panelu logowania, obrazek się nie wyświetla)

http://i49.tinypic.com/24m8io8.jpg

Z jednym błędem, który się wyświetlał sobie poradziłem.
Funkcja sesion_unregister(), która zgodnie z nowymi wymogami jest 'zła' poprawiłem ją w sposób taki, że:

    session_unregister($key);
    zastąpiłem:
    $_SESSION[$key]=$GLOBALS[$key];


i już się nie wyświetla ten błąd. Tak, więc został mi jeden błąd.


"Teraz moja prośba o pomoc"
Wyświetla mi się jeszcze 1 błąd (6x pisze to samo)

Deprecated: Function eregi() is deprecated in (ŚcieżkaPliku\admin.php) on line 242

Komunikat ten oznacza po prostu iż funkcja eregi z której wtedy korzystałem została zdeprecjonowana i należy ją zastąpić nowszym odpowiednikiem.
Myslę, że tym odpowiednikiem jest preg_match()

Więc pokażę Wam część kodu związaną z funkcją eregi

    foreach($menus as $option){

    if($option['activeon'])
    foreach($option['activeon'] as $activeon){
    if(eregi($action, $activeon)) {
    $option['active']=true;
    } }



Na co i w jaki sposób mam zastąpić eregi?
« Ostatnia zmiana: 24 Lipiec, 2012, 22:02:18 wysłana przez r3pilc3 »

WMsoft

PHP - przestarzała funkcja eregi
« dnia: 24 Lipiec, 2012, 21:57:00 »
Nie wiesz jakiego smartfona wybrać? Zobacz - smartfonki.pl
Szukasz stacji pogodowej, termometru? Zobacz - stacje-pogody.pl

Offline Aztek

  • Administrator
  • *****
  • Wiadomości: 440
Odp: PHP - przestarzała funkcja eregi
« Odpowiedź #1 dnia: 24 Lipiec, 2012, 22:07:59 »

Offline r3pilc3

  • Nowicjusz
  • *
  • Wiadomości: 3
Odp: PHP - przestarzała funkcja eregi
« Odpowiedź #2 dnia: 24 Lipiec, 2012, 23:11:48 »
W XAMPP 1.7.1 strona wyświetlał mi się prawidłowo.
Teraz mam XAMPP1.7.7 (PHP5.3.8)..
..i wyświetla mi się komunikat, że funkcja eregi jest przestarzała. Więc zamieniłem ją:

if(eregi($action, $activeon))

na:

     if(preg_match("/{$action}/i", $activeon))


Zamieniłem eregi na preg_match i powinno być wszystko ok. Niestety w panelu logowania nie wyświetla się obrazek.
Myślę, że powinien skoro zrobiłem zamianę eregi na preg_match zgodnie z wymogami.

-Jak włączę pełne raportowanie błędów, to nie wyświetla się żaden błąd!

http://i50.tinypic.com/20tl3xj.png

Co może być nie tak? Jakieś pomysły  :)
« Ostatnia zmiana: 26 Lipiec, 2012, 12:30:13 wysłana przez r3pilc3 »

Offline r3pilc3

  • Nowicjusz
  • *
  • Wiadomości: 3
Odp: PHP - przestarzała funkcja eregi
« Odpowiedź #3 dnia: 29 Lipiec, 2012, 11:28:39 »
Witam.
Problem rozwiązany.
Błąd był w pliku, który generował obraz oraz należało ten plik zapisać w koowaniu ANSI a miałem kodowanie UTF-8.
Temat zamykam.
Pozdrawiam