zadaní proměnné pro php pomocí otazníku v url

Vyřešeno587 zhlédnutíWebhostingphp7.4
0

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ě?

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
JŠ255861 Vybral nejlepší odpověď 23. 12. 2021
0

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'];

Role: Zákazník
JŠ255861 Vybral nejlepší odpověď 23. 12. 2021
0

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.

Role: Zákazník
MB313456 Změnil status na publikováno 9. 10. 2021
0

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ě.

Role: Zákazník
MB313456 Změnil status na publikováno 9. 10. 2021
0

Protože proměnnou y nikde nenačítáte.

$y = $_GET[‚y‘];

Role: Zákazník
TJ285257 Změnil status na publikováno 9. 10. 2021
0

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í.

Role: Zákazník
MR154880 publikoval nový komentář 12. 10. 2021

Používaj $_REQUEST[„y“] …to berie premenné poslané cez GET alebo POST