1
我写了下面的类,Cookie.php无法获得setcookie()函数的工作权
class Cookie extends Config{
//Variables declaration
private $cookieName;
private $cookieValue;
private $cookieExpireTime;
private $cookiePath;
private $cookieDomain;
private $cookieSecureThroughSSL;
private $cookieOnlyThroughHTTP;
//Constructor method, creates a new cookie with the assigned values
function __construct($presetCookieName,
$presetCookieValue,
$presetCookieExpireTime,
$presetCookiePath='/',
$presetCookieDomain = NULL,
$presetCookieSecureThroughSSL = false,
$presetCookieOnlyThroughHTTP = true){
$this->cookieName = $presetCookieName;
$this->cookieValue = $presetCookieValue;
$this->cookieExpireTime = $presetCookieExpireTime;
$this->cookiePath = $presetCookiePath;
$this->cookieDomain = $presetCookieDomain;
$this->cookieSecureThroughSSL = $presetCookieSecureThroughSSL;
$this->cookieOnlyThroughHTTP = $presetCookieOnlyThroughHTTP;
return $this->createCookie();
}
//Clean cookie from possible malicious HTML code, or mistakenly typed spaces
private function cleanCookieValue($value){
return htmlspecialchars(str_replace(' ', '', $value));
}
//Create a new cookie function
public function createCookie(){
return setcookie($this->cleanCookieValue($this->cookieName),
$this->cleanCookieValue($this->cookieValue),
$this->cleanCookieValue($this->cookieExpireTime),
$this->cleanCookieValue($this->cookiePath),
$this->cleanCookieValue($this->cookieDomain),
$this->cleanCookieValue($this->cookieSecureThroughSSL),
$this->cleanCookieValue($this->cookieOnlyThroughHTTP));
}
而下面的测试文件:
$cookie = new Cookie("testCookie", "Value", 3600, "/");
if(isset($_COOKIE['testCookie'])){
echo 'Success';
}
else{
echo 'Failed!';
}
而且我不断收到 '失败' 错误(在两次或更多次刷新之后)。 你们在这里看到问题吗?
顺便说一句,下面简单的例子完美的作品:
setcookie("token", "value", time()+60*60*24*100, "/");
if(isset($_COOKIE['token'])){
echo 'Token succeeded';
}
else{
echo 'Token failed!';
}
非常感谢!有效! – StackMaster