PHPを使用して@#$(いくつか説明する)のような特殊文字を含む変数をセッションとCookieに保存していますが、それらを取得すると、保存されたセッションとCookie変数に特殊文字が表示されません。よろしくお願いします.
//storing
$_SESSION['userid'] = $db_id;
$_SESSION['email'] = $db_email;
$_SESSION['password'] = $db_pass_str;
setcookie("id", $db_id, strtotime( '+30 days' ), "/", "", "", TRUE);
setcookie("email", $db_email, strtotime( '+30 days' ), "/", "", "", TRUE);
setcookie("pass", $db_pass_str, strtotime( '+30 days' ), "/", "", "", TRUE);
//Retreivel
if(isset($_SESSION["userid"]) && isset($_SESSION["email"]) && isset($_SESSION["password"]))
{
$log_id = preg_replace('#[^0-9]#', '', $_SESSION['userid']);
$log_email = preg_replace('#[^a-z0-9]#i', '', $_SESSION['email']);
$log_password = preg_replace('#[^a-z0-9]#i', '', $_SESSION['password']);
// Verify the user`enter code here`
}
else if(isset($_COOKIE["id"]) && isset($_COOKIE["email"]) && isset($_COOKIE["pass"]))
{
$_SESSION['userid'] = $_COOKIE['id'];
$_SESSION['email'] = $_COOKIE['email'];
$_SESSION['password'] = $_COOKIE['pass'];
}
セッション変数をエコーすると、保存した特殊文字が表示されません。例: test@example.com を保存しましたが、表示すると、testexample.com しか表示されません。