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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не работает метод GET

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Backer
Отправлено: 09 Мая, 2016 - 23:46:15
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




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



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




значит то что в урл удовлетворяет условию
 
My status
 Top
Backer
Отправлено: 09 Мая, 2016 - 23:57:30
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




ну это я тоже поняла уже
 
 Top
kuller
Отправлено: 10 Мая, 2016 - 01:19:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




для фильтрации хотя бы такую функцию используйте

PHP:
скопировать код в буфер обмена
  1.  
  2. function check($msg)
  3. {
  4.         if (is_array($msg))
  5.         {
  6.                 foreach($msg as $key => $val)
  7.                 {
  8.                         $msg[$key] = check($val);
  9.                 }
  10.         }else{
  11.                 $msg = trim(strip_tags($msg));
  12.                 $search = array('|', '\'', '$', '\\', '^', '%', '`', "\0", "\x00", "\x1A", "??????");
  13.                 $replace = array('|', '&#39;', '$', '\', '^', '%', '`', '', '', '', '');
  14.                 $msg = str_replace($search, $replace, $msg);
  15.                 $msg = stripslashes($msg);
  16.         }
  17.         return $msg;
  18. }
  19.  
  20. $id = check($_GET['id']);
  21.  
 
 Top
Backer
Отправлено: 10 Мая, 2016 - 08:00:25
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Спасибо! Но ошибка заключается другом
 
 Top
kuller
Отправлено: 10 Мая, 2016 - 11:19:26
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 561
Дата рег-ции: Нояб. 2009  


Помог: 2 раз(а)




понятно что в другом.

За место isset проверяйте просто на пустоту т.е. это



заменить на это



c isset такой адрес будет true index.php?id=

дальше...
Backer пишет:
if (empty($myrow['login'])) {


я бы здесь лучше сделал проверку на совпадения логина и пароля находящие в сессиях

(Отредактировано автором: 10 Мая, 2016 - 12:12:21)

 
 Top
ytrewq123
Отправлено: 10 Мая, 2016 - 15:38:55
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Может быть проблема в том что вы ждёте ГЕТ, а в форме прописано ПОСТ.
Если же нет. То смотрите чему равна или даже в адресной строке видно что ГЕТом идёт. Это то что вы ожидаете. Может прогоните trim($_GET[‘’]); бывают всякие пробелы. А у вас в регулярке строго, начало конец цифра.

(Отредактировано автором: 10 Мая, 2016 - 15:43:19)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB