在我的文档标题中,我定义了一个电子邮件和密码。我想用户本地存储。但是我无法将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>
我知道我正在设置localstorage因为我正在检查chrome并且键和值都是正确的。我只是将密钥的值传递给我的php的define()时遇到了麻烦。
感谢您的帮助!
答案 0 :(得分:9)
您无法通过PHP访问localstorage。您需要编写一些将本地存储数据发送回脚本的javascript。
如果您使用的是jQuery,请执行以下操作。
<强> set_page.php 强>
<script>
localStorage.setItem('email', '<?php echo $_SESSION['email'];?>');
localStorage.setItem('password', '<?php echo $_SESSION['password'];?>');
</script>
<强> 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>
<强> login_response.php 强>
<?
$email = $_POST['email'];
$password = $_POST['password'];
//Handle your login here. Set session data, etc. Be sure to sanitize your inputs.
?>
请记住,人们可以编辑本地存储中的内容,因此永远不要相信用户输入。狡猾的入侵者也可以简单地开始将数据发布到您的login_response.php页面。
答案 1 :(得分:1)
如果您只需要保存电子邮件和密码(小数据),那么您可以使用cookie,您可以通过PHP和JavaScript访问。
如何在PHP中设置cookie:
setcookie("TestCookie", $value, time()+3600, "/", "example.com");
如何删除cookie:
setcookie("TestCookie", $value, time()-3600, "/", "example.com");
如何在PHP中获取cookie:
$_COOKIE["TestCookie"]
此示例中的最后一个参数:
setcookie("TestCookie", $value, time()+3600, "/", "example.com", 1);
表示只应通过客户端的安全HTTPS连接传输cookie。设置为TRUE时,仅在存在安全连接时才设置cookie。在服务器端,程序员只能在安全连接上发送这种cookie(例如关于$ _SERVER [“HTTPS”])。
答案 2 :(得分:0)
这是错误的,这样做
<script>
localStorage.setItem('email', "<?php echo $_SESSION['email'];?>");
localStorage.setItem('password', "<?php echo $_SESSION['password'];?>");
</script>