이 주제에 대한 많은 게시물을 이미 검토했지만 코드가 쿠키를 설정하는 것 같지 않습니다.ajax 호출에서 PHP로 쿠키 설정
$("#loginForm").submit(function(event) {
event.preventDefault();
var uid = document.getElementById("userLogin").value;
var pid = document.getElementById("passLogin").value;
var url = "../_scripts/loginScript.php";
$.ajax({
type: "POST",
url: url,
datatype : "script",
data: {user: uid, pass: pid},
success: function(msg) {
if(strcmp(msg,"passwords are equal"))
location.reload();
else
$('#error1').html(msg).show(100);
}
});
});
내가 다른 JS 라이브러리에 strcmp()
기능을 썼다 :
나의 초기 Ajax 호출이 같은 것입니다. 내가 그것을 테스트 할 때
<?php
if($hashPass == $pass)
{
echo "passwords are equal";
$cookieInfo = $_POST['user'].",".$clearance;
setcookie("loggedIn", $cookeInfo,0,"/");
exit;
}
else
{
echo "Invalid password";
exit;
}
?>
에서, "암호가 동일한"메시지가 다시 와서 페이지가 다시로드됩니다 ...하지만 :
물건을 해싱의 무리를하고 소금에 절인 후 내 PHP는 같이 보입니다 내 쿠키를 확인하면 내 쿠키가 설정되지 않습니다.
내가 뭘 잘못하고 있는지 잘 모르겠어 ... 전에 PHP 파일에 직접 제출하는 양식을 사용하고 벌금을 부과 할 때이 코드를 사용했지만 지금은 아약스를 사용하고 있습니다. 쿠키가 설정되지 않는 것 같습니다.
header("Location: ...");
전화를 걸어서 쿠키를 설정하지 않았기 때문입니까?
와우 나는 위선적 인 말을 믿지 않았다. 그 점을 지적 해 주셔서 감사합니다. echo 명령문을 setcookie 아래의 줄로 이동하는 것은 의미가 없습니다. – nyduss
예,'setcookie()'아래에서 에코를 움직일 수 있습니다. 그러면 모든 헤더가 데이터 전에 전송됩니다. –
ok echo를 setcookie() 호출 아래로 옮겼습니다. 이제 도움이되었습니다. 지금 가지고있는 유일한 문제는 내 strcmp() 함수가 더 이상 작동하지 않고 페이지가 다시로드되지 않는다는 것입니다 ... 그것에 대한 제안이 있습니까? msg의 데이터 유형을 변경하는 방법에 쿠키를 설정하는지 알고 있습니까? – nyduss