Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сессии. система авторизации, не читает именно сессию, где лог и пасс 
:(
    Опции темы
WISEMAN
  Дата 10.1.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



вобщем сам же запутался в сессиях, все время пишет что я гость!
саму систему уже раз 10 переписывал, поэтому может быть кое-что не логично....
Хельпъ кто может smile 
ЗЫ это мой первый масштабный проект, так что не бейте ногами плиз.... и не закидывайте помидорами! smile 
Код

<?
if ($work=='exit') {
    @setcookie('logged_user_cookie','',time()+1);
    @setcookie('logged_user_cookie_pass','',time()+1);
    @header("Location: $PHP_SELF");

    if (!$_SESSION['know']) {
        //session!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        if (!isset($_SESSION['logged_user'])) {
            if (($work!='login') || ($work!='login2')) {
                $loginw="Гость.</td><td align=\"right\" bgcolor=\"#ffffff\">Пожалуйста зарегистрируйтесь или войдите1:";
                $logged_user='';
            } else {
                $loginw="Гость.</td>";
                $logged_user='';
            }
        } else {
            $logged_user=$_SESSION['logged_user'];
            $logged_user_pass=$_SESSION['logged_user_pass'];
            include("inc/database.php");
            $connect=mysql_connect($dblocation, $dbuser, $dbpasswd);
            if (!$connect) {
                echo "<p>Ошибка запроса, повторите позже...</p><br>";
                exit();
            }
            $select_db=mysql_select_db("$dbname");
            if (!$select_db) {
                echo "<p>Ошибка запроса, повторите позже...</p>";
                exit();
            }
            ///////////////////////////////////  
            $query = mysql_query("SELECT * FROM users WHERE login='$logged_user' and pass='$logged_user_pass';");
            if(mysql_numrows($query)==0) {
                echo "Ошибка при вводе логина или пароля!";
                mysql_close();
                exit();
                $logged_user='';
                $logged_user_pass='';
            } else {
                $loginw=$_SESSION['logged_user'];
                mysql_close();
            }
        }
    } else {
        //cookie!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        if (!$_SESSION['done']) {
        @setcookie('logged_user_cookie',$login,time()+160000000);
        @setcookie('logged_user_cookie_pass',$pass,time()+160000000);
        @session_register('done');
        $_SESSION['done']=1;
        @header ("Location: $PHP_SELF");
        }
        if ((!isset($_COOKIE['logged_user_cookie'])) && (!isset($_COOKIE['logged_user_cookie_pass'])) && (isset($_SESSION['logged_user'])) && (isset($_SESSION['logged_user_pass']))) {
        @setcookie('logged_user_cookie',$_SESSION['logged_user']);
        @setcookie('logged_user_cookie_pass',$_SESSION['logged_user_pass']);
        @header ("Location: $PHP_SELF");
        }
        
        if (!isset($_COOKIE['logged_user_cookie'])) {
            if (($work!='login') || ($work!='login2')) {
                $loginw="Гость.</td><td align=\"right\" bgcolor=\"#ffffff\">Пожалуйста зарегистрируйтесь или войдите:";
                $logged_user='';
                @session_close();
                @session_destroy();
            } else {
                $loginw="Гость.</td>";
                $logged_user='';
                @session_destroy();
            }
        } else {
            $logged_user=$_COOKIE['logged_user_cookie'];
            $logged_user_pass=$_COOKIE['logged_user_cookie_pass'];
            include("inc/database.php");
            $connect=mysql_connect($dblocation, $dbuser, $dbpasswd);
            if (!$connect) {
                echo "<p>Ошибка запроса, повторите позже...</p><br>";
                exit();
            }
            $select_db=mysql_select_db("$dbname");
            if (!$select_db) {
                echo "<p>Ошибка запроса, повторите позже...</p>";
                exit();
            }
            ///////////////////////////////////  
            $query = mysql_query("SELECT * FROM users WHERE login='$logged_user' and pass='$logged_user_pass';");
            if(mysql_numrows($query)==0) {
                echo "Ошибка при вводе логина или пароля!";
                exit();
                $logged_user='';
                $logged_user_pass='';
            } else {
                $loginw=$_COOKIE['logged_user_cookie'];            
            }
            mysql_close();
        }
    }

    ?>
