Autor Zpráva
ONdra28
Profil
Ahoj,

Nefungují mi hlavičky resp. normálně zobrazí web a nevyhodí požadované "Forbidden".

$ip = $_SERVER["REMOTE_ADDR"];
   $query = mysql_num_rows(mysql_query("SELECT COUNT(ip) FROM bany WHERE ip='".$ip."' "));
    if($query!=0) {
     Header("HTTP/1.1 403 Forbidden");
     Header("Connection: close");
    }


Posílám je hned na začátku souboru. Proměnná $query vrací hodnotu 1 ...zkoušel jsem si ji vypsat takže to do podmínky vstoupí..prostě jen ty Headers () nejdou.

Nevíte proč ? Díky za odpovědi
Jan Tvrdík
Profil
ONdra28:
Nevíte proč ?
Víme :) Funkce mysql_num_rows si v tomto případě vrátí vždycky jeden řádek, obsahující číslo 1 nebo 0. Zkus použít funkci mysql_result a analyzovat tu hodnotu v tom řádku uvedenou.

EDIT: Takže se ti teď to té podmínky dostane vlastně pokaždé :) Zkus za to poslední volání funkce header přidat exit.
ONdra28
Profil
No tak sem to napsal špatně...zkoušel jsem to té podmínky místo těch Header dát Die("BANNED"), to normálně šlo...ale 403 se mi líbí víc takže hlavičky...ale nejdou.

Ta podmínka je fakt v pořádku.
Nox
Profil
Jan Tvrdík:
Vrací mu to 1 a podmínka je !=0, tzn. toto je sice pravda a rozhodně to musí vyměnit, ale problém to neřeší

ONdra28:
Máš zapnuté vypisování všech hlášek - error_reporting(E_ALL); ? Nevypisuje to náhodou "headers already sent", čili hlavičky už byly odeslány s prvním výstupem?
http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=2111
ONdra28
Profil
Nox:

V 1. postu jsem psal, že je posílám na začátku.
Jan Tvrdík
Profil
IMHO je problém v tom, že samotné poslání hlavičky 403 se nijak neprojeví, pokud nepoužívá např. Live Http Headers nebo FireBug na zobrazení HTTP komunikace. Aby se zobrazil text, tak by ho musel poslat (stačí normálně echo za ty hlavičky).
ONdra28
Profil
Jan Tvrdík:

Dobře, taky je to řešení. Díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: