С формы посылается запрос $_POST[nmag] дальше из пост в сессию записываю ...
этот файл выводит на экран записи по запросу, как только я нажимаю переход на другую страницу ( 2 или > ) запрос теряет переменную $_SESSION[nmag].
Этот файл обрабатывает запрос, а формирует ссылки другой файл, он работает нормально... если нужно будет скину
<?php
session_start();
include ('db_conn.php');
include ('functions2.php');
if(isset($_POST['submit']))
{
$submit = $_POST['submit'];
}
if(isset($_SESSION['nmag']))
{
$nmag = $_SESSION['nmag'];
}
$nmag = trim($nmag);
$nmag = stripslashes($nmag);
$nmag = htmlspecialchars($nmag);
@$page = $_GET['page'];
if(!isset($_GET['page'])){
$p = 1;
}
else{
$p = addslashes(strip_tags(trim($_GET['page'])));
if($p < 1) $p = 1;
}
$num_elements = 5;
$_SESSION['nmag'] = $_POST['nmag'];
$total = mysql_result(mysql_query("SELECT COUNT(*) FROM categories WHERE cat_name like '%".$_SESSION['nmag']."%' ORDER BY data ASC"),0,0);
$num_pages = ceil($total / $num_elements);
if ($p > $num_pages) $p = $num_pages;
$start = ($p - 1) * $num_elements;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title><? echo "Результаты по запросу - $nmag"; ?></title>
<link rel="stylesheet" type="text/css" href="1.css">
<link rel="stylesheet" type="text/css" href="css/1.css">
<style type="text/css">
<!--
.стиль2 {font-size: 24px}
-->
</style>
</head>
<body>
<span class="стиль2">Результаты поиска</span>
<span class="стиль2">
<script type="text/javascript" src="/templates/pcv/js/pcvector.js"></script>
</span>
<blockquote>
<p class="стиль16">
<?php
$sel = "SELECT * FROM categories WHERE cat_name like '%".$_SESSION['nmag']."%' ORDER BY data ASC LIMIT ".$start.", ".$num_elements;
echo 'запрос<p>';
echo $sel;
echo '</p><p>Слово в переменной Сессии - </p>';
echo $_SESSION['nmag'];
$query = mysql_query($sel);
if(mysql_num_rows($query)>0){
?>
</p>
</blockquote>
<table width="75%" align="center" cellpadding="15">
<tr>
<th>Дата</th>
<th>Название</th>
<th>Ссылка</th>
</tr>
<?php
while($res = mysql_fetch_array($query)){
echo "
<br>
<center>
<table width='75%' align='center'>
<tr>
<td width='25%' align=center bgcolor=silver> $res[data]</td>
<td width='25%' align=center bgcolor=silver> $res[cat_name]</td>
<td width='25%' align=center bgcolor=silver><a href='http://$res[cat_url]'>Ссылка на альбом</a></td>
</tr>
</table>
";
} echo 'Страница ';
echo GetNav($p, $num_pages);
?>
</table>
<p>
<?php
print"
<table align='left' width='30%'>
<tr><td>Всего записей - $total </td></tr>
<tr><td>Количество записей на страницу - $num_elements</td></tr></table>
<p align='center'><a href='search_foto.php'>Назад</a></p>
"
;
}
?>
</body>
</html>
Спустя 20 минут, 17 секунд (31.07.2012 - 00:58) Игорь_Vasinsky написал(а):
Цитата |
если нужно будет скину |
webmoney???

покажи что в GetNav()
Спустя 3 минуты, 30 секунд (31.07.2012 - 01:02) Адам написал(а):
Это include ('functions2.php');
<?php
function GetNav($p, $num_pages){
//Проверяем нужна ли ссылка "На первую"
if($p > 2){
$first_page = ' <a href="search12.php?page=1"><<</a> '; //или просто $first_page = '<a href="/index.php"><<</a>';
}
else{
$first_page = '';
}
//Проверяем нужна ли ссылка "На последнюю"
if($p < ($num_pages - 2)){
$last_page = ' <a href="search12.php?page= '.$num_pages.'">>></a> ';
}
else{
$last_page = '';
}
//Проверяем нужна ли ссылка "На предыдущую"
if($p > 1){
$prev_page = ' <a href="search12.php?page= '.($p - 1).'"><</a> ';
}
else{
$prev_page = '';
}
//Проверяем нужна ли ссылка "На следущую"
if($p < $num_pages){
$next_page = ' <a href="search12.php?page= '.($p + 1).'">></a> ';
}
else{
$next_page = '';
}
//Формируем по 2 страницы до и после текущей (при наличии таковых, конечно):
if($p - 2 > 0){
$prev_2_page = ' <a href="search12.php?page='.($p - 2).'">'.($p - 2).'</a> ';
}
else{
$prev_2_page = '';
}
if($p - 1 > 0){
$prev_1_page = ' <a href="search12.php?page='.($p - 1).'">'.($p - 1).'</a> ';
}
else{
$prev_1_page = '';
}
if($p + 2 <= $num_pages){
$next_2_page = ' <a href="search12.php?page='.($p + 2).'">'.($p + 2).'</a> ';
}
else{
$next_2_page = '';
}
if($p + 1 <= $num_pages){
$next_1_page = ' <a href="search12.php?page='.($p + 1).'">'.($p + 1).'</a> ';
}
else{
$next_1_page = '';
}
$nav = $first_page.$prev_page.$prev_2_page.$prev_1_page.$p.$next_1_page.$next_2_page.$next_page.$last_page;
return $nav;
}
?>
Спустя 15 минут, 6 секунд (31.07.2012 - 01:17) Игорь_Vasinsky написал(а):
а где ты инициализируешь $_SESSION['nmag']?
Спустя 6 минут, 4 секунды (31.07.2012 - 01:23) Адам написал(а):
Цитата |
а где ты инициализируешь $_SESSION['nmag']? |
с этим недавно столкнулся, всё время с POST работал, в интернете вычитал что можно использовать сессии. особо не представляю о чем ты говоришь)) как я понимаю где я определяю эту переменную ?
я вот так написал
$_SESSION['nmag'] = $_POST['nmag'];
Спустя 13 минут, 8 секунд (31.07.2012 - 01:36) kamanch написал(а):
Нет.
Eсли в скрипте ты обращаешься к массиву $_SESSION, то до того, как ты что-либо запишешь в него или считаешь, ты должен инициилизировать сессию функцией session_start();
И это должно быть в каждом файле, где идет обращение к сессиям.
Учти, что session_start(); должна быть вызвана ДО любого вывода чего-либо в браузер.
Eсли в скрипте ты обращаешься к массиву $_SESSION, то до того, как ты что-либо запишешь в него или считаешь, ты должен инициилизировать сессию функцией session_start();
И это должно быть в каждом файле, где идет обращение к сессиям.
Учти, что session_start(); должна быть вызвана ДО любого вывода чего-либо в браузер.
Спустя 15 минут, 11 секунд (31.07.2012 - 01:51) Адам написал(а):
Цитата |
Учти, что session_start(); должна быть вызвана ДО любого вывода чего-либо в браузер. |
ну у меня инициализация проходит так
посылаю запрос с формы -> открывается сессия...
<?php
session_start();
include ('db_conn.php');
include ('functions2.php');
выводится результат)
Спустя 8 минут, 35 секунд (31.07.2012 - 02:00) kamanch написал(а):
Да, всё понятно. Все идут спать.
А то щас напишем...

А то щас напишем...
Спустя 34 минуты, 26 секунд (31.07.2012 - 02:34) Адам написал(а):
Цитата |
Учти, что session_start(); должна быть вызвана ДО любого вывода чего-либо в браузер. |
спасибо) Сессию открыл чуть раньше, до ввода на форме всё работает атлично)