[英]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.