[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Умирает сессия
asid
Доброго всем время суток. Столкнулся я с такой проблемой когда умирает сессия. Теперь все по порядку, чтобы было все ясно и доступно. Таким образом истина будет где-то рядом.
Создал index.php с авторизацией на странице. В форме данные передаются методом POST. Сам файл индекс верстался в таблице. Таблица имеет стандартный вид "верх", "низ", "лево", "право". "Лево" отведено под меню, "право" под основное пространство. Я долго думал, как в одном каркасе сайта вставлять разные php коды, долго искал нужную инфу и ничего не нашел и тогда в голову пришла такая система. В меню я создаю ссылку вида localhost/proba/cab.php?pages=page.php (это то что в левом столбе страницы) в файле cab.php пишу такой код:

$pages=$_GET['pages'];
if ($pages == "login_reg.php")
{
include ("login_reg.php");
}
if ($pages == "page.php")
{
include ("page.php");
}

и.т.д. Таким образом решена проблема вставки в один каркас разных страниц сайта. Но наткнулся на такую проблему как при переходе по такой погибает сессия. Если я перехожу по такой ссылке localhost/proba/page.php (напрямую) сессия функционирует как надо и во всех моих *php скриптах. Мне кажется что я изобрел какую-то галиматью, со вставкой в один каркас сайта разных скриптом. Может не надо изобретать колесо? Но ответа я не знаю может кто подскажет.

P/S Файл cab.php начинается так:

<?php
session_start();
$_SESSION['email'] = $_POST['email'] ; // Запись переменных в сессию
$_SESSION['login'] = $_POST['login'] ; // Запись переменных в сессию
$mail = $_SESSION['email'];
$pass = $_SESSION['login'];
//-----и т.д.

Заранее спасибо.



Спустя 1 час, 17 минут, 43 секунды (30.07.2011 - 11:56) kovaldm написал(а):
Сессию во всех файлах запускаете?

Спустя 6 минут, 34 секунды (30.07.2011 - 12:03) asid написал(а):
Имеете ввиду файлы которые вставляются по инклюду? Пробовал и со стартом сессии и без нее. Результат один. После нажатия ссылки сессия исчезает.

Спустя 26 минут, 29 секунд (30.07.2011 - 12:29) kovaldm написал(а):
Запускать сессию нужно только один раз - в индексе, у вас это, как я понял, cab.php. Должно работать. Попоробуйте использовать другой браузер и после session_start() пропишите print_r($_SESSION);

Спустя 14 минут, 19 секунд (30.07.2011 - 12:43) asid написал(а):
Вы собственно говорите все правильно. Я так и делал. Сессия запускается в cab.php в инклюдных только переменные. Попробую выложить для полной наглядности файлы в миниатюре. Думаю так можно увидеть в чем дело.

Спустя 14 минут, 8 секунд (30.07.2011 - 12:57) asid написал(а):
И так файл cab.php (это личный кабинет)

<?php
session_start();
$_SESSION['email'] = $_POST['email'] ; // Запись переменных в сессию
$_SESSION['login'] = $_POST['login'] ; // Запись переменных в сессию
$_SESSION['id'] = session_id() ;
$mail = $_SESSION['email'];
$pass = $_SESSION['login'];

echo "<html>
<head>
<meta http-equiv=
\"Content-Type\" content=\"text/html; charset=windows-1251\">
<title>My - profile</title>
<style type='text/css'>
.left-top
{
border: solid 1px #F0F0F0; /* Параметры рамки */
border-top: yes; /* Линии сверху */
border-right: yes; /* Линии справа */
border-left: yes; /* Линии справа */
border-bottom: none; /* Линии снизу */
}
.bottom
{
border: solid 1px #F0F0F0; /* Параметры рамки */
border-top: none; /* Линии сверху */
border-right: none; /* Линии справа */
border-left: none; /* Линии справа */
border-bottom: yes; /* Линии снизу */
}
</style>
</head>

<body>

<table border=
\"0\" width=\"100%\" height=\"550\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=
\"25%\" rowspan=\"3\" > </td>
<td class=left-top colspan=
\"2\" height=\"96\" valign=\"top\" ><p align=\"center\">";
include "heder.php";
echo "</td>
<td width=
\"18%\" rowspan=\"3\"> </td>
</tr>
<tr>
<td width=
\"16%\" valign=\"top\" class=left-top>";
echo "<br>";
include "left.php";
echo"</td>
<td valign=
\"top\" width=\"40%\" class=left-top>";
//------------------------------------------------------------------------
$pages=$_GET['pages'];
if ($pages == "login_reg.php")
{
include ("login_reg.php");
}
if ($pages == "page.php")
{
include ("page.php");
}
if ($pages == "sess.php")
{
include ("sess.php");
}
echo"<br>
 </td>
</tr>
<tr>
<td class=left-top colspan=
\"2\" height=\"53\" valign=\"top\">
<p align=
\"center\" class=bottom ><br>Developed by <br>
<br>
<br>
 </td>
</tr>
</table>

</body>

</html>"
;

Это один из файлов который вставляется page.php

<?php
$table = "new" ;
mysql_connect("localhost", "****","********") or die("не могу соедениться;");
mysql_select_db("Proba");
$result = mysql_query("SELECT * FROM `$table` WHERE `email` = '$mail'");
$count = mysql_num_rows($result);
if ($count != 1)
{
echo "$mail"; // Это уже не выводит.
echo " Вы не зарегистрированы или не авторизованы на сайте."; // Вот тут все и заканчивается.
exit();
}
mysql_close();
//------------------------------------------------------------------------
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.