Autor Zpráva
Pavel Dumbrovský
Profil
Zdravím,
zase mi něco nevalí, nechápu to, celý roky to šlo:
<form name=dathang action=\"$PHP_SELF\" method=POST>
  <input type=hidden name='act' value='ok'>
  <input type=submit class=button value=\"$lang[52]\">
  </form>

Na indexu mi to ale už jaksi nefrčí, načtu si proměnnou,
$act=$_REQUEST['act'];

ale výpis je prázdnej.. :(
Nevíte čím by to mohlo být? Přitom přes GET je ta proměnná naplněná, i když oddělám ten řádek s act=request...
Díky.
Enyeus
Profil
Zkus
$act=$_POST['act'];

Změna nejspíš přišla se změnou register globals
Pavel Dumbrovský
Profil
To jsem samozřejmě zkoušel, i s POST je to prázdný..
Jan Tvrdík
Profil
Pavel Dumbrovský:
Ten kód, který jsi uvedl nahoře, je co? Špatně napsané HTML? Špatně napsané PHP? Kus kódu vytržený z echa? $PHP_SELF nahraď proměnnou
$_SERVER['PHP_SELF']
(pravděpodobně důvod, proč ti to přestalo fungovat)
Pavel Dumbrovský
Profil
Ten kód je špatně napsaný html a php vytržený z echa. :D
Zkusil jsem nahradit, ale nepomohlo. Celý to jede na indexu.php , jen se mění $act a podle něho includují další podstránky.
Zkusil jsem tam místo toho php selfu fouknout přímo action='index.php' a s tím to funguje. Nechápu, je to teoreticky to samý. Zřejmě není..
ONdra28
Profil
Teda v PHP moc dlouho nedělám..ale nemělo by být

<form name=dathang action=\" echo $PHP_SELF\" method=POST> ?

když tam je jen proměnná bez echa tak tam svoji hodnotu nevypíše
AM_
Profil
<form action=""> je totéž jako <form action="<?php echo $_SERVER['PHP_SELF']; ?>"> takže to mohlo fungovat i s nedefinovanou proměnnou - nenapsalo se tam nic.
$_POST je podmnožina $_REQUEST, takže tím to taky není.
Zkusil bych ještě vypsat print_r($_REQUEST); zda se odešle vůbec něco. Taky bych si zkusil zobrazit zdroják, třeba tu chybu uvidíš, když zjistíš, jak se to blbě echuje.
Pavel Dumbrovský
Profil
Jak jsem psal, nahrazení PHP_SELFU přímo index.php to vyřešilo. Nerozumím tomu, ale hlavně že to jede, díky za rady.

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: