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 :: Умирает сессия помогите найти ошибку

 PHP.SU

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


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

> Без описания
alim
Отправлено: 15 Октября, 2012 - 18:57:39
Post Id


Новичок


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


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




Помогите найти ошибку, передаю Postом word, затем загоняю его в сессию, показывает все норм. Но элементов много на второй странице сессия не сохраняется видимо из за условия $_SESSION['searchword'] = $_POST['word']; а т.к. во второй странице $_Post['word'] не передается, т.е. равен нулю то и $_SESSION['searchword'] становится равной нулю. Помогите как это обойти plz


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. ?>
  4. <form action="catalog75.php" method="post">
  5.  
  6. Название магазина<br>
  7.  
  8. <input type="text" name="word" size="60" value="">
  9.  
  10. <input type="submit" name="submit" value="Искать">
  11.  
  12. <input type="reset" name="reset" value="Очистить">
  13.  
  14. </form>
  15. <?
  16. $_SESSION['searchword'] = $_POST['word'];
  17. ?>
  18.  
  19.  
  20. <?
  21.  
  22.  
  23.  
  24.  
  25. echo "SESSION:";print_r($_SESSION);
  26.  
  27.  
  28. $dblocation = "localhost";   // Имя сервера
  29. $dbuser     = "root";        // Имя пользователя
  30. $dbpswrd    = "";            // Пароль
  31. $dbname     = "prd";    // Имя базы данных
  32.  
  33. DEFINE('ITEMS_PER_PAGE', 2);
  34.  
  35. // Соединение с сервером базы данных
  36. $dblink = mysql_connect( $dblocation, $dbuser, $dbpswrd );
  37. mysql_query( 'SET NAMES cp1251' );
  38. // Выбираем базу данных
  39. mysql_select_db( $dbname, $dblink );
  40.  
  41. // Выбираем из БД общее количество записей
  42. $query = "SELECT COUNT(*) FROM products WHERE 1";
  43. $res = mysql_query( $query );
  44. $total = mysql_result( $res, 0, 0 );
  45.    
  46. // Проверяем передан ли номер текущей страницы (постраничная навигация)
  47. if ( isset($_GET['page']) ) {
  48.   $page = (int)$_GET['page'];
  49.   if ( $page < 1 ) $page = 1;
  50. } else {
  51.   $page = 1;
  52. }
  53.  
  54. $uri = $_SERVER['PHP_SELF'].'?';
  55. if ( $_SERVER['QUERY_STRING'] != '' ) {
  56.   foreach( $_GET as $key => $value ) {
  57.     if ( $key != 'page' ) $uri = $uri.$key.'='.urlencode($value).'&';
  58.   }
  59. }
  60. // Сколько всего получится страниц
  61. $cnt_pages = ceil( $total / ITEMS_PER_PAGE );
  62. if ( $page > $cnt_pages ) $page = $cnt_pages;
  63. // Начальная позиция
  64. $start = ( $page - 1 ) * ITEMS_PER_PAGE;
  65.  
  66. // По умолчанию сортировка по наименованию, по возрастанию
  67. $orderby = 'title';
  68. $sort = 'ASC';
  69. if ( isset( $_GET['orderby'] ) and isset( $_GET['sort'] ) ) {
  70.   if ( in_array( $_GET['orderby'], array( 'code', 'title', 'price' ) ) ) $orderby = $_GET['orderby'];
  71.   if ( in_array( $_GET['sort'], array( 'ASC', 'DESC' ) ) ) $sort = $_GET['sort'];
  72. }
  73.  
  74. $query = 'SELECT code, title, description, price
  75.          FROM products where title LIKE "%'.strtoupper($_SESSION['searchword']).'%"
  76.          ORDER BY '.$orderby.' '.$sort.'
  77.          LIMIT '.$start.', '.ITEMS_PER_PAGE;
  78. $res = mysql_query( $query );
  79.  
  80. echo '<h1>Каталог продукции</h1>'."\n";
  81. // Выводим "шапку" таблицы
  82. echo '<table border="1" cellpadding="4" cellspacing="0" style="border-collapse: collapse; empty-cells: show;">'."\n";
  83. echo '<tr>';
  84. if ( $sort == 'ASC' ) {
  85.   $tmp = 'DESC';
  86.   $image = 'down.gif';
  87. } else {
  88.   $tmp = 'ASC';
  89.   $image = 'up.gif';
  90. }
  91. if ( $orderby == 'code' )
  92.   echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=code&sort='.$tmp.'&page='.$page.'">Код</a>&nbsp;<img src="'.$image.'" alt="" /></th>';
  93. else
  94.   echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=code&sort=ASC&page='.$page.'">Код</a></th>';
  95. if ( $orderby == 'title' )
  96.   echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=title&sort='.$tmp.'&page='.$page.'">Наименование</a>&nbsp;<img src="'.$image.'" alt="" /></th>';
  97. else
  98.   echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=title&sort=ASC&page='.$page.'">Наименование</a></th>';
  99. echo '<th>Описание</th>';
  100. if ( $orderby == 'price' )
  101.   echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=price&sort='.$tmp.'&page='.$page.'">Цена</a>&nbsp;<img src="'.$image.'" alt="" /></th>';
  102. else
  103.   echo '<th><a href="'.$_SERVER['PHP_SELF'].'?orderby=price&sort=ASC&page='.$page.'">Цена</a></th>';
  104. echo '</tr>'."\n";
  105. while( $prd = mysql_fetch_array($res) ) {
  106.   echo '<tr>';
  107.   echo '<td>'.$prd['code'].'</td>';
  108.   echo '<td>'.$prd['title'].'</td>';
  109.   echo '<td>'.$prd['description'].'</td>';
  110.   echo '<td>'.$prd['price'].'</td>';  
  111.   echo '</tr>'."\n";
  112. }
  113. echo '</table>'."\n";
  114.  
  115. // Строим постраничную навигацию
  116. if ( $cnt_pages > 1 )
  117. {
  118.  
  119.     echo '<div style="margin:1em 0">&nbsp;Страницы: ';
  120.     // Проверяем нужна ли стрелка "В начало"
  121.     if ( $page > 3 )
  122.         $startpage = '<a href="'.$uri.'page=1"><<</a> ... ';
  123.     else
  124.         $startpage = '';
  125.     // Проверяем нужна ли стрелка "В конец"
  126.     if ( $page < ($cnt_pages - 2) )
  127.         $endpage = ' ... <a href="'.$uri.'page='.$cnt_pages.'">>></a>';
  128.     else
  129.         $endpage = '';
  130.  
  131.     // Находим две ближайшие станицы с обоих краев, если они есть
  132.     if ( $page - 2 > 0 )
  133.         $page2left = ' <a href="'.$uri.'page='.($page - 2).'">'.($page - 2).'</a> | ';
  134.     else
  135.         $page2left = '';
  136.     if ( $page - 1 > 0 )
  137.         $page1left = ' <a href="'.$uri.'page='.($page - 1).'">'.($page - 1).'</a> | ';
  138.     else
  139.         $page1left = '';
  140.     if ( $page + 2 <= $cnt_pages )
  141.         $page2right = ' | <a href="'.$uri.'page='.($page + 2).'">'.($page + 2).'</a>';
  142.     else
  143.         $page2right = '';
  144.     if ( $page + 1 <= $cnt_pages )
  145.         $page1right = ' | <a href="'.$uri.'page='.($page + 1).'">'.($page + 1).'</a>';
  146.     else
  147.         $page1right = '';
  148.  
  149.     // Выводим меню
  150.     echo $startpage.$page2left.$page1left.'<strong>'.$page.'</strong>'.$page1right.$page2right.$endpage."\n";
  151.  
  152.     echo '</div>'."\n";
  153.  
  154.        
  155. }
  156.  
  157.  
  158.  
  159. ?>
  160.  

