사용자를 로그인 할 수 있지만 다음 페이지 (memebers 영역)로 처리하는 동안 $_SESSION[email]
을 인쇄하는 데 필요한 사용자 정보를 표시 할 수 없습니다. 나는 무엇이 일어나고 있는지 확신하지 못한다. 아래는 로그인 코드이며 테스트 구성원은 페이지입니다.다른 페이지로 넘겨주는 문제가 있습니다.
로그인 페이지 :
session_start();
//also in a real app you would get the id dynamically
$sql = "select `email`, `password` from `accounts` where `email` = '$_POST[email]'";
$query = mysql_query($sql) or die ("Error: ".mysql_error());
while ($row = mysql_fetch_array($query)){
$email = $row['email'];
$secret = $row['password'];
//we will echo these into the proper fields
}
mysql_free_result($query);
// Process the POST variables
$email = $_POST["email"];
//Variables
$_SESSION["email"] = $_POST["email"];
$secret = $info['password'];
//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))
//if there is, it logs you in and directes you to the members page
{
$email = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT email, password FROM accounts WHERE email = '$email'")or die(mysql_error());
while($info = mysql_fetch_array($check))
{
if (@ $info['password'] != $pass)
{
}
else
{
header("Location: home.php");
}
}
}
//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted
// makes sure they filled it in
if(!$_POST['email'] | !$_POST['password']) {
die('You did not fill in a required field.');
}
// checks it against the database
if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT email,password FROM accounts WHERE email = '".$_POST['email']."'")or die(mysql_error());
//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
while($info = mysql_fetch_array($check))
//gives error if the password is wrong
if (@ $_POST['password'] != $info['password']) {
die('Incorrect password, please try again');
}
else
{
// if login is ok then we add a cookie
$_POST['email'] = stripslashes($_POST['email']);
$hour = time() + 3600;
setcookie(ID_my_site, $_POST['email'], $hour);
setcookie(Key_my_site, $_POST['password'], $hour);
//then redirect them to the members area
header("Location: home.php");
}
}
}
else
{
// if they are not logged in
?>
<?php
}
?>
home.php
Just realized the existing code gets in to the home.php file but will not echo anything. But as soon as you hit refresh the session is gone.
제안 사항은 사용자 이름이나 비밀번호가 틀린 경우 최종 사용자에게 알려주지 마십시오. 이것은 계좌 개통을 완화하는 데 도움이 될 수 있습니다. – Woot4Moo
오, 예, 회원 코드를 테스트하는 코드입니다. 나중에 수정 될 것입니다. 감사합니다 검보. – AAA
세션 ID는 어떻게 전송됩니까? 세션 ID에 관한 설정 (http://php.net/session.configuration) (예 : * session.use \ _cookies *, * session.use \ _only \ _cookies *, * session.use \ _trans \ _sid *). – Gumbo