<html>
<head>
<title>3</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
A {
text-decoration: none
}
</style>
</head>
<body  >

<!-- MAIN TABLE-->
<table height="100%" width="100%" border=0 cellspacing="0">
<!--WELCOME -->
<tr height="20" height="5%" width="100%" bgcolor="#a0a0a0"> 
<td colspan="2">
    <table width="100%" bgcolor="#a0a0a0" border=0 cellspacing="0"><tr>
    <td width="10" bgcolor="#a0a0a0"></td>
    <td bgcolor="#ffffff" align="left" valign="middle">
    Здравствуйте, <? echo $loginw; ?></td>
    <td width="10" bgcolor="#a0a0a0"></td>
<!-------------------------------------------------------------------------------- (ENTER & REG) || PROFILE BUTTON-->
    <?
    if ($logged_user=='') {
    
    echo "<td align=\"center\" width=\"45\">
    <a href=\"test2.php?work=login\">Войти</a></td>
    <td width=\"10\" bgcolor=\"#a0a0a0\"></td>";
    
    echo "<td align=\"center\" width=\"100\"  >
    <a href=\"test2.php?work=r_f\">Регистрация</a></td><td width=\"10\" bgcolor=\"#a0a0a0\"></td>
    ";
    if ($work=="login" || $work=="login2") {
        echo "<form action=\"test2.php?work=login2\" method=POST>Login:<input type=text name=\"login\" size=25 maxlength=20 tabtest2=1> Password:<input type=password name=\"pass\" size=25 maxlength=20 tabtest2=2><INPUT id=il TYPE=CHECKBOX NAME=\"remember\" value=\"yes\" tabtest2=3><label for=il>запомнить</label><!-- <input type=image name=Enter src=login.gif width=41 height=20 border=0 alt=Вход hspace=5 tabtest2=4> --> <input type=submit class=\"button\" value=\"Войти\" tabtest2=4></form></td>    <td width=\"10\" bgcolor=\"#a0a0a0\"></td>";
    }
    } else {
    /////////////////////////////////////// PROFILE
    include("inc/database.php");
    $connect=mysql_connect($dblocation, $dbuser, $dbpasswd);
    if (!$connect) {
    echo "<p>Ошибка запроса, повторите позже...</p><br>";
    exit();
    }
    $select_db=mysql_select_db("$dbname");
    if (!$select_db) {
    echo "<p>Ошибка запроса, повторите позже...</p>";
    exit();
    }
///////////////////////////////////  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    $query = @mysql_query("SELECT login FROM users WHERE login='$logged_user';");
    if ($query) {
    $bla=mysql_result($query, 0, "login");  
    mysql_close();
    }
    

    echo "<td align=\"center\" width=\"45\">
    <a href=\"test2.php?work=profile\">Профиль</a></td>
    <td width=\"10\" bgcolor=\"#a0a0a0\"></td>";
        echo "<td align=\"center\" width=\"150\" >
    <a href=\"test2.php?work=message\">Личные сообщения</a></td><td width=\"10\" bgcolor=\"#a0a0a0\"></td>
    ";

    echo "<td align=\"center\" width=\"45\">
    <a href=\"test2.php?work=exit\">Выйти</a></td>
    <td width=\"10\" bgcolor=\"#a0a0a0\"></td>";
    ///////////////////////////////////////
    }
    ?>    
    <!------------------------------------------------------------------------------------- -->
    </tr></table>
</td>
</tr>
<!-- WELCOME END-->

<tr>
<!--MENU -->
<td width="170" align="left" valign="top" bgcolor='#a0a0a0'>

<table width="100%" valign="top" bgcolor='#a0a0a0'>
<tr><td bgcolor="#ffffff" align="center"><a href="test2.php"><div width="100%">Главная</div></a></td></tr>

</table>

