PHPアプリケーションに問題があります。
サインインとサインアップのページが2つあります。どちらのページも共通cookies
のクラスを使用しています。1つを除いて、すべてが正常に機能します。ページsetcookie()
上でのみ機能し/signin
ます(Cookie値はデータベースに送信され、Cookie'rwt'が表示されます)。
サインアップページでは、Cookieの値はデータベースに送信されますが、setcookie()
機能しません。
助けてください。
PSこれが唯一の問題です。すべてがローカルホストで機能しますが、本番ドメインでは機能しません。
PPS$DBH
はPDO変数であり、正しいデータベース情報が含まれています。
サインインページ
$cookie = new Cookies($DBH);
........
if ($signin->remember=="yes") {
$cookie->account_set($signin->user);
}
サインアップページ
$cookie = new Cookies($DBH);
.........
........
if ($signup->check_availability()) {
$signup->save();
$cookie->account_set($signup->user);
header("Location:/");
} else {
$msgText = "This username already exists";
echo "<div class=\"orangeMsg\">$msgText</div>";
}
クラスcookies
class Cookies
{
private $_DBH, $cookie_domain;
function __construct(PDO $DBH)
{
$this->_DBH=$DBH;
$this->cookie_domain=$_SERVER['HTTP_HOST'];
}
public function account_set($value)
{
$cookie_value=uniquestr();
// function from common.func.php
$this->_DBH->query("UPDATE accounts SET cookie='$cookie_value' WHERE user='$value'");
setcookie('rwt', $cookie_value, time()+60*60*24*7 , '/', $this->cookie_domain);
}
public function account_unset($value)
{
if (isset($_COOKIE['rwt'])) {
$cookie_value=$_COOKIE['rwt'];
setcookie("rwt", $cookie_value, time()-2592000, '/', $this->cookie_domain);
$this->_DBH->query("UPDATE accounts SET cookie=DEFAULT WHERE user='$value'");
}
}
}