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

129 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
Odpověděl na otázku
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
Změnil status na publikováno
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
Změnil status na publikováno
0

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

$y = $_GET[‚y‘];

Role: Zákazník
Změnil status na publikováno
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
Změnil status na publikováno
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
publikoval nový komentář

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