</td>
<!--MENU END-->
<!--WORK-->
<td align="center" valign="top" height="100%" width="82%">
<?
switch ($work) {
case "login2" : {
    @session_start();
    //вход
    include("inc/database.php");

    $connect=mysql_connect($dblocation, $dbuser, $dbpasswd);
    if (!$connect) {
    echo "<p>Ошибка запроса, повторите позже...</p><br>";
    exit();
    }
    $select_db=mysql_select_db("$dbname");
    if (!$select_db) {
    echo "<p>Ошибка запроса, повторите позже...</p>";
    exit();
    }
///////////////////////////////////  
    $query = mysql_query("SELECT * FROM users WHERE login='$login' and pass='$pass';");
    if(mysql_numrows($query)==0)
    {
        echo "Ошибка при вводе логина или пароля!"; mysql_close(); break;
    } else {
        @session_register('parse');
        $_SESSION['parse']=1;
        if ($remember=='yes') {
            /// cookie!!!!!!!!!!!!!!!!!!!!!!!!!!
            @session_register('know');
            $_SESSION['know']=1;
        }
        //session
        @session_register('logged_user');
        @session_register('logged_user_pass');
        $_SESSION['logged_user']=$login;
        $_SESSION['logged_user_pass']=$pass;
        echo"<script type=\"text/javascript\" language=\"JavaScript\">
function redir () {
   location.href = 'test2.php';
   }
setTimeout(\"redir()\",1000);
</script>  ";
        echo "Вход успешно выполнен!";
        mysql_close();
    }
break;
}
case 'exit' : {
//@session_start();
unset($_SESSION['logged_user']);
@session_unregister('logged_user');
unset($_SESSION['parse']);
@session_unregister('parse');
unset($_SESSION['know']);
@session_unregister('know');
unset($_SESSION['count']);
@session_unregister('count');
unset($_SESSION['logged_user_pass']);
@session_unregister('logged_user_pass');
@session_destroy();
echo "<center>Выход выполнен</center>";
echo"<script type=\"text/javascript\" language=\"JavaScript\">
function redir () {
   location.href = 'test2.php';
   }
setTimeout(\"redir()\",1000);
</script>  ";
break;
}
}
?>
</td>
<!--WORK-->
</tr>
</table>


</body>
</html>

PM MAIL   Вверх
AztEK
Дата 10.1.2007, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



А где вообще session_start?

Добавлено @ 20:56 
И вообще, вместо session_register стоит юзать $_SESSION['foo'] = 'bar';

Это сообщение отредактировал(а) AztEK - 10.1.2007, 20:55


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
GZep
Дата 10.1.2007, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Цитата(WISEMAN @  10.1.2007,  20:23 Найти цитируемый пост)
@header("Location: $PHP_SELF");

Зачем везде @ ставить? Вы думаете раз ошибка не отображается, значит ее нету? smile 
Вместо этого надо писать:
Код

header("Location: $PHP_SELF");
exit();

Иначе ошибка с сообщением что заголовок уже отправлен.

Значит так, вместо того, чтобы делать какие-то проекты и решать какие-то тонкости этих проектов надо сначала внимательно изучить хотя бы основы языка.

Добавлено @ 21:14 
Цитата(AztEK @  10.1.2007,  20:54 Найти цитируемый пост)
session_register

Использовать эту функцию учат только книжки про PHP за 100 рублей. Берите нормальный материал, который написали грамотные люди, знающие язык.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
WISEMAN
Дата 10.1.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.1.2007

Репутация: нет
Всего: нет



AztEK
есть, тока случайно в комменты засунул, перед тем как сюда лить, а коменты не заливал...

GZep
для header - злая привычка!
Цитата

Использовать эту функцию учат только книжки про PHP за 100 рублей. Берите нормальный материал, который написали грамотные люди, знающие язык.

ну что есть - по тому и учим, а учим по книгам с инета скачанным... да гугл...
насчет этих ошибок - это сейчас не важно - потом, мне бы с сессиями разобраться
PM MAIL   Вверх
Mal Hack
Дата 10.1.2007, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



PM ICQ   Вверх
AztEK
Дата 11.1.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



Цитата(GZep @ 11.1.2007,  00:12)
Цитата(WISEMAN @  10.1.2007,  20:23, 
[QUOTE=AztEK, 10.1.2007,  20:54 Найти цитируемый пост)
session_register

Использовать эту функцию учат только книжки про PHP за 100 рублей. Берите нормальный материал, который написали грамотные люди, знающие язык.
[/QUOTE]
А я что, посоветовал её юзать? Перечитайте ещё раз мой пост.


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0784 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.