세션 처리로 빈 쿠키 문제 해결
제시된 PHP 함수에서 사용자 확인 프로세스에는 '사용자 이름'과 '사용자 이름' 모두에 대한 쿠키 설정이 포함됩니다. username2'는 setcookie()를 사용합니다. 그러나 'username2' 쿠키를 검색하면 해당 쿠키는 비어 있습니다. 이 문제는 다양한 이유로 발생할 수 있습니다.
불완전한 쿠키 구성
전체 setcookie() 구성에 필수 매개변수가 포함되어 있는지 확인하세요.
출력 수정
PHP 매뉴얼의 경고에 주의하세요: "쿠키는 스크립트의 출력 전에 전송되어야 합니다." 헤더가 이미 전송되는 것을 방지하려면 쿠키를 설정하기 전에 에코를 피하세요. 주어진 코드에서 echo $_COOKIE['username2']; 출구(); header("Location: ../new.php") 앞에 위치해야 합니다. line.
함수 최적화 검증
validateUser() 함수는 논리나 데이터베이스 쿼리 없이 세션을 설정하고 리디렉션만 수행하는 데 사용해야 합니다. 사용자 확인을 위한 별도의 함수와 쿠키 설정을 위한 함수를 만드는 것을 고려해보세요.
예
validateUser() 함수 및 쿠키 설정의 최적화된 버전:
// User validation function function validateUser($username) { session_regenerate_id (); $_SESSION['valid'] = 1; $_SESSION['username'] = $username; } // Cookie setting function function setCookies($username, $password) { setcookie('username', $username, time() + 60 * 60 * 24 * 365, '/'); setcookie('password', $password, time() + 60 * 60 * 24 * 365, '/'); } // Function call if(mysql_num_rows($queryreg) != 0){ $row = mysql_fetch_array($queryreg,MYSQL_ASSOC); $hash = hash('sha256', $row['salt'] . hash('sha256', $password)); if($hash == $row['password']) { if($row['confirm'] == 1){ setCookies($username, $password); validateUser($username); } } }
위 내용은 PHP에서 setcookie()를 사용하여 설정했는데도 'username2' 쿠키가 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!