Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Не работает сессия


Автор: miklash90 24.10.2006, 13:37
У меня почему-то не работает сессия. Вот index 
Код

<?php
session_start();
if (@$_SESSION['username']=="miklash")
{
$ses="Привет miklash!&nbsp(<a href=\"/logout/index.php\">Выход</a>)";
} else {
$ses="<a href='auth.php'>Вход</a>";
}
?>
<html>
<head>
<title>Мой портал</title>
</head>
<BODY onLoad="window .defaultStatus='Добро пожаловать';">
<SPAN STYLE="font-size:20">Главная</SPAN>
<hr>
<DIV STYLE="margin:8px; padding:9px; width:230px;">Всем добрый день, меня зовут Миклашевич Александр. Добро пожаловать на мой сайт. Это моя первая работа на PHP. Не забудьте заглянуть в мою гостевую. 
</div>
<?
echo $ses."<br>\n";
?>
</body>
</html>


 По идее, если пользователь miklash то пишет выход а если нет то вход. Вот скрипт запроса в базу:
Код

<?php
session_start();
require ("../connect.php");
@$result = mysql_query("select * from users where nick=\"".$_POST['text']."\" and password=\"".$_POST['pass']."\"");
$result = mysql_fetch_array($result);
if(!$result){
echo "Ошибка. Неправильны имя или пароль.<br>
<a href='../auth.php'>Назад к странице авторизации.</a>";
exit;
}
echo "Добрый день, ".$result['nick']." Вы вошли.<br>
<a href='../index.php'>На главную.</a>";
$_SESSION['username']="\"".$result['nick']."\"";
?>
<html>
<head>
</head>
<body>
<script language="JavaScript" type="text/javascript">
    <!--
    var i = 3;
    function startCountdown() {
        if (i > 0) {
            i--;
            setTimeout('startCountdown()',1000);
        } else {
            location.href = ("../index.php");
        }
    }
    // -->
    </script>
</body>
<script language="JavaScript" type="text/javascript">
    <!--
    startCountdown();
    // -->
</script>
</html>



И на всякий случай авторизация:

Код

<html>
<head>
<title>Мой портал - Авторизация</title>
<script language="JavaScript" type="text/javascript">
<!--
function check_form() {
  if (document.admin.text.value != "" && document.admin.pass.value != "") {
    document.admin.submit();
  } else {
    alert ("Заполните все поля!");
    return false;
  }
}
// -->
</script>
</head>
<BODY onLoad="window .defaultStatus='Добро пожаловать';">
<SPAN STYLE= "font-size:20; ">Вход в личную панель</SPAN>
<hr>
<form name="admin" onSubmit="check_form();" action ="admin /index.php" method="POST">

<table>
<tr>
<td><b>Имя</b></td>
<td><input name="text" type="text" value=""></td>
</tr>
<tr>
<td><b>Пароль</b></td>
<td><input name="pass" type="password" value=""></td>
</tr>
</table>
<br><input type="button" value="Вход" onclick="check_form();" />
<input name="back" input type="button" value="Назад"
onClick="window.location.href = 'index.php' ">
 </body>
</html>   


Проблема в том, что если даже я правильно авторизовался - пишет на главной ВХОД. Присваивается сессия точно правильно. Проверял:
Код

echo "<pre>";
print_r ($_SESSION);
echo "</pre>";


Что у меня не так?

Автор: fara 24.10.2006, 19:04
Напиши вот так:
Код

...
$_SESSION['username']=$result['nick'];
...


вместо вот этого:
Код

...
$_SESSION['username']="\"".$result['nick']."\"";
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)