Сессия Не Получается!

Статус
В этой теме нельзя размещать новые ответы.

znikir

Новичок
Сессия Не Получается!

ПРивет всем!
Есть процедура регистрации авторизации!(за основу взял simple member!)
так в общем когда я захожу уже как зарегистрированный пользователь меня выкидывает к странице входа если я пытаюсь перейти на любую другую страницу!
Может есть какие то другие пути для входа???
более рациональные чем у меня?
Я просто тупа проверяю есть есть переменная логин то вывожу одни данные есть нет то другие!
И еще одно есть ли у кого какая нить готовая процедура?работающая или на cokies или на сессиях!
Вот так выгледит моя index.php
PHP:
<?	
session_start();
	$login = $_SESSION['login'];
        $pass = $_SESSION['pass'];
   
require('main.php');

db_connect();
if ($login){ include(AUT_DIR."header.txt");
					 include(AUT_DIR."bar.php");
					  include(PAG_DIR."main.txt");
					   include(AUT_DIR."foot.txt");
} else {
include(INC_DIR."header.php");
include(INC_DIR."bar.php");
include(PAG_DIR."welcome.php");
include(INC_DIR."foot.php");
}

db_disconnect();
?>
Работаю на локал хост на денвере!
 

Фанат

oncle terrible
Команда форума
отлаживай. http://www.phpfaq.ru/debug
если выяснится, что проблема в сессиях, то разбирайся с ними http://www.phpfaq.ru/sessions#bugs

"готовых процедур", работающих везде и всегда, в природе не существует
 

znikir

Новичок
Notice: Undefined index: login in H:\home\***\www\index.php on line 22
$login = $_SESSION['login'];

Notice: Undefined index: pass in H:\home\***\www\index.php on line 23
$pass = $_SESSION['pass'];
что-то нашел!
файл index.в первом посте"!
Короче везде такую штуку мне выдает что делать?
 

znikir

Новичок
Я вот что думаю может у меня ошибка в файле который авторизует?
PHP:
<?

ini_set('display_errors',1);
error_reporting(E_ALL);
	require('main.php');
 if (!isset($_SESSION['login'])) {
       $_SESSION['login'] = $_REQUEST['login'];
       $_SESSION['pass'] = $_REQUEST['pass'];
    }

    $login = $_SESSION['login'];
    $pass = $_SESSION['pass'];
	db_connect();
	
	$res = mysql_query("SELECT * FROM users WHERE login='$login' AND pass='$pass' and status='active'");
	$re  = mysql_fetch_array($res);

    	if(mysql_num_rows($res) != 0) {

      include(AUT_DIR."header.txt");
					 include(AUT_DIR."bar.php");
					  include(PAG_DIR."main.txt");
					   include(AUT_DIR."foot.txt");
	} else {

	 include(INC_DIR."header.php");
	include(INC_DIR."lerr.php");
include(INC_DIR."foot.php");
	}
	db_disconnect();
?>
 

Фанат

oncle terrible
Команда форума
судя по этому коду, должно пускать наоборот - везде и с любым логином.
 

znikir

Новичок
Но почему то нет не пускает никуда!
Может во всем виноват
$_REQUEST['pass']; может каким-нить другим способ
$_POST['pass']
или не поможет?
 

Фанат

oncle terrible
Команда форума
сделай простой скрипт для работы с сессиями. в одну строчку.
и проверь - работают ли они
 

znikir

Новичок
хорошо подскажите нормальный скрипт
1)достаточно простой!
2)достаточно наждежный!
3)на Mysql

-~{}~ 20.04.09 16:16:

Автор оригинала: *****
сделай простой скрипт для работы с сессиями. в одну строчку.
и проверь - работают ли они
Ничего не понял примерно как выглядит такой скрипт?
 

Фанат

oncle terrible
Команда форума
<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";
echo "<br><a href=".$_SERVER['PHP_SELF'].">обновить";
?>
 

znikir

Новичок
Все работает!
Единственное что здесь не работает!
или работает неправильно это мои мозги!
Неужели никто не видит в моем коде этой поганной ошибки ???
 

Xeon303

Новичок
znikir
А вы принципиально всегда ставите восклицательный знак вместо точки? :)
 

znikir

Новичок
он выдает только эту ошибку!

Notice: Undefined index: login in H:\home\***\www\index.php on line 22
$login = $_SESSION['login'];

Notice: Undefined index: pass in H:\home\***\www\index.php on line 23
$pass = $_SESSION['pass'];

Мне кажется что сессия не запускается!
ПОЖАЛУЙСТА!
Проверьте этот код!
PHP:
<?

ini_set('display_errors',1);
error_reporting(E_ALL);
    require('main.php');
 if (!isset($_SESSION['login'])) {
       $_SESSION['login'] = $_REQUEST['login'];
       $_SESSION['pass'] = $_REQUEST['pass'];
    }

    $login = $_SESSION['login'];
    $pass = $_SESSION['pass'];
    db_connect();
    
    $res = mysql_query("SELECT * FROM users WHERE login='$login' AND pass='$pass' and status='active'");
    $re  = mysql_fetch_array($res);

        if(mysql_num_rows($res) != 0) {

      include(AUT_DIR."header.txt");
                     include(AUT_DIR."bar.php");
                      include(PAG_DIR."main.txt");
                       include(AUT_DIR."foot.txt");
    } else {

     include(INC_DIR."header.php");
    include(INC_DIR."lerr.php");
include(INC_DIR."foot.php");
    }
    db_disconnect();
?>
 

Фанат

oncle terrible
Команда форума
чтобы его проверить, его надо запускать.
запускать должен ты сам.

если это для тебя сложно - поищи себе другое занятие, попроще
 

znikir

Новичок
Ладно тогда объясните мне что делают эти строки????
PHP:
if (!isset($_SESSION['login'])) {
       $_SESSION['login'] = $_REQUEST['login'];
       $_SESSION['pass'] = $_REQUEST['pass'];
    }

    $login = $_SESSION['login'];
    $pass = $_SESSION['pass'];
 

Фанат

oncle terrible
Команда форума
это ты у нас спрашиваешь? Это ты писал? А зачем, если не понимаешь, что они делают?
 

znikir

Новичок
Я же сказал что я взял исходник из simple member.
и немного его доработал.
так можете объяснить.
просто объяснить.
не посылать в некуда,а объяснить.
 

Фанат

oncle terrible
Команда форума
только после того, как ты отредактируешь свое последнее сообщение, заменив в нем восклицательные знаки на точки.
и если впредь в твоих сообщениях не будет ни одного восклицательного знака
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху