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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: При создании сессии не происходит регистрация сессионных переменных
 
 автор: Oleg-Perm   (16.03.2006 в 02:06)   письмо автору
 
 

Здравствуйте!

Пишу программу по учёбе (файловый менеджер) пользуясь приобретённой книгой “PHP 5 на примерах” написанной нашими многоуважаемыми авторами. За книгу очень благодарен, всё ясно и чётко. Но у меня возникла такая проблема: при создании сессии не происходит регистрация переменных (session_register() ) из-за чего значения users и pass теряются на первых же шагах. А они необходимы, так как по users происходит запрос данных из файла ('./users/'.$login) а в данных содержится настройка начального пути для конкретного пользователя. В результате всё сбивается и пользователи, которые должны были попадать в разные папки попадают в одну. Помогите разобраться, т.к. сижу над этим уже почти неделю, всех замучил вопросами (никто не знает), и сроки сдачи поджимают.

Полный архив проекта приложенным файлом.

С уважением и ОГРОМНОЙ надеждой на помощь, Олег.

P.S. для программы в архиве логин: oleg пароль: 1234
Обратите внимание на начальный путь в conf2.php
Пользователи должны попадать в папку files , а затем в подпапки.
У логина oleg самой верхней должна быть установлена папка files/01

Вот интересующая выдержка из index.php

<?
/*
   _______________________________
 ___________Файл: index.php_________
   _______________________________
*/

//Включаем переменные настройки, хранящихся в одном файле
include("config.php");
//Включаем библиотеку функций, хранящихся в одном файле
include("functions.php");
clearstatcache();
//Присвоить переменной $control кнопки управления файл менеджера
$control="<hr width=600  size=1>
<table width=600  border=0 cellspacing=0 cellpadding=0 align=center>
<tr bgcolor=#EEEEEE>
<td><input type=image name=delete SRC=images/delete.gif alt='Удалить выбранное'></td>
<td><div align=center><input type=image name=copy_tree SRC=images/copy.gif alt='Копировать файлы в...'></div></td>
<td><div align=right><input type=image name=log_out SRC=images/log_out.gif alt='Завершить работу с файл менеджером'></div></td>
</tr>
</table>"
;

//Присвоить переменной $form форму авторизации
$form "<form action=index.php method=POST>
<table align=center width=600 border=0 cellspacing=1 cellpadding=3 bgcolor=#333333>
<tr height=30 align=center><td bgcolor=#3399CC background=images\bckg.gif>
<font class=font_2><b>Авторизация</b></font></td></tr>
<tr align=center><td bgcolor=EEEEEE>
<input type=hidden name=seenpass value=true>\n<font class=font_2>Чтобы войти, Вам нужно ввести логин и пароль<br><hr size=1>
<table width=210 cellsapacing=5 cellpadding=1>
<tr><td align=left><font class=font_2>Логин:</font></td><td align=right width=100%><input type=text name=login size=17 class=form style=width=100%></td></tr>
<tr><td align=left><font class=font_2>Пароль:</font></td><td align=right width=100%><input type=password name=pass size=17 class=form style=width=100%></td></tr>
<tr><td colspan=2><input type=submit value=Войти class=input_text style=width=100%></font></td></tr></table>
</td></tr></table></form>"
;

if (!isset(
$seenpass) and !isset($uin)) {
                
print_header("Авторизация");
                print 
"\n".$form;
                
print_footer();
                exit;
}
elseif (!isset(
$uin)) {
        @
srand ((double) microtime() * 1000000);
        @
$uin uniqid (rand(), true);
        
$pass_m md5($pass);
}
session_name("CF");
$sid md5($uin);
session_id($sid);
session_start();

echo 
"были введены данные $login $pass \n";

   
$usr_str=f_get('./users/'.$login);

   
$usr_str=str_replace("\r\n""\n"$usr_str);
   
$arr=explode("\n"$usr_str);
   echo 
"чтение из файла $arr[0]  $arr[1] $mypath \n";

// подставить начальные пути и прописать в них
// путь из $arr[1]
include("conf2.php");

$pass_m_1 $arr[0];

if (!
file_exists('./users/'.$login) and ($pass_m == $pass_m_1)) {
        
session_register('seenpass');
        
session_register('pass_m');
        
//session_register('pass_m_1');
        
session_register('login');
        
//$_SESSION['pass_m_1'] = $arr[0];
        //$_SESSION['d_path'] = $arr[1];
        
$_SESSION['mypath'] = $arr[1];

}
elseif (!
file_exists('./users/'.$login) or ($pass_m != $pass_m_1)) {
        
//echo "значение pass_m_1 ($pass_m_1) \n";
        //echo "значение пути ($d_path) СЕССИЯ ЗАКРЫТА!\n";
        
session_destroy();
        
print_header("Авторизация | Ошибка!");
        print 
"<div align=center><font class=font_2 color=red><b>Вы ввели неправильный логин или пароль!</b></font><br>".$form."</div>";
        
print_footer();
        exit;
}

   
 
 автор: cheops   (16.03.2006 в 13:52)   письмо автору
 
   для: Oleg-Perm   (16.03.2006 в 02:06)
 

А у вас при авторизации, не происходит заход в блок
<?php
if (!file_exists('./users/'.$login) and ($pass_m == $pass_m_1)) {
        
session_register('seenpass');
        
session_register('pass_m');
        
//session_register('pass_m_1');
        
session_register('login');
        
//$_SESSION['pass_m_1'] = $arr[0];
        //$_SESSION['d_path'] = $arr[1];
        
$_SESSION['mypath'] = $arr[1];

}
?>

т.е. условие не выполняется, нужно убрать отрицание ! у !file_exists('./users/'.$login) - тогда сессия будет регистрироваться.

   
 
 автор: Oleg-Perm   (16.03.2006 в 20:34)   письмо автору
 
   для: cheops   (16.03.2006 в 13:52)
 

Да, да, точно! Я понял ошибку! Я на автомате поставил знак ! а потом его не увидел. И эхо не сделал! Сейчас попробую, может заработает.
Большое спасибо!

   
Rambler's Top100
вверх

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