![](/img/trans.png)
[英]PHP picture upload works on localhost but not on GoDaddy server
[英]php function verify token works in localhost but not on GoDaddy server
我有 php function 应该验证是否有令牌,如果有,显示一些信息。 当我在本地主机中使用 xampp 时,function 工作正常。 当我在服务器上的 prod 中执行此操作时,它给了我一个“令牌未定义”错误,即使我可以在开发工具中看到该令牌。 什么可能导致错误? 我的 php function
public function viewCompanies()
{
if (isset($GLOBALS['headers']['Authorization'])) {
print_r($GLOBALS['headers']['Authorization']);
if ($id = $this->VerifyUserToken($GLOBALS['headers']['Authorization'], $_SERVER['REMOTE_ADDR'])) {
$companies = $this->currentModel->viewCompanies();
if ($companies) {
echo json_encode($companies);
} else {
echo json_encode(['success' => false]);
}
}
else {
echo json_encode(['success' => false, 'error' => "invalid token"]);
}
} else {
echo json_encode(['success' => false, 'error' => "token undefined"]);
}
}
verifyUserToken function
public function verifyUserToken($token, $ip) {
$db = new Database();
$db->query('SELECT * FROM auth WHERE token = :token AND expiry >now()');
$db->bind(':token', $token);
//check database if token exists and is not expired
if($res = $db->single()) {
// checks if token matches to ip address
// returns user or contact id if verified else returns false
if($res->token === $token && $res->ip === $ip) {
$this->cleanTokens();
if($res->user_id >0) {
return $res->user_id;
}
//
} else {
return false;
}
} else {
return false;
}
}
我检查了数据库,令牌显然在那里
我在 Postman 上测试了 function,我得到了相同的令牌未定义错误。 如果我应该添加任何其他信息,请告诉我。 我不知道如何调试这个。
到底。 是 goDaddy 拯救了这一天。 在我打开一张票并与他们交谈后,他们向我发送了以下消息:关于您看到的问题,即自定义 HTTP 标头被从您的站点上的请求中剥离出来,您遇到的问题实际上是由于 CGI处理程序 Apache 配置为默认在 cPanel 上使用。 出于安全原因,CGI 处理程序会删除未在 Apache 配置中显式注册的自定义 header 条目。 我们可以通过将站点使用的 PHP 处理程序从 CGI 更改为 PHP-FPM 来进一步验证这一点。 如果您...请随时通过电话或实时聊天联系我们的支持团队。
真挚地,
一切都很好,结局很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.