소량의 정보는 유감이지만 그 밖의 정보는 많지 않습니다. 문제는 로그인 기능을 확장하여 로그인 상태 유지 옵션을 추가하려고 할 때 쿠키가 설정되지 않는다는 것입니다. 세션 자체가 작동하므로 (공백 문자가 없거나 무언가가 없습니다). 오류 메시지가 나타나지 않고 쿠키가 설정되지 않습니다 (오페라/파이어 폭스로 테스트 됨). 1 시간 이상 의아해 당하고 난 후에, 나는 여기에서 그것에게 묻기로 결정했다. 아래는 로그인 기능입니다. 아래쪽으로 가면 어떻게 불리는 지 알 수 있습니다. 쿠키의 암호는 걱정하지 마십시오. 해쉬입니다. 나는 코드가 실제로 실행되는지 테스트했다. (setcookie 앞에 echo 'abc'를 놓았다.) 그런 경우이다.쿠키가 설정되지 않습니다. 세션이 작동합니다.
public function login($password,$stayloggedin) {
if (is_null($this->id)) trigger_error ("user::login(): Attempt to login an user object that does not have its ID property set.", E_USER_ERROR);
if ($this->compare_password($password))
{
if ($stayloggedin)
{
setcookie("userid", $this->id, time()+3600);
setcookie("userid", $this->password, time()+3600);
}
session_start();
$_SESSION['user_id'] = $this->id;
$_SESSION['user_name'] = $this->name;
$_SESSION['user_nummer'] = $this->user_nummer;
return true;
}
else
{
return false; //wrong password
}
}
위의 함수가 호출되는 방식입니다.
<?php
header('Content-type: text/html; charset=UTF-8');
require_once 'required_script.php';
if (isset($_GET['login']))
{
require_once CLASS_PATH.'user.class.php';
$user_logging_in=new user();
$user_logging_in->load_from_name($_POST['user_name']);
if (isset($user_logging_in->id))
{
if ($user_logging_in->login($_POST['user_pass'],$_POST['remember_me']=='true'))
{
echo '1';
}
else
{
echo '0';
}
}
else
{
echo '2';
}
die;
}
고마워요.
'setcookie'에 다음 두 매개 변수를 사용하려고합니다. – thewebguy
감사합니다. 실제로이 문제가 해결되었습니다. 이유를 설명해 주시겠습니까? 그리고 적절한 답변을 드릴 수 있도록 답변을 다시 보내주십시오. – Boelensman1
이제 나는 그 이유를 이해합니다. 로그인은/backend에서 일어나고 쿠키 검사는 일반 디렉토리에서 일어납니다. 따라서 쿠키는/backend 용으로 만 설정되었습니다. 고마워요 :) – Boelensman1