在php中使用LocalStorage变量

时间:2019-12-12 15:00:51

标签: javascript php

我在localtorage内部有一些价值。 例如,像这样的代码设置了localStorage:

<script>
    localStorage.setItem('jeton', 'toto');
    localStorage.setItem('cle', 'l1s7T4O7p79XDS9UwfG4YTBhkjoybjHBydC74VxgmXk=')
</script>

然后文件control.php要访问本地存储:

<?php
    $token2  = JWT::decode(
         $jeton, 
        $cle , // The signing key
        array('HS512') 
    );

问题在于$ jeton et $ cle没有价值

如何将localStorage.getItem('jeton')放入$ jeton中?

最诚挚的问候。

3 个答案:

答案 0 :(得分:0)

此问题的答案是,无法在PHP上访问localStorage,因为localStorage仅保留在客户端,并且没有数据传输到服务器端。

此外,您只能使用JavaScript获取数据,并且只能使用Ajax将其发送到服务器端。

另一种选择是使用cookies(如果它是一个简单的字符串),因为cookie是通过请求标头发送到服务器的,并且可以通过PHP进行访问

答案 1 :(得分:0)

Javascript在客户端运行,而PHP在服务器运行。他们无法在不同的环境中进行访问。

唯一方法是使用请求。您应该使用javascript中的php将值从ajax发送到jQuery

使用jQuery的示例:

$.ajax({
        url: "/file.php",
        type: "post",
        data: { name: localStorage.getItem('jeton') }
});

然后在file.php中,您将获得如下所示的值:

$name = $_POST['name'];

您可以阅读关于here的有关ajax的更多信息。

答案 2 :(得分:0)

因此在control.php内部:

<script>
//var jeton = localStorage.getItem('jeton');
//var cle = localStorage.getItem('cle');
$.ajax({
    url: "/control.php",
    type: "post",
    data: { jeton: localStorage.getItem('jeton') }
});
</script>

然后在php中:

$jeton = $_POST['jeton'];

但是当我执行此操作时,出现错误: 未定义的索引:第42行的C:\ inetpub \ wwwroot \ menergie-client \ control.php中的jeton。

好像未设置$ _POST ['jeton']。

是否可以将javascript和php放在同一文件中?