Header

To: Mira (admin)

Uz jsem tady nekdy psal, ze kdyz se pustila nova verze PHP, tak mi prestala fungovat fce Header... Nakonec jsem to vyresil, ze jsem ji proste vynechal, ale ted ten problem mam znovu, ale uz se mi to nechce zase predelavat... Tak bych se chtel zeptat, kde je chyba. Jedna se o script na http://server.wz.cz/bbeta/login/index.php

Diky Alex Hackman
Co s tím? V prohlížeči se to zobrazuje ok - žádná chyba. Je tam přihlašovací formulář no a bez jména a hesla se dál nedostanu.

Tomík.
Tedy mě doposovaď fungujou všechny hlavičky;).
To jo, ale kdyz tam zadam dobre jmeno a heslo, tak mi to vyhodi stranka nenalezena... A chybu v adrese nemam, pac mi to na localu funguje a nez sem nahral novou verzi, tak to taky slapalo... :(
BTW: je mozno zadat n/p: x/x
kdyby nefungovalo posilani hlavicek, tak by jsi videl ty problemy... chybu hledje nekde jinde.

BTW: me ten tvuj form po logovani x/x vraci Access denied!

pokud ti to vyhodi stranka nenalezena, tak to neni chyba v hlavickach, ale nejspis v tom, ze header naopak byl odeslan a soubor na ktery smerujes neexistuje... :-)

m.s.
Ten soubor tam je na 100%, kdyz to fungovalo... Login: x Password: x musi fungovat...

BTW: Pise to: stranku nelze zobrazit....
a co ti tu chybu pise - muzes ji presneji urcit? nemas treba zapnute ty IE hlasky - z toho se moc zjistit neda. nejlepsi by bylo zjistit jakou hlavicku ti vraci server...

muzes nekde dat ten kod ke shlednuti jako link (bacha at tam nemas nejaky 'zneuzitelny' citlivy veci) :-)

m.s.
<?
include "../connect.php";

if ((!$login) || (!$password)) {
?>


<HEAD>
<link href="../company.css" rel="stylesheet" type="text/css">

<STYLE TYPE="text/css">
FIELDSET { padding: 8px; }
</STYLE>

</HEAD>

<body background="../pictures/mainbg.gif">

<center>
<table height="100%">
<td>


<FORM ACTION="index.php" METHOD="post">
<FIELDSET>
<LEGEND><font class=large>Login</font></LEGEND>
<TABLE>

<TR><TD><font class=medium>Login:</font></TD>
<TD><input type=text name=login size=20 maxlength=20></TD></TR>

<TR><TD><font class=medium>Password:</font></TD>
<TD><input type=password name=password size=20 maxlength=12></TD></TR>

<TR><TD><input type=submit value=Login></TD></TR>

</TABLE>
</FIELDSET>
</FORM>
</TABLE>

</BODY>


<?
} else {

...

//kdyz je spravny heslo:

...

Header("Location: logon.php");
} else {
//kdyz je spatny heslo:
echo " <b> Access denied! </B> ";
MySQL_Close($connect);
}
}
?>
nevim zda ti to pomuze, ale podle normy by mela byt adresa v location urcena jako absolutni. zkus to opravit (treba to blbne s nejakou proxy po ceste...)

Header("Location: http://server.wz.cz/bbeta/login/logon.php");

m.s.
Bohuzel, porad to neslape...
no je to oklestene, takze nevim co presne jeste dela kod namiste tecek (predpokladam, ze jen zkusi najit zaznam v db - spis jde o ty if a else, jestli nejsou nejak zajimave promotane)...
jinak za presmerovani by jsi mel dat jeste exit, aby skript opravdu skoncil (mohl by ti vesele pokracovat dal, i kdyz tady neni uz kde) - ale to s timto problemem asi primo nesouvisi.

m.s.
Presne, misto tecek je jen hledani v db...
Funkce header() muze prestat "fungovat" pokud pred ni dojde k odeslani textu a tim i hlavicek ... jsi si jisty, ze pred jejim zavolanim se nikde nevyskytne fukce echo(), jakykoli vystup (trebas enter nebo prazdna mezera) mimo tagy <? ?> ... a nebo i PHP chyba nebo varovani? (to taky vypisuje hlasky) ... mozna to tim neni, ale ja jsem se s timhle vyvstekal hodne :)))

Radek
To by muselo hodit chybu.

1. možnost
Není v těch teček nějaká funcke čí příkaz pro ukončení skriptu: Exit, Die() ?

2. možnost
Co je v souboru logon.php?
Když dám přímou adresu: http://server.wz.cz/bbeta/login/logon.php (aspoň jsem to tak vyčet), tak to právě vyhodí "stránka nenalezena".


Tomík.
Nevim, nic sem s tim nedelal a najednou to uz jde....
Hmm, super, fakt to nechapu!!! Uz to zase nejde ;(!
Zkousel jsem na to dokonce i svyho novyho HTTP klienta ... poslal jsem mu toto ...

GET /bbeta/login/index.php?submit=login&password=x&login=x HTTP/1.1
Host: server.wz.cz

a jako odpoved neprislo nic ... absolutne nic ... nejspis nekde neco upadne a na 99% bych tipoval, ze mas nekde chybu ty v kodu ... bez moznosti zasahnout do zdrojaku se da tkhle asi tezko neco zjistit, ale zkus si tam vkladat nejaky kontrolni echo() hlasky a snad neco vypozorujes :)

Radek
chybu zkus hledat v kodu skriptu http://server.wz.cz/bbeta/login/logon.php (jak uz naznacil tomik).

presmerovani probiha uspesne (takze hlavicka je odeslana) - problem nastane az s pozadavkem na ten skript logon.php

m.s.
Ja kdyz jsem to zkousel vcera vecer, tak mi ten redirec NEprisel ...

<FORM ACTION="index.php" METHOD="post">

... predaval jsem ty parametry GET a ne POST, ale pocitam, ze ten skript to nepozna :) ... a opravdu mi neprislo NIC ... viz ten minuly prispevek ... pokud jsem zadaval chybne jmeno a heslo, tak se mi "korektne" vtacela hlaska Access Denied.

Ale splest jsem se samozrejme mohl :)

Radek
kdyz jsem to zkousel prvne, po zalogovani mi v prohlizeci vyskocila adresa http://server.wz.cz/bbeta/login/logon.php s chybovou hlaskou 64 - Host not available (to hlasi proxy server) a to same ted uz dela adresa http://server.wz.cz/bbeta/login/index.php.
je to cele nejake divne, bude tam nejaka chyba v kodu a vrtat se v tom bez znalosti celeho kodu (jak uz rekl Radek) je to sarlatanstvi.

m.s.
Ja tomu fakt nerozumim, dela si to proste co chce... :(
Takže, aby to bylo jasno. Soubor logon.php existuje (to by se musela zobrazit stránka webzdarma), ale výsledek neobsahuje žádná data.

Takže se podívej do tohoto souboru a zkontroluj si hlavně začátek kódu zdá tam není něco, co ti zastavilo skript.
Malý tip: zkus na začátek(1. řádek) souboru logon.php přidat PHP řádek <? echo "To by se mělo objevit"; ?> a zkus co to udělá.


Jinak osvědčena metoda, kterou používám, když něco nejde a už nevíš co dál, tak ten soubor napiš úplně od začátku. Je to lepší než pořád hledat chybu.

Tomík.