We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

getallheaders()


Graal
16-10-2006, 21:53
ok dziękuję bardzo za odpowiedź. Dobrze że jest jakaś szansa na poprawienie tego.

mariano
16-10-2006, 10:10
getallheaders() dziala tylko z Apachem i jedynie przy uzyciu mod_php. Na serwerach OVH uzywamy CGI, wiec ta funkcja jest niedostepna.

Niestety, masz do czynienia z dosyc kiepskim kodem PHP. Autor niepotrzebnie uzywa getallheaders() "wycinajac" w ten sposob uzytkownikow IIS i CGI. To samo mozna osiagnac za pomoca zmiennych "superglobalnych", np. zamiast

Kod:
        $strHost = getallheaders();
        if (!isset($strHost['Referer']))
mozna dac:

Kod:
if (!isset($_SERVER['HTTP_REFERER']))
Rozumiem, ze ten fragment kodu ma stanowic jakies zabezpieczenie przed phishingiem. Jednak poleganie w tym miejscu na naglowkach "Referer" i "Host" (zamiast zmiennej $_SUPER['REMOTE_HOST']!!) to czyste szalenstwo.

Masz trzy rozwiazania: mozesz poprosic autora o poprawienie kodu, mozesz zrobic to sam albo mozesz po prostu wyciac ten kawalek kodu (linie 52-62), bo w praktyce nie zabezpiecza on przed niczym.

Graal
13-10-2006, 18:12
Witam
czy na serwerze działa funkcja getallheaders() ?

mam taki problem
Fatal error: Call to undefined function getallheaders() in /home/g/r/a/graal/www/class/quests_class.php on line 52

część kodu z linią 52

* Class constructor - start quest and show first text, check for phishing
*/
function Quests($location, $number, $action)
{
global $db;
global $smarty;
global $player;

linia 52 $strHost = getallheaders();
if (!isset($strHost['Referer']))
{
error(ERROR);
}