0
좋아, login
메서드에 쿠키가 설정되어있는 authentication
이라는 PHP 클래스가 있는데 사람이 성공적으로 로그인 한 경우 동일한 메서드의 내 스크립트 login
나는 적절한 URL에 php의 header
을 사용하여 사용자를 전달하고있다. 그러나 어떤 이유로 쿠키가 설정되지 않습니다. 이제PHP로 쿠키를 설정하려고 시도했지만 설정하지 않음
<?php
require '../../config.php';
require base .'lib/helpers/bao.php';
class authentication extends bao {
/*
Login
*/
public function login($email, $pass, $fUrl = null) {
// set the forwarding url
$forward = '/login.php';
// check for empty values
if(!empty($email) && !empty($pass)) {
// set params for binding and run query
$params = array(':email' => $email);
$runQuery = parent::query("SELECT * FROM users WHERE email = :email", $params);
// check to see if an account was found
if(parent::numRows($runQuery) > 0) {
// place result into array for use
$result = parent::fetch($runQuery);
// check to see if passwords match
if($result['pword'] === sha1($result['salt'] . $pass)) {
// update login in time in the database
$params = array(':login' => expLogin, ':id' => $result['id']);
$updateLoggedin = parent::query("UPDATE users SET login = :login WHERE id = :id", $params);
// Set a bunch of cookies
setcookie("userId", $result['id'], expLogin, '/');
$emailCookie = setcookie("userEmail", $result['email'], expLogin, '/');
setcookie("userNotifications", base64_encode($result['email']), expLogin, '/');
setcookie("userType", $result['type'], expLogin, '/');
setcookie("userStatus", $result['status'], expLogin, '/');
setcookie("userLogin", $result['login'], expLogin, '/');
// set forwarding url
switch($result['type']) {
case 'obl':
$forward = $fUrl ? $fUrl : '/admin/';
break;
case 'broker':
$forward = $fUrl ? $fUrl : '/admin/';
break;
case 'borrower':
$forward = $fUrl ? $fUrl : '/admin/';
break;
}
$processMeta = 'Congrats you are logged in!';
} else {
$processMeta = 'Your passwords did not match, please try again!';
}
} else {
$processMeta = 'I\'m sorry we could not locate your account';
}
} else {
$processMeta = 'You did not enter one of the required fields please try again!';
}
// set process message to session
$_SESSION['processMeta'] = $processMeta;
// forward onto next url
header("Location: ". $forward);
}
}
?>
나는이 방법을 내가 절차 적 코드를 프로그래밍하고되기 전에 유일한 차이점은 지금은에 같은 코드를 삽입 한 것을 그러나 여러 번 사용했습니다 : 여기
클래스authentication
입니다 수업. 대부분의 경우 동일한 구문을 사용하여 클래스에 넣어지면 쿠키가 제대로 설정되지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다!
감사
fark, 오른쪽, 웬일인지 그 이유를 잊어 버렸습니다. 당신은 유닉스 타임 스탬프를 사용해야하고 iso8601 형식을 사용하고있었습니다! 감사!!! –