(Отредактировано автором: 15 Октября, 2012 - 18:58:22)

 
 Top
Alho
Отправлено: 15 Октября, 2012 - 19:02:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


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




А зачем вы на второй странице обнуляете $_SESSION['searchword']?
Сразу забирайте его из сессии.
 
 Top
alim
Отправлено: 15 Октября, 2012 - 19:05:53
Post Id


Новичок


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


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




Alho пишет:
А зачем вы на второй странице обнуляете $_SESSION['searchword']?
Сразу забирайте его из сессии.


Ну вот я и не понимаю как её забрать не присваивая $_SESSION['searchword'] = $_POST['word'];
(Добавление)
Помогите пожалуйста разобраться
 
 Top
caballero
Отправлено: 15 Октября, 2012 - 19:59:18
Post Id


Активный участник


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


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




проверяешь чтьо POST пустой и не присваиваешь


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
alim
Отправлено: 15 Октября, 2012 - 20:03:35
Post Id


Новичок


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


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




caballero пишет:
проверяешь чтьо POST пустой и не присваиваешь

Мил, человек, спасибо заработало!!!


PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $word= $_POST['word'];
  4. if (!empty($_POST['word'])){
  5. $_SESSION['searchword'] = $word;
  6. }
  7. ?>
  8.  
  9.  
 
 Top
caballero
Отправлено: 15 Октября, 2012 - 20:21:31
Post Id


Активный участник


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


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




Цитата:
Мил, человек, спасибо заработало!!!

if else - великая сила
к сожалению редко упоминается в мануалах и учебниках по програмированию.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 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