Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> prawidłowa poprawa funkcji eregi na preg_match - mimo wszystko nie wyświetla się obrazek, przestarzała funkcja eregi poprawiona zgodnie z wymogami a i tak jest
r3pilc3
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 22.07.2012

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


Witam.
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))
lub
if(preg_match('/$action/i', $activeon))

..tak i tak jest OK (poprawcie mnie jak źle zmieniłem)

Zamieniłem eregi na preg_match i powinno być wszystko ok. Niestety w panelu logowania nie wyświetla się obrazek.
Myslę, że powinien skoro zrobiłem zamnianę 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 smile.gif

Ten post edytował r3pilc3 25.07.2012, 17:51:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
toffiak
post
Post #2





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Kod generowany jest prawdopodobnie przez skrypt, więc potrzebny jest kod tego skryptu, proszę sprawdzić także logi dla xamppa. Logi są w katalogu \xampp\apache\logs\error.log


--------------------
Go to the top of the page
+Quote Post
irmidjusz
post
Post #3





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


Cytat(r3pilc3 @ 25.07.2012, 18:43:05 ) *
if(eregi($action, $activeon))
na:
if(preg_match("/".$action."/i", $activeon))
lub
if(preg_match('/$action/i', $activeon))


Akurat jeśli użyjesz tego zapisu:
if(preg_match('/$action/i', $activeon))
to nie zadziała (żeby działało, musisz zapisać warunek jako "/{$action}/i" a nie '/$action/i').

Masz jakiś bardzo pogmatwany ten swój kod (wcześniej już o to pytałeś w innym temacie). Czy mógłbyś tu wrzucić cały kod (ten, który nie działa) oraz koniecznie rzeczywiste wartości tych parametrów $action i $actionon (zrzuć je var_dumpem i przeklej). Co znajduje się w $action? Czy nie możesz porównać tych stringów bez użycia wyrażeń regularnych?

Ten post edytował irmidjusz 25.07.2012, 22:13:39


--------------------
there is much to be learned
Go to the top of the page
+Quote Post
erix
post
Post #4





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




Cytat
to nie zadziała (żeby działało, musisz zapisać warunek jako "/{$action}/i" a nie '/$action/i').

Jasne... string i wtedy odpowiadaj.

Wyłącz wysyłanie nagłówka obrazkowego, otwórz CAPTCHA w przeglądarce i wtedy powinno wypluć błąd.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
irmidjusz
post
Post #5





Grupa: Zarejestrowani
Postów: 279
Pomógł: 60
Dołączył: 25.02.2012

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


I tylko tyle zmieniłeś w tym kodzie, że zamiast ergi jest preg_match w tym ifie - i nie ma obrazka? Żadnych błędów PHP nie pluje?

A jeśli użyjesz takiego sprawdzenia:

if(stripos($activeon, $action) !== false)

zamiast preg_match, to co, nadal nie ma obrazka?

Tak w ogóle, to mógłbyś jeszcze podać wartość tej zmiennej $action w momencie sprawdzania, gdy nie ma obrazka. Ale generalnie to dziwne wszystko.

Jesteś pewien, że to z powodu tego preg_match obrazek się nie wyświetla? Problem może być zupełnie gdzie indziej. Jesteś pewien, że teraz jak zmienisz w swoim kodzie preg_match na eregi, to wyświetla captche?



--------------------
there is much to be learned
Go to the top of the page
+Quote Post
r3pilc3
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 22.07.2012

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


Cześć. Usunołem swoje posty poniważ rozwiązałem swój problem.
Błędów było 3.
Zamienić z nowymi wymogami:

1) session_unregister($key);
zastąpić:
$_SESSION[$key]=$GLOBALS[$key];

2)if(eregi($action, $activeon))
zastąpić:
if(preg_match("/{$action}/i", $activeon))
________________________________________
Tyle mi podpowiedzieliście... Resztę rozwiązałem na innym forum.
Błąd tkwil w pliku, który generóje obraz.
U mnie na Windows7 w XAMPP1.7.7 nie wyskakiwały błęy.
Błęy na innym forum wykrył kolega, który sprawdził zawartość pliku w swoim Apach na Linux.
Wystarczyło w nim zamienić:

[HTTP_USER_AGENT]
zastąpić:
['HTTP_USER_AGENT']

oraz otworzyć plik w notepad++ i zapisać plik kodowaniem ANSI (a miałem UTF-8)

Wynik dla zainteresowanych:
http://i45.tinypic.com/287jl8m.png
ps. Te błędy co się wyświetlają - ponieważ zainstalowałem XAMPP w najnowszej wersji 1.8.0, który posiada nowszą wersję PHP 5.4.4 i mam błędy, które widać. Ale to w nowym temacie poproszę o pomoc.

Dziękuję zaintereowanym moim tematem za zaangarzowanie..
Irmidiuszowi dałem punkt -jako pomoc w rozwiązaniu tematu ponieważ on podał prawidłową poprawę funkcji erefii na preg_match.
Na innym forum nikt nie był w stanie mi pomóc z tą funkcją.
Pozdrawiam.
Temat zamknięty.

Ten post edytował r3pilc3 29.07.2012, 10:17:37
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: 21.08.2025 - 18:32