WMsoft

Tworzenie stron www - forum dla webmasterów => PHP i MySQL => Wątek zaczęty przez: r3pilc3 w 24 Lipiec, 2012, 21:57:00

Tytuł: PHP - przestarzała funkcja eregi
Wiadomość wysłana przez: r3pilc3 w 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?
Tytuł: Odp: PHP - przestarzała funkcja eregi
Wiadomość wysłana przez: Aztek w 24 Lipiec, 2012, 22:07:59
Na co i w jaki sposób mam zastąpić eregi?

http://wmsoft.pl/index.php?topic=303.msg888#msg888
Tytuł: Odp: PHP - przestarzała funkcja eregi
Wiadomość wysłana przez: r3pilc3 w 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  :)
Tytuł: Odp: PHP - przestarzała funkcja eregi
Wiadomość wysłana przez: r3pilc3 w 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