나는 스스로에게 설명 할 수없는 PHP 세션 처리에 문제가 있습니다. 저는 처음부터 PHP를 연구 중이며 세션을 라이브로 유지하는 방법을 알 수 없습니다 :PHP 5의 세션 처리
이것은 사용자가 로그인하거나 오른쪽 페이지를 방문한 데이터베이스에 등록 할 수있는 내 인덱스 페이지입니다. 그는 로그인 어떤지를 확인 돌아올 :
코드 :
사실Index
<?php session_start(); ?>
<a href="register.php" target="_self"> Register </a>
<a href="login.php" target="_self"> Login </a>
<?php
if(isset($_SESSION['login']))
{
echo "Logged as: ".$_SESSION['nlogin'];
?>
<form method="post" action="<?php unset($_SESSION['login']) ?>">
<input type="button" name="logOut" value="LogOut" />
</form>
<?php
}
else
{
echo "Please Register or Login";
}
?>
이 작품, 내가 다시 말한다 login.php에서 올 때 때문에 "기록 등 : 관리자"
그러나 로그인 페이지를 얻으려면 링크를 클릭하거나 등록하십시오. 페이지를 다시 인덱스 페이지에서 "Logged as ..."같은 메시지가 나타나야하지만 세션이 닫힌 것으로 보입니다. 내가 다시 여기에 돌아올 때
내가 다시 인덱스 페이지에 "위로"위의 링크를 사용하여 온<?php
session_start();
include "dbConnect.php";
if(isset($_SESSION['login']))
{
echo "Logged as: ".$_SESSION['nlogin']; // IT NEVER SHOW THIS MESSAGE
}
if(isset($_POST['submit']) &&(trim($_POST['submit']) == "Login"))
{
if(!isset($_POST['user']) || $_POST['user']=="")
{
echo "Attenzione inserire l'username.";
}
elseif(!isset($_POST['pwd'])||$_POST['pwd']=="")
{
echo "Attenzione inserire la password.";
}
else
{
$u = trim(filter_var($_POST['user'], FILTER_SANITIZE_STRING));
$u = str_replace(" ","_",$u);
$p = trim(filter_var($_POST['pwd'], FILTER_SANITIZE_STRING));
$p = sha1($p);
$istance = new dbHandle;
$istance->connect();
$data = $istance->query("SELECT * FROM login WHERE username_login = '$u' AND password_login = '$p'");
if(mysql_num_rows($data) == 0)
{
echo "Failed";
echo "<a href='index.php' target='_self'> Go Back </a>";
}
else
{
echo "Logged";
$res = $istance->getdata($data);
$_SESSION['login'] = $res->id_login;
$_SESSION['nlogin'] = $res->username_login;
echo "<a href='index.php' target='_self'> Go Back </a>";
}
}
}
else
{
?>
Login
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
...
<input name="user" type="text" size="20" required="required"/>
...
<input name="pwd" type="password" size="20" required="required"/>
...
<input type="submit" name="submit" value="Login"/>
</form>
<form method="post" action="<?php unset($_SESSION['login']) ?>">
<input type="button" name="logOut" value="LogOut" />
</form>
<?php
}
$istance->disconnect();
?>
,이 같은 기록을 보여줍니다 ... 하지만 : :(
여기 login.php입니다 , 그렇지 않습니다.
을 그래서 난 내 세션을 가정 자동으로 파괴되었다? 그런데 왜?
감사합니다, 나는 당신의 도움을 주셔서 감사합니다.
내가 t 말을 잊지 모자 php.ini라고는 "0"
감사
감사합니다 모두, 양식 작업
'form method = "post"action = " php unset ($ _ SESSION [ 'login']) .. 문제가 있습니다. PHP 인터프리터는 매번 세션 배열에 저장된 '로그인'값을 설정 해제하는 데 사용했습니다. 매우 고마워요! 화가났습니다! – Ivan
좋은 답변입니다. 답변 중 하나를 수락하고 원하는 답변을 수락해야합니다. . 이것은 사용자가 당신과 다른 사람을 도울 동기를 부여합니다;) – PiTheNumber
더 많은 평판, 아직 먼 길 앞서 있기 때문에 나는 지금 upvote 수 없습니다.하지만 어쨌든 고마워요! – Ivan