如何将本地存储从 JS 发送到 PHP 文件(?)
Posted
技术标签:
【中文标题】如何将本地存储从 JS 发送到 PHP 文件(?)【英文标题】:How to send localStorage from JS to PHP file (?) 【发布时间】:2016-07-21 23:51:49 【问题描述】:我正在尝试将 localStorage 内容移动到 php 电子邮件文件。 localStorage 是用 javascript 创建的。 thankyou.php 可以使用 JS/jQuery 但电子邮件文件(admin-new-order.php 不能使用 JS 或 jQuery...
这是我正在使用的代码。它无法正常工作:
thankyou.php 上的 JS(第 1 页):
<script>
var value = localStorage.totallocal;
jQuery.post(
"admin-new-order.php",
myKey: value,
function(data)
var value = localStorage.totallocal;
).fail(function()
alert("error");
);
</script>
admin-new-order.php 上的 PHP(2第 2 页/发送到电子邮件收件箱)。从 thankyou.php 中检索值:
<p><?php $value = $_POST["value"]; printf("%u",$value); ?></p>
电子邮件文件显示:0 但来自 localStorage 的值应始终介于 0.01 - 10000.00 之间。我不认为它正在接收 localStorage ......但我不知道我做错了什么。我是 php 新手。
提前致谢!
【问题讨论】:
感谢您的编辑@Santosh 控制台有什么错误吗? 没有错误。在 Chrome 控制台中,它显示 localStorage。不幸的是,它没有携带到 admin-new-order.php(可能是因为它是在电子邮件收件箱中收到的)?再次感谢@SantoshRamKunjir POST 变量是字符串,而不是数字,这对printf
有影响吗?
【参考方案1】:
您无法通过 PHP 访问 localstorage。您需要编写一些 javascript 将 localstorage 数据发送回脚本。
如果您使用的是 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
<?php
$email = $_POST['email'];
$password = $_POST['password'];
//Handle your login here. Set session data, etc. Be sure to sanitize your inputs.
?>
【讨论】:
【参考方案2】:应该是$_POST["myKey"]
,而不是$_POST["value"]
<p><?php $value = $_POST["myKey"]; printf("%u",$value); ?></p>
【讨论】:
谢谢@JagsSparrow。不幸的是,它仍然不起作用。以上是关于如何将本地存储从 JS 发送到 PHP 文件(?)的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 Heroku 上托管的 Node.js 应用程序发送到托管在完全独立(Cpanel)服务器上的 PHP 文件?