function.session-start отображается на странице входа в систему с другими правильными ссылками, почему так и как проверить сессию на форму входа в действие - PullRequest
0 голосов
/ 26 января 2010
<?php
session_start();

if(isset($_POST['username']) && ($_POST['password'])) 
{



                $con=mysql_connect("localhost","root","");
                if(!$con)
                {
                die('Could Not Connect:'.mysql_error());
                } 

                mysql_select_db("tcs",$con);

                $usr=$_POST["username"];                 //pick username from login page
                $pwd=hash('sha1',$_POST['password']);    //pick password from login page and use hash algorithm to encrypt it

                $query="select * from employee where Username='$usr' and Password='$pwd'";  //serch that single row in which both r found
                $result=mysql_query($query,$con);


                    if ($result) 
                    {

                                $row=mysql_fetch_array($result);

                        if (($row["Username"]==$usr) && ($row["Password"]==$pwd))
                        {

                                $_SESSION['employee']['id']=$row['User Id'];
                                $_SESSION['employee']['username']=$row['Username'];
                        }       
                        else
                        {
                                echo "Login Not Successfull";
                        }
                    }   
}

else
{
echo 'Error! Username & Password were not sent!';
}

$_SESSION['user_authenticated'] = true;



?>

<html>
<body bgcolor="black">


<?php 
if($_SESSION['user_authenticated']) 
{


                                echo "<font color=red>"."<h3 align=center>"."Welcome ".$_SESSION['employee']['username']."</h3>"."</font>";
                                echo "<br />"."<a href='upload_file.php'>"."<font color='white'>"."<h4>"."Up-Load Files"."</h4>"."<font>"."</a>";
                                echo "<br />"."<br />"."<a href='list_files.php'>"."<font color='white'>"."<h4>"."List All Up-Loaded Files"."</h4>"."<font>"."</a>";

}



?>

</font>
<a  href="logout_file.php"><font color="white"><h3 align="right">Sign Out</h3></font></a>
<font color="white">

</body>
</html>

Хорошо, теперь я понял. Но есть еще одна проблема. Предположим, я на странице входа в систему, на которой есть ссылка для выхода. Когда я нажимаю на кнопку выхода, меня перенаправляют для входа. page.ok не проблема, но снова, если я снова нажимаю кнопку «Назад», меня просят повторно отправить данные (даже после выхода из системы), и снова я нахожусь на странице входа в систему, почему так .. Это неправильно .. Что делать Это. Для всех других страниц, например, если я нажимаю на кнопку выхода из кнопки загрузки -> перенаправлена ​​на вход, и если я нажимаю кнопку «Назад», это показывает, что вы вышли из системы. *

Ответы [ 2 ]

1 голос
/ 26 января 2010

Из документации :

Примечание: Чтобы использовать сеансы на основе файлов cookie, необходимо вызвать session_start (), прежде чем что-либо выводить в браузер.

Обязательно ставьте session_start() перед любым выводом.
Вы всегда можете создать сеанс независимо от того, входит ли пользователь в систему или нет. Если он входит в систему, вы просто устанавливаете какой-либо флаг в переменных сеанса, чтобы пометить его как вошедшего в систему (и, возможно, из соображений безопасности заново сгенерируйте ключ сеанса).

<?php 
session_start()

// do all the user authentication here

$_SESSION['user_authenticated'] = true;

// maybe more stuff....
?>

<!-- html stuff -->
<body>
<?php if($_SESSION['user_authenticated']) {
      echo "<font color=red>"."<h3 align=center>"."Welcome ".$_SESSION['employee']['username']."</h3>"."</font>";
      echo "<br />"."<a href='upload_file.php'>"."<font color='white'>"."<h4>"."Up-Load Files"."</h4>"."<font>"."</a>";
      echo "<br />"."<br />"."<a href='list_files.php'>"."<font color='white'>"."<h4>"."List All Up-Loaded Files"."</h4>"."<font>"."</a>"
} ?>

<!-- and so on -->

Это более или менее псевдокод, но он должен дать вам правильное представление.

0 голосов
/ 26 января 2010

Вы можете проверить свой сеанс на этой странице, разрешить включать страницу сеанса на каждую страницу, где вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...