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 :: Версия для печати :: Где ошибка?
Форумы портала PHP.SU » » Вопросы новичков » Где ошибка?

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

1. Demon1341 - 16 Декабря, 2011 - 19:14:02 - перейти к сообщению
Добрый вечер!
Я в изучении php начинающий, есть скрипт из инэта, типа мини-cms, так вот т.к. с синтаксисом php не дружу выскакивают разные ошибки при попытке редактирования, одну страницу подправил, а вот другую никак, код следующий:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.             session_start();
  3. include ("bd.php");// файл bd.php должен быть в той же папке, что и все    остальные, если это не так, то просто измените путь
  4.             if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
  5.             else
  6.             { exit("Вы зашли на    страницу без параметра!");} //если не    указали id, то выдаем ошибку
  7.             if (!preg_match("|^[\d]+$|", $id))    {
  8.             exit("<p>Неверный    формат запроса! Проверьте URL</p>");//если id не число, то выдаем    ошибку
  9.             }
  10. if (!empty($_SESSION['login']) and    !empty($_SESSION['password']))
  11.             {
  12.             //если    существует логин и пароль в сессиях, то проверяем, действительны ли они
  13.             $login = $_SESSION['login'];
  14.             $password = $_SESSION['password'];
  15.             $result2 = mysql_query("SELECT id FROM    users WHERE login='$login' AND password='$password'",$db);
  16.             $myrow2 = mysql_fetch_array($result2);
  17.             if (empty($myrow2['id']))
  18.  
  19.                {
  20.                //Если не действительны (может мы удалили    этого пользователя из базы за плохое поведение)
  21.  
  22.                 exit("Вход на эту страницу разрешен    только зарегистрированным пользователям!");
  23.                }
  24.             }
  25.             else {
  26.             //Проверяем,    зарегистрирован ли вошедший
  27.             exit("Вход на эту    страницу разрешен только зарегистрированным пользователям!"); }
  28.             $result = mysql_query("SELECT * FROM    users WHERE id='$id'",$db);
  29.             $myrow =    mysql_fetch_array($result);//Извлекаем все данные    пользователя с данным id
  30. if (empty($myrow['login'])) {    exit("Пользователя не существует! Возможно он был удален.");} //если такого не существует
  31. ?>
  32.             <html>
  33.             <head>
  34.             <title><?PHP echo $myrow['login'];    ?></title>
  35.             </head>
  36.             <body>
  37.  
  38.             <h2>Пользователь "<?PHP echo    $myrow['login']; ?>"</h2>
  39.  
  40. <?PHP
  41.             print <<<HERE
  42.             |<a href='page.php?id=$myrow2[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>
  43.             HERE;
  44.             //выше вывели меню
  45. if ($myrow['login'] == $login) {
  46.             //Если    страничка принадлежит вошедшему, то предлагаем изменить данные и выводим    личные сообщения
  47. print <<<HERE
  48. <form action='update_user.php'    method='post'>
  49.             Ваш логин    <strong>$myrow[login]</strong>. Изменить логин:<br>
  50.             <input name='login' type='text'>
  51.             <input type='submit' name='submit' value='изменить'>
  52.             </form>
  53.             <br>
  54. <form action='update_user.php'    method='post'>
  55.             Изменить пароль:<br>
  56.             <input name='password' type='password'>
  57.             <input type='submit' name='submit' value='изменить'>
  58.             </form>
  59.             <br>
  60. <form action='update_user.php'    method='post' enctype='multipart/form-data'>
  61.             Ваш аватар:<br>
  62.             <img alt='аватар' src='$myrow[avatar]'><br>
  63.             Изображение должно быть    формата jpg, gif или png. Изменить аватар:<br>
  64.             <input type="FILE"    name="fupload">
  65.             <input type='submit' name='submit' value='изменить'>
  66.             </form>
  67.             <br>
  68. <h2>Личные    сообщения:</h2>
  69. HERE;
  70. $tmp = mysql_query("SELECT * FROM    messages WHERE poluchatel='$login' ORDER BY id DESC",$db);
  71.             $messages =    mysql_fetch_array($tmp);//извлекаем сообщения    пользователя, сортируем по идентификатору в обратном порядке, т.е. самые    новые сообщения будут вверху
  72. if (!empty($messages['id'])) {
  73.             do //выводим    все сообщения в цикле
  74.               {
  75.             $author = $messages['author'];
  76.             $result4 = mysql_query("SELECT avatar,id    FROM users WHERE login='$author'",$db); //извлекаем аватар автора
  77.             $myrow4 = mysql_fetch_array($result4);
  78. if (!empty($myrow4['avatar']))    {//если такового нет, то выводим стандартный (может    этого пользователя уже давно удалили)
  79.             $avatar = $myrow4['avatar'];
  80.             }
  81.             else {$avatar =    "avatars/net-avatara.jpg";}
  82.      printf("
  83.                 <table>
  84.                 <tr>
  85.  
  86.                 <td><a href='page.php?id=%s'><img alt='аватар'    src='%s'></a></td>
  87.              
  88.                 <td>Автор:    <a href='page.php?id=%s'>%s</a><br>
  89.                  Дата:    %s<br>
  90.                                 Сообщение:<br>
  91.  
  92.                             %s<br>
  93.                             <a href='drop_post.php?id=%s'>Удалить</a>
  94.  
  95.              
  96.                 </td>  
  97.                 </tr>
  98.                 </table><br>
  99.                 ",$myrow4['id'],$avatar,$myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
  100.               //выводим само сообщение
  101.               }
  102.                  while($messages = mysql_fetch_array($tmp));
  103.                     }
  104.                                                                                           else    {
  105.                                                                                           //если сообщений не найдено
  106.                                                                                           echo    "Сообщений нет";
  107.                                                                                           }
  108.                                                                                          
  109.  
  110.             }
  111. else
  112.             {
  113.             //если    страничка чужая, то выводим только некторые данные и форму для отправки    личных сообщений
  114. print <<<HERE
  115.             <img alt='аватар' src='$myrow[avatar]'><br>
  116.             <form action='post.php' method='post'>
  117.             <br>
  118.             <h2>Отправить Ваше    сообщение:</h2>
  119.             <textarea cols='43' rows='4'    name='text'></textarea><br>
  120.             <input type='hidden' name='poluchatel'    value='$myrow[login]'>
  121.             <input type='hidden' name='id'    value='$myrow[id]'>
  122.             <input type='submit' name='submit' value='Отправить'>
  123.  
  124.             </form>
  125.             HERE;
  126.             }
  127. ?>
  128.             </body>
  129.             </html>

Понимаю, что тут наверно таких тем уже куча, но мне надо просто побыстрее решение найти. Улыбка
А ниже привожу кусок кода со страницы, которую получилось подправить:
PHP:
скопировать код в буфер обмена
  1. print
  2.             "|<a    href='page.php?id=$_SESSION[id]'>Моя страница</a>|<a    href='index.php'>Главная страница</a>|<a    href='all_users.php'>Список пользователей</a>|<a    href='exit.php'>Выход</a><br><br>[b]"[/b];
  3.  

На второй строке из куска кода была ошибка, решилась проставкой кавычек.
2. Champion - 16 Декабря, 2011 - 19:26:05 - перейти к сообщению
Ошибки-то - какие?
3. Demon1341 - 16 Декабря, 2011 - 19:31:43 - перейти к сообщению
Champion, разные выскакивали, после правки - Parse error: syntax error, unexpected T_STRING in /var/www/demon1341/data/www/graf fis.ru/user.php on line 49
На 49 начинаю править сыпятся другие ошибки.
В чистом виде без правки с моей стороны ошибка - Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/demon1341/data/www/graf fis.ru/user.php on line 46
В первом посте чистый код без правки. Улыбка
4. Champion - 16 Декабря, 2011 - 19:36:28 - перейти к сообщению
Demon1341 пишет:
on line 46
Чуть выше, на 43 строке heredoc неправильно закрыт - его надо закрывать прям от начала строки без всяких пробелов и табов. И ниже несколько раз такая же вещь.
(Добавление)
Даже тут в подсвеченном синтаксисе это заметно. PHP считает всю ту хрень одни большим хередоком и на 46 строке в нем не поймет как трактовать $myrow['login'] вот такой индекс массива

 

Powered by ExBB FM 1.0 RC1