Autor Zpráva
Matouš
Profil
Ahoj mám problém s touto hláškou na mém webu: Notice: Undefined index: cast in /www/2/site25942/wwwroot/index.php on line 94

Z php využívám zatím jen skript na otevírání odkazů v daním okně tabulkového layoutu ve tvaru:

<?php
switch($_GET['cast']) {
case '1': include "uvod.php"; break;
case '2': include "9.php"; break;
default: echo "Defaultní­ hodnota"; break;
}
?>

A odkazy v podobě: <a href="index.php?cast=2">.......</a> atd.

Hlášku to vypisuje v hlavním okně, hned nad zobrazeným nápisem "Defaultní­ hodnota".
Prosím o vysvětlení o co jde a o radu, jak se toho zbavit, případně jak tomu předejít.
nightfish
Profil
<?php

if (isSet($_GET['cast'])) $cast = $_GET['case']; else $cast = "nejaka vychozi hodnota";
switch($cast) {
case '1': ...
}
manyiak
Profil *
nazdar,

problem je ftom, ze pokud $_GET['cast'] neni definovano, switch sice funguje bez problemu, ale pri testovani te podminky pouzivas neco, co nezna...

zkus dat na zacatek stranky:

if(!isset($_GET['cast'])) $_GET['cast'] = ""; 
(jestli se nepletu)

...a hlaska by ti mela zmizet... btw. jde o chybu nejnizsi urovne (Notice), ktera neni zavazna (ma pouze informativni charakter, jak uz ze sameho nazvu vyplyva) a vypnout to lze v php.ini v sekci "Error handling and logging", konkretne

error_reporting = E_ALL & ~E_NOTICE
Matouš
Profil
manyiak

Jo funguje bez problemu dik. Ještě tohle - můžeš mi vysvětlit, k čemu přesně slouží $_GET ? A zadalší za dával jsem do scriptu: error_reporting(E_ALL); Ale od tebe jsem pochopil, že tam to asi nemá co dělat, že?
Alphard
Profil
$_GET je pole, kde jsou uložené promněnné z URL
error_reporting(E_ALL); nastavuje zobrazení chyb, pro testování je vhodné chyby IMHO zobrazovat, v ostrém provozu skrývat
Matouš
Profil
Alphard

Dík ale neodpověděl si mi na otázku....kam se to error_reporting(E_ALL); dává? Jestli do kodu, nebo do php.ini nebo může být v obou?

$_GET mi zkus vysvětlit trochu obšírněji, třeba vzhledem k tomu mému skriptu..... Já si pod pojmem pole totiž představím víc hodnot pohromadě a to tady asi být nemůže ne? Je tam vždycky jen jedna konkretní proměnná ne?
DoubleThink
Profil *
$_GET je pole - obsahuje všechny proměnné, poslané metodou GET

soubor.php?promenna1=hodnota1&promenna2=hodnota2&...

$_GET['promenna1'] = hodnota1
$_GET['promenna2'] = hodnota2
...
Matouš
Profil
DoubleThink
Heh dík už to chápu. Mimochodem jsem poctěnej. Máš fakt skvělej web a včechno co si dělal je skvělý. Dokonce sem si zahrál i tu tvou flashruletu (všechno sem prohrál) :)
Toto téma je uzamčeno. Odpověď nelze zaslat.