在我的文档的标题中,我正在定义一个电子邮件和密码.我想用户本地存储.但是我无法将localstorage中的项目加载到我的php变量中.
这是我的代码.
<script>
localStorage.setItem('email', '<?php echo $_SESSION['email'];?>');
localStorage.setItem('password', '<?php echo $_SESSION['password'];?>');
</script>
<?php
$user_email = "<script>document.write(localStorage.getItem('email'));</script>";
$password = "<script>document.write(localStorage.getItem('password'));</script>";
define('XOAUTH_USERNAME', $user_email);
define('XOAUTH_PASSWORD', $password);
?>
<html>
<head></head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
我知道我正在设置localstorage因为我正在检查chrome并且键和值都是正确的.我只是将密钥的值传递给我的php的define()时遇到了麻烦.
谢谢您的帮助!
Gam*_*mer 10
您无法通过PHP访问localstorage.您需要编写一些将localstorage数据发送回脚本的javascript.
如果您使用的是jQuery,请执行以下操作.
set_page.php
<script>
localStorage.setItem('email', '<?php echo $_SESSION['email'];?>');
localStorage.setItem('password', '<?php echo $_SESSION['password'];?>');
</script>
Run Code Online (Sandbox Code Playgroud)
login_page.php
<script>
var email = localStorage.getItem('email'), password = localStorage.getItem('password');
$.POST('login_response.php', {'email':email,'password':password}, function(data){
alert('Login Successful. Redirect to a different page or something here.');
}
</script>
Run Code Online (Sandbox Code Playgroud)
login_response.php
<?
$email = $_POST['email'];
$password = $_POST['password'];
//Handle your login here. Set session data, etc. Be sure to sanitize your inputs.
?>
Run Code Online (Sandbox Code Playgroud)
请记住,人们可以编辑本地存储中的内容,因此永远不要相信用户输入.狡猾的入侵者也可以简单地开始将数据发布到您的login_response.php页面.
如果您只需要保存电子邮件和密码(小数据),那么您可以使用 cookie,您可以通过 PHP 和 JavaScript 访问 cookie。
如何在 PHP 中设置 cookie:
setcookie("TestCookie", $value, time()+3600, "/", "example.com");
Run Code Online (Sandbox Code Playgroud)
如何删除cookie:
setcookie("TestCookie", $value, time()-3600, "/", "example.com");
Run Code Online (Sandbox Code Playgroud)
如何在 PHP 中获取 cookie:
$_COOKIE["TestCookie"]
Run Code Online (Sandbox Code Playgroud)
本例中的最后一个参数:
setcookie("TestCookie", $value, time()+3600, "/", "example.com", 1);
Run Code Online (Sandbox Code Playgroud)
指示 cookie 只能通过安全 HTTPS 连接从客户端传输。当设置为 TRUE 时,仅当存在安全连接时才会设置 cookie。在服务器端,程序员只能在安全连接上发送这种 cookie(例如,相对于 $_SERVER["HTTPS"])。
来源: https: //secure.php.net/manual/en/function.setcookie.php
这是错误的,这样做
<script>
localStorage.setItem('email', "<?php echo $_SESSION['email'];?>");
localStorage.setItem('password', "<?php echo $_SESSION['password'];?>");
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49445 次 |
| 最近记录: |