zadaní proměnné pro php pomocí otazníku v url
Když zadám proměnnou pomocí adresy, např. zkus.php?y=2, tak mi to hodnotu y nepřiřadí, jak bych čekal. Co je špatně?
5 Answers
Ještě přidám jednu vysvětlující odpověd.
Kdysy dávno cca.10 let zpět bylo možné zapnout pro php server direktivu register_global.
To umožnilo automatickou deklaraci proměnné z URL do globální proměnné v PHP.
Toto chování je velice nebezpečné a proto bylo z PHP odstraněno.
Ve verzi PHP 4.0 proto vznikly tzv. superglobální proměnné $_GET, $_POST a register_global bylo vypnuto.
Od verze 5.4 už není možné register_global zapnout a je potřeba používat superglobání proměnné.
Výsledkem je tedy nutnost použít $y = $_GET['y'];
Díky za odpověď. Hledal jsem to po různých manuálech, kde se co u PHP 7 změnilo, ale toto tam nebylo a teď rozumím, že je to proto, že k tomu došlo už dřív. Beru to jako zesložitění, ale není to tak těžké to vyřešit, už mi to funguje. Díky za vysvětlení.
Když to úplně zjednoduším, tak
soubor zkus.php s obsahem
<?php
$x=2;
echo ‚HODNOTA=‘.$x.’a y=‘.$y;
?>
mi při zadání zkus.php?y=2 vypíše pouze
HODNOTA=2a y=
Očekával bych, že se to bude chovat tak, že to hodntu 5 přiřadí do proměnné $y, jak to normálně funguje tady
http://www.vyskovnice.cz/zkus.php?y=5
Na tomto odesílání proměnných máme založen celej web vyskovnice.cz, který k vám přesouváme, tak bych rád, kdyby to fungovalo stejně.
Jak proměnnou načítáte a co očekáváte?
Přiložení části php kódu zpracování promenné by neškodilo.