Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Метод GET, дано условие, что делать, если переменную извлечь не удалось, но скрипт не выполняет ничего
Форумы портала PHP.SU » » Если скрипт не работает » Метод GET, дано условие, что делать, если переменную извлечь не удалось, но скрипт не выполняет ничего

Страниц (1): [1]
 

1. SkaN - 06 Мая, 2011 - 17:23:28 - перейти к сообщению
Вот сам скрипт:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. mysql_connect(localhost, root, ***);
  3. mysql_select_db('skan_blog');
  4. if (!$page = $_GET['pageid']) {
  5.         $pageid = mysql_query("SELECT * FROM pages WHERE pageid = main;");
  6.         $pagearr = mysql_fetch_array($pageid);
  7. }
  8. else {
  9.         $pageid = mysql_query("SELECT * FROM pages WHERE pageid = $page;");
  10.         $pagearr = mysql_fetch_array($pageid);
  11. }
  12. $pagearr = mysql_fetch_array($pageid);
  13. function bloginfo($inputinfo) {
  14.         switch ($inputinfo) {
  15.                 case 'name':
  16.                         echo 'SkaN Resourses';
  17.                         break;
  18.                 case 'logo':
  19.                         echo '<img src="img/logo.jpg">';
  20.                         break;
  21.                 case 'description':
  22.                         echo 'IT бложик SkaN\'а';
  23.                         break;
  24.                 case 'pagename':
  25.                         echo $pagearr[pagename];
  26.                         break;
  27.                 case 'pagecontent':
  28.                         echo $pagearr[pagecontent];
  29.                         break;
  30.         }
  31. }
  32. ?>
  33. <html>
  34. <head>
  35. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  36. <title><?PHP bloginfo('name'); ?> | <?PHP bloginfo('pagename'); ?></title>
  37. </head>
  38. <body>
  39. <?PHP bloginfo('pagecontent'); ?>
  40. </body>
  41. </html>

Он должен выделять переменную GET. Если ее нет, то должен открывать главную страницу из базы данных. Если есть, то искать ключ и выдавать нужный результат. Однако, как с извеленной переменной, так и без нее, он ничего не делает. Пробовал проставить условие, чтобы, если не вытягивается переменная, писалось что-нибудь - пишется. Если же дописать в адресной строке ?pageid=main, то просто опять ничего не происходит. Также пробовал подставить условия к
PHP:
скопировать код в буфер обмена
  1. $pageid = mysql_query("SELECT * FROM pages WHERE pageid = $page;");
  2. $pagearr = mysql_fetch_array($pageid);

чтобы, опять же, что-нибудь писалось. Однако ничего не происходит. Вообще понять не могу, в чем проблема... Помогите плз
2. molchun201 - 06 Мая, 2011 - 18:24:14 - перейти к сообщению
Было так:


Нада так:
PHP:
скопировать код в буфер обмена
  1. mysql_connect("localhost", "root", "***");


PS Вот такое нада с параметром ASSOC или NUM
Было:
PHP:
скопировать код в буфер обмена
  1. $pagearr = mysql_fetch_array($pageid);

Надо:
PHP:
скопировать код в буфер обмена
  1. $pagearr = mysql_fetch_assoc($pageid);
3. kochan10 - 06 Мая, 2011 - 22:29:36 - перейти к сообщению
А переменная $pagearr, которая используется в функции, будет автоматически из глобальной браться или выдаст какую-нибудь ошибку/это не сработает?
4. molchun201 - 07 Мая, 2011 - 10:59:33 - перейти к сообщению
kochan10 пишет:
А переменная $pagearr, которая используется в функции

в какой ф-ции? Однако
5. OrmaJever - 07 Мая, 2011 - 11:37:29 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $page = (isset($_GET['pageid'])) ? $_GET['pageid'] : 'main';
  2. $pageid = mysql_query("SELECT * FROM `pages` WHERE `pageid` = '$page'");
  3. $pagearr = mysql_fetch_array($pageid);
  4.  

и переливать из пустого в порожнее здесь нечего!
6. SkaN - 10 Мая, 2011 - 09:35:50 - перейти к сообщению
Спасибо OrmaJever'у за оптимизацию)) но проблема крылась в моем же недочете. Я в функцию bloginfo не передал массив и требовал, чтобы через него все проводилось...
7. OrmaJever - 10 Мая, 2011 - 10:24:27 - перейти к сообщению
SkaN ну вам же об этом написали, думал увидели
kochan10 пишет:
А переменная $pagearr, которая используется в функции, будет автоматически из глобальной браться или выдаст какую-нибудь ошибку/это не сработает?
8. CTAPu4OK - 10 Мая, 2011 - 13:39:16 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. if (!$page = $_GET['pageid'])


В данной проверке он у тебя проверяет на присвоение переменной, а присвоит он полюбому.

 

Powered by ExBB FM 1.0 RC1