ugrás a tartalomhoz

Sok-sok warning

S3RI0US · 2009. Dec. 23. (Sze), 16.42
Hali!
Így karácsony előtt programozgatok, és az alábbi kód kiírt pár warningot

40  <?php
41  $menu = array(
42       "not_registered" => 'menu1.php',
43       "registered" => 'menu2.php',
44  );
45  if ( array_key_exists( $_GET['menu'], $menus ) )  
46  {  
47  $menu = $menus[$_GET['menu']];    
48  }  
49  else 
50  {  
51  $menu = "not_found.php";  
52  }  
53  				
54  include 'menu';
A sorok számai a sorok elején vannak.
A warningok:
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/musicrco/public_html/index.php on line 45

Warning: include(menu) [function.include]: failed to open stream: No such file or directory in /home/musicrco/public_html/index.php on line 54

Warning: include(menu) [function.include]: failed to open stream: No such file or directory in /home/musicrco/public_html/index.php on line 54

Warning: include() [function.include]: Failed opening 'menu' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/musicrco/public_html/index.php on line 54
 
1

ez komoly?

gex · 2009. Dec. 23. (Sze), 16.52
ez komoly?
2

mi?

S3RI0US · 2009. Dec. 23. (Sze), 16.59
mi?
3

2 typo

erenon · 2009. Dec. 23. (Sze), 17.01
6. sor: elgépelted a menüket tartalmazó változót: $menus->$menu
15. sor: include $menu;
4

Kijavítottam, de miért No

S3RI0US · 2009. Dec. 23. (Sze), 17.16
Kijavítottam, de miért No such file or directory in /home/musicrco/public_html/index.php ?
nekem a home/musicrco/public_html/ az a direktórium ahol a fileok vannak... Egyébként a kód(menu helyett page-el) működött, igaz, azóta hostot váltottam..
5

nem igazán értem, mi a kérdés

a.d.a.m · 2009. Dec. 23. (Sze), 23.58
a hibaüzenet azt jelzi, hogy a /home/musicrco/public_html/ könyvtárban nem talkálhat az includdal hivatkozott fájl (esetleg a könyvtár sem létezik). Ez utóbbit kizárhatjuk, tekintve hogy ez az oldalad gyökere, tehát a hiba, hogy nem létezik a menu nevű állomány, nem esetleg menu.php akart ez lenni?

Ami a hibaüzenet No such file or directory in /home/musicrco/public_html/index.php részét illeti, ez annyit jelent hogy az /home/musicrco/public_html/index.php-ban található a hiba (ha megfigyeled a hibaüzenetet amit beküldtél, a végén az is ott van, hogy hányadik sorban van a probléma.

Végül egy kis ismétlés a manualból (a második bekezdésen a hangsúly):

include()
Az include() beilleszti és feldolgozza a megadott fájlt. Az alábbiak igazak a require()-ra is. A require() és az include() megegyezik egymással a hibakezelését leszámítva. Az include() nem fatális hibát, figyelmeztetést generál, a require() viszont fatális hibát jelez. Magyarán, ahol az igényelt fájl nemlétekor a futást meg kell szakítani, ajánlott a require(). Az include() nem így viselkedik, a hibától függetlenül a szkript futtatása folytatódik. Bizonyosodj meg, hogy a include_path helyesen van beállítva! Jegyezd meg, hogy a szintaktikai hiba a include()-olt fájlban nem okozza a feldolgozás megszakítását a PHP 4.3.5 verziója előtt, ettől a verziótól kezdve viszont igen.

A beillesztendő fájlokat először az aktuális könyvtárhoz viszonyított include_path-ban keresi, majd az aktuális szkript könyvtárához viszonyított include_path-ban. Például ha az include_path a ., aktuális könyvtár a /www/, beillesztetted az include/a.php-t amelyben van egy include "b.php" utasítás, a b.php-t először a /www/-ben keresi, majd a /www/include/-ban. Ha a fájlnév ../ karakterekkel kezdődik, csak aktuális munkakönyvtárhoz viszonyított include_path-ban keresi.
6

szerintem a

a.d.a.m · 2009. Dec. 24. (Cs), 00.01
6. helyett a 2. sorban kellene javítani a $menu helyett $menus-re, mert utána a $menus tömb van használatban
7

igaz

erenon · 2009. Dec. 24. (Cs), 12.20
igaz.
8

Notice

gphilip · 2009. Dec. 25. (P), 00.44
Kapcsold be a Notice-iokat is, lesz mlég egy-két meglepiben részed :)
Kellemes Karácsonyt