Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Не передаются переменные сессии

Сообщения:  [1-10]   [11-15] 

 
 автор: dim   (21.08.2006 в 19:54)   письмо автору
 
   для: cheops   (18.08.2006 в 12:14)
 

Версия Base_PHP5_2005-07-19_a1.3.31_p5.0.4_m4.1.8_pma2.6.1.exe, но мне кажется, что не в версии дело..
тем более вряд ли Котеров допустил бы такой баг как глюк с сессиями!!
да и еще: при каждом переходе на новую страницу создается новый файл с переменными сессии. При последнем переходе (по ссылке) файл пуст

   
 
 автор: cheops   (18.08.2006 в 12:14)   письмо автору
 
   для: dim   (18.08.2006 в 00:46)
 

Тогда бы должно всё работать... а версия денвера какая? нет возможности попробовать другую?

   
 
 автор: dim   (18.08.2006 в 00:46)   письмо автору
 
   для: cheops   (17.08.2006 в 22:17)
 

Cheops, все события развиваются на локальной машине. Денвер.
php.ini лежит по адресу: 'disk':\user\local\php5\php.ini (виртуальный 'disk' - настоящий путь - c:\WebServers\user\..)
Значение директивы: session.save_path = "/tmp"
p.s. .. и еще я заметил, что в папке, где находится заглушка sendmail при каждом обращении к сессиям создается файл с диковинным названием типа sess_3c03ccfcc6e6226f5d7b9df7bf338d1d, содержание которого дает понять, что именно этот файл несет информацию о переменных сессии. пример контента файла: login|s:5:"admin";passw|s:5:"passw"; (при этом в скрипте создается переменная login со значением admin и passw - со значением passw)
да, похоже, что /tmp и есть та директория, на которуюуказывает session.save_path

   
 
 автор: cheops   (17.08.2006 в 22:17)   письмо автору
 
   для: dim   (17.08.2006 в 16:38)
 

У меня скрипт работает - где дело происходит на локальной машине или на сервере хостинга? Если на локальной машине посмотрите значение директивы session.save_path в конфигурационном файле php.ini (С:/Windows/php.ini) - что в ней? Указанный путь существует?

   
 
 автор: dim   (17.08.2006 в 16:38)   письмо автору
 
   для: cheops   (16.08.2006 в 22:44)
 

Да, выводил. На последнем этапе (о котором я говорил - переход по ссылке) дамп абсолютно пуст..
Я прикрепил эти небольшие файлы (1Кб) - посмотрите, может найдете ошибку?..

   
 
 автор: cheops   (16.08.2006 в 22:44)   письмо автору
 
   для: dim   (16.08.2006 в 17:46)
 

Дамп массива $_SESSION выводили - в нём что-то есть или он полностью пустой?
<?php
  
echo "<pre>";
  
print_r($_SESSION);
  echo 
"</pre>";
?>

   
 
 автор: dim   (16.08.2006 в 17:46)   письмо автору
 
   для: cheops   (16.08.2006 в 12:45)
 

Не работают сессии((, а про подавление собачкой я знаю!!)
Куки включены. И еще одно уточнение, хотя может не слишком важное: отлаживаю и проверяю все скрипты на Денвере.

   
 
 автор: cheops   (16.08.2006 в 12:45)   письмо автору
 
   для: dim   (15.08.2006 в 13:54)
 

У вас cookie включены в браузере? Вообще в чём проблема - не работают сессии или вам просто нужно подавить вывод Notice?

   
 
 автор: dim   (15.08.2006 в 21:00)   письмо автору
 
   для: Vados   (15.08.2006 в 16:24)
 

Привет!
Вообще-то идея была защитить доступ к папке администрирования методами php, тем более не слишком оправдано использование базы данных, потому только, что администроторов может быть всего несколько человек, а ради этого создавать таблицу, потом осуществлять к ней запросы.. ПУМ!..
а обращение просходит всегда к одному и тому же файлу - index.php, где, передавая некоторый параметр мы просто выбираем действие - загружаем нужный файл, предварительно проверив админ или нет этот чел.
$var=$_GET['var'];
switch (var)
{
    case 'main': include "main.php"; break;
    case 'del' : include "delpost.php"; break;
    ...
    default: include "main.php";
}

просто я решил, что лучше локализовать случай, легче ошибку или недочет будет найти, однако вот ответа все нет..((

   
 
 автор: Vados   (15.08.2006 в 16:24)   письмо автору
 
   для: dim   (15.08.2006 в 14:59)
 

Привет!
Так у тебя же файл second.php используется и для ввода логина и пароля и для проверки всего остального, делай это просто один раз. То есть после введения логина и пароля на след. странице в заголовок или include (как пожелаешь) передавай эти переменные, к примеру вот так:

include 'config.php';
session_start();
$login = $_SESSION['login'];
$pass = $_SESSION['passw'];
// проверяем логин и пароль из переменных сессии на наличие в базе данных
$res = mysql_query('SELECT * FROM USERS WHERE login="'.$login.'" and pass="'.$passw.'"');
$num = mysql_num_rows($res);
if ($num == 0)
 {
  echo "<b class=text>";    
  echo 'Ошибка авторизации!';
  echo "</b>";
//можно отправить на стартовую страницу используя header(""); 
 exit;
  }

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования