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

PHP - przestarzała funkcja eregi

Zaczęty przez r3pilc3, 24 Lipiec, 2012, 21:57:00

Poprzedni wątek - Następny wątek

r3pilc3

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?

Nie wiesz jakiego smartfona wybrać? Zobacz - smartfonki.pl
Szukasz stacji pogodowej, termometru? Zobacz - stacje-pogody.pl


r3pilc3

#2
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  :)

r3pilc3

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

Nie wiesz jaką hulajnogę elektryczną kupić? Zobacz - nahulajnogi.pl
Szukasz samochodu elektrycznego? Zobacz - zeroauta.pl