Autor | Zpráva | ||
---|---|---|---|
pavuk Profil |
#1 · Zasláno: 31. 1. 2011, 10:40:59
Pokouším se měnit dynamicky <title> ve stránce. Používám k tomu konstrukci
<title> <?php if (!isset($_GET['str'])) { $str = "uvod"; } else { $str = $_GET['str']; }; switch($_GET['str']): case 'uvod': echo('Modely - úvod'); break; case 'rada': echo('Modely - modelová řada'); break; case 'zetor': echo('Zetor'); break; case 'case': echo('Case'); break; atd...; endswitch; ?> </title> Problém nastává ve chvíli, kdy zavolám jen index.php bez proměnné ("index.php?str=něco"), skript vypíše na místě <title> chybovou hlášku Undefined index: str in E:\php\martasovo_sbirka\index.php on line 8 Nerozumím tomu, protože podle mojí úvahy pokud proměnná $str chybí pak se podle řádku č.4 rovná "uvod" a tudíž by neměla být nedefinovaná. Kde dělám chybu? |
||
panther Profil |
#2 · Zasláno: 31. 1. 2011, 10:43:07 · Upravil/a: panther
pavuk:
„Kde dělám chybu?“ na ř. 8, píše ti to i chybová hláška. Sice existuje proměnná $str , ale $_GET['str'] na ř. 8 stále neexistuje… proměnnou $str nikde nevyužíváš, přestože sis jí naplnil.
switch($str): |
||
pavuk Profil |
#3 · Zasláno: 31. 1. 2011, 10:57:09 · Upravil/a: pavuk
Vím že chyba byla na řádku č.8, jen jsem nevěděl jaká (viz příspěvek).
Proměnnou $str používám dál v menu a podobně; pokud nechám ve skriptu jen switch ($str):, vypíše skript Use of undefined constant str - assumed 'str' in E:\php\martasovo_sbirka\index.php on line 8 Jak jí tedy definuji? Už jsem z toho až příliš zmaten, pokouším se na to přijít přes různý konstrukce několik hodin a nemyslí mi to (což je zřejmě dostatečně patrné) edit: únava je děsná, už jsem to vyřešil, díky za pomoc a "nákop". Stačilo předřadit řádku 8 $_GET['str'] = $str; |
||
Tori Profil |
#4 · Zasláno: 31. 1. 2011, 11:01:46 · Upravil/a: Tori
pavuk:
„Use of undefined constant str“ Určitě ta proměnná začínala dolarem?? edit: k editu ↑ :) Nevím, jestli je dobrý nápad editovat superglobal.pole místo opravy překlepu. |
||
pavuk Profil |
#5 · Zasláno: 31. 1. 2011, 11:07:11
ano, začínala, ale jak jsem zeditoval výš, už to mám
|
||
pavuk Profil |
#6 · Zasláno: 31. 1. 2011, 11:16:27
Nerozumím který překlep máš na mysli a kde, ten dolar na začátku promněnné? Ten tam skutečně je...
|
||
Tori Profil |
#7 · Zasláno: 31. 1. 2011, 11:28:10
Ano, to jsem myslela. Zkoušela jsem ten váš kód, a jediná situace kdy vyhodil stejnou chybu byla při odmazání dolaru od proměnné (mimo řetězec). Ale třeba to fakt bylo něčím jiným.
|
||
__construct Profil |
#8 · Zasláno: 31. 1. 2011, 11:28:54 · Upravil/a: __construct
pavuk:
Viem že Ti to už funguje, ale keď vidím to riešenie tak mi nedá - nebolo by lepšie si nazačiatku definovať nejaké pole, napr.: <?php $uri = (isset($_GET['str'])) ? $_GET['str'] : ''; $page = array(); switch($uri) { case 'uvod': $page['title'] = 'Úvod'; $page['description'] = 'Lorem ipsum…'; break; default: $page['title'] = 'Titulok'; $page['description'] = 'Lorem ipsum…'; } ?> <html> <head> <title><?php echo $page['title']; ?></title> <meta name="description" content="<?php echo $page['description']; ?>"> </head> <body> |
||
Časová prodleva: 13 let
|
0