| Autor | Zpráva | ||
|---|---|---|---|
| czechiaa Profil |
#1 · Zasláno: 26. 9. 2013, 20:44:10
Ahojte všichni z diskuse JPW,
mám problém se stránkami a to takovej, že na ic.cz pokud jsem měl domena.ic.cz/?hodnota=x (místo x bylo číslo od nuly do dvou) a ve stránce kód: <? if($hodnota == 0)
{echo"data 0"}
else if($hodnota == 1)
{echo "data 1"}
else
{echo "data 2"}
? >Předem děkuji za odpověď |
||
| Someone Profil |
#2 · Zasláno: 26. 9. 2013, 20:47:27
Na novém hostingu je pravděpodobně vypnuté register_globals (což je imho i dobře). Přistupuj k hodnotám pomocí globálního pole $_GET .
Tzn.: <?php
if($_GET['hodnota'] == 0) {/* atd... */}
?> |
||
| Taps Profil |
#3 · Zasláno: 26. 9. 2013, 20:48:32
|
||
| czechiaa Profil |
Someone: provedl jsem to, co jsi mi poradil, ale nyní je prostě "bílá stránka". Zde přikládám přímý odkaz na obrázek. Pokud mám stránku bez toho <? php if ($_GET....... ?>, tak stránka funguje vpořádku, ale s tím kódem se děje to, co je v obrázku.
Taps: několikrát jsem to opravdu prošel, vyzkoušel vše a nic nezabralo. |
||
| lorin Profil |
#5 · Zasláno: 26. 9. 2013, 21:22:17
Zkus:
<?php var_dump($_GET["hodnota"]); ?> Tím zjistíš, co proměnná obsahuje, jakého je typu atd. Mimochodem za příkazem echo by měl následovat středník: <?php echo $promenna; ?> |
||
| czechiaa Profil |
#6 · Zasláno: 26. 9. 2013, 21:52:21
lorin: po tom var_dump mi to vypíše třeba string(1) "1" (když hodnota=1), atp.
Středníky jsem doplnil a PHP by hlásilo, že mu to vadí, ale žádná reakce, opět bílá obrazovka.. Má tahle situace vůbec řešení? Jinak do .htaccess jsem napsal php_flag register_globals on |
||
| Monkeys Profil * |
#7 · Zasláno: 26. 9. 2013, 22:53:38
czechiaa:
pridaj si do stranky error_reporting(E_ALL);
ini_get('display_errors');vypise to chyby ktore su inak skovane M. |
||
| Tori Profil |
Nemělo by to vypadat spíš takhle?
if ($hodnota == 0)
{ echo "data 0"; }
elseif ($hodnota == 1) // bez mezery
{ echo "data 1"; }
else
{ echo "data 2"; } |
||
| czechiaa Profil |
Monkeys: pokud to tam přidám a zároveň přidám to, z #1 postu, tak je opět bílá stránka. Kód jsem několikrát prošel, je to úplně jedinej php kód, co v něm je, samozřejmě je stránka zakončena *.php . Kde je tedy problém?
Tori: nene, pomohlo to, stránka již neni "bílá", ale ať změním hodnotu na cokoliv, tak stále to vypisuje "data 0" (ve stránce). EDIT: Pokud dám kód if ($_GET['hodnota'] == 0)
{ echo "data 0"; }
elseif ($_GET['hodnota'] == 1) // bez mezery
{ echo "data 1"; }
else
{ echo "data 2"; } |
||
| weroro Profil |
Pokiaľ nie je GET definovaný, tak je
undefined, čo sa v podmienke považuje za false a false == 0
Buď testuj aj či je GET naplnený hodnotou if (!empty($_GET['hodnota']) && $_GET['hodnota'] == 0)
{ echo "data 0"; }
elseif ($_GET['hodnota'] == 1) // bez mezery
{ echo "data 1"; }
else
{ echo "data 2"; }$hodnota = (!empty($_GET['hodnota']) ? $_GET['hodnota'] : 2;
if ($hodnota == 0)
{ echo "data 0"; }
elseif ($hodnota == 1) // bez mezery
{ echo "data 1"; }
else
{ echo "data 2"; } |
||
| czechiaa Profil |
weroro: To jsem nevěděl, to si zamapatuju ;-)
tak jsem zkusil ten první kód, co jsi dal, ale další chybka -při domena.cz --> data 2, domena.cz/?hodnota=0 --> data 2, domena.cz/?hodnota=1 --> data 1, domena.cz/?hodnota=2 --> data 2. Takže nyní je problém s hodnotou 0. Zkusil jsem využít proměnou, ale opět "bílá stránka". Tímto způsobem to nepůjde :-/ EDIT: Tak jsem našel řešení - Nejspíše se PHPčku nelíbilo domena.cz/?hodnota=[b]0/b], asi s s tím měl problém, protože se jednalo o nulu, takže jsem dal jiné číslice a funguje to správně. Opravdu všem děkuji za snahu pomoci, tímto je můj problém vyřešen a přeji krásný zbytek večera ;-) |
||
|
Časová prodleva: 1 měsíc
|
|||
| Tori Profil |
#12 · Zasláno: 9. 11. 2013, 00:02:10
Ad [#9]: Chyba je v operátoru, mělo tu být porovnání identity
$_GET['hodnota'] === 0. Neexistující hodnota parametru v GET do PHP přijde jako prázdný řetězec, který se při volném porovnání s nulou přetypuje na číslo, tedy nulu.
|
||
|
Časová prodleva: 13 let
|
|||
0