Autor Zpráva
tn
Profil *
Prosím vás kde může být chyba v následujícím skriptu (skript byl původně složitější, na lokálu mi normálně fungoval, ale když jsem ho zkopíroval na web, tak se to chová jako by se nepředávala hodnota proměnné "zobrazit".
Když zadám do adresního řádku "www.serverxyz.cz\kniha_test.php?zobrazit=1" tak to nejede. Když to testuju na svém lokálním PC přes localhost tak to funguje bez problémů.

<html>
<head>
</head>
<body>
<?
echo "proměnná zobrazit = ".$zobrazit."<br><br>\n";
if ($zobrazit=="1"):
echo "Můžete vložit příspěvek po kliknutí na tlačítko";
echo "<form name=\"form\" method=\"post\" action=\"kniha_test.php\">\n";
echo "<input type=\"submit\" value=\"Přidat příspěvek\">\n";
echo "<input type=\"hidden\" name=\"zobrazit\" value=\"2\">\n";
echo "</form>\n";
endif;
?>
</body>
</html>

Kde dělám chybu ???
Poraďe prosím.
stribny
Profil
Zkus na začátek PHP bloku přidat

$zobrazit = $_POST['zobrazit'];
tiso
Profil
Miesto $zobrazit píš $_GET["zobrazit"]
Naštuduj si superglobálne polia z dokumentácie PHP.

stribrny
...tesne vedľa...
stribny
Profil
tiso: Tos myslel jako tak, ze ses skoro trefil do meho jmena, ze si spatne urcil get misto post nebo ze sem te predbeh? :D jen tak pro zajimavost..
YoSarin
Profil
stribny
tiso
pravdu máte oba - nejlepší by bylo použít $_REQUEST['zobrazit'] ;)
tn totiž ke skriptu přistupoval jak pomocí formuláře, tak přes ?zobrazit=
;)
stribny
Profil
YoSarin: Aha, dik za upozorneni.
tn
Profil *
No, ale jak to že mi to na lokále fungovalo. Vytvořil jsem si pár skriptů a teď je budu muset předělávat. :-(((
tn
Profil *
Jinak díky všem za rady.
YoSarin s REQUESTem to funguje OK.
YoSarin
Profil
tn
Na lokále máš nejspíš v php.ini nastaveno register_globals na ON - na ostrých serverech to bývá vypnuté
Yo'Sarin
tn
Profil *
YoSarin Prosím tě, mohl bych se na tebe případně obrátit ještě s nějakýma dalšíma dotazama ?
tiso
Profil
stribny
Tak, že si sa netrafil, premenná zobrazit sa predáva cez url, takže v poli $_GET
Za skomolenie mena sa ospravedlňujem.

YoSarin
Ja som odpovedal konkrétne na premennú zobrazit, preto ten $_GET, ale nasmeroval som na súvisiacu dokumentáciu.
Pole $_REQUEST sa z bezpečnostných dôvodov nedoporučuje používať, umožňuje totiž podstrčiť $_POST premenné cez parametre v url...
YoSarin
Profil
tiso
$_REQUEST sa z bezpečnostných dôvodov nedoporučuje používať, umožňuje totiž podstrčiť $_POST premenné cez parametre v url
To máš naprostou pravdu, ale on není ani moc problém podstrčit tu proměnnou přes $_POST (pokud není zpracovávající skript nějak spešl ošetřený)
tn
Klidně, ale upozorňuju tě, ža tady najdeš hodně lidí, kteří jsou na pomáhání daleko lepší než já... :-D
Yo'Sarin
stribny
Profil
tiso: O tom prave psal YoSarin, protoze pravdu mame oba. Promenna se ziskava i z formulare metodou POST.
tiso
Profil
stribny
Nie tak celkom - v tom kóde čo tu tn dal ide v podmienke o $_GET premennú, nie $_POST... Po odoslaní formulára nebude nastavená $_GET premenná ale $_POST...
YoSarin
...doteraz som si myslel že sa nedajú podstrčiť z vonku...
stribny
Profil
tiso: To je fakt, nepopírám. Jenže já když přišel na tohle vlákno, tak kouknul na kód a text před ním jsem jen přeletěl, takže jsem to příliš nezkoumal. To je už ale jedno.
YoSarin
Profil
tiso
Záleží co si představuješ pod tím podstrčením - ale možná to půjde přes CURL (nevím, neumím) anebo třeba WebDeveloperToolbar do FF umí editovat HTML kód - prostě připíšeš formulář s metodou post, vyplníš ho a pošleš (pravda - stačí hlídat referera a nejspíš to neprojde) v podstatě je lepší řídit se heslem:
Nic není nemožné, něco je jen těžší.
Yo'Sarin
Toto téma je uzamčeno. Odpověď nelze zaslat.

0