如何在javascript文件中访问php会话

How to access php session in javascript file?

本文关键字:访问 php 会话 文件 javascript      更新时间:2023-09-26

下面是我的代码:

索引.php文件

索引.php文件的 JavaScript

function Result()
{
  var marks = 55;
  document.getElementById("hdnmarks").innerHTML= marks; 
  window.location = "results.php";
}

索引的 HTML .php

<input type="hidden" name="hdnmarks" id="hdnmarks">

描述:我有一个包含网址localhost/index.php的网页。在 index.php 中,我有一个提交按钮,单击它时我调用Result javascript 方法,该方法设置 marks = 55 并将其放入隐藏字段中并带我进入results.php页面。

results.php中,我必须在数据库中插入标记的值。但是,我应该如何访问这些标记,因为它们存储在文件的隐藏字段中index.php

我想在会话中放置标记,但是我应该如何在javascript函数中维护PHP会话?我的意思是,在转到results.php之前,我应该在何时何地在会话中打分?

您可以像<?php session_start();?>一样在页面上启动会话,并像这样为会话创建隐藏字段

<input type="hidden" name="mysession" id="mysession">

并修改JavaScript函数,如下所示

function Result(){
  var marks = 55;
  document.getElementById("mysession").innerHTML= <?php echo session_id();?>; 
  document.getElementById("hdnmarks").innerHTML= marks; 
  document.getElementById('Form').submit();
}

使用表单名称更改表单名称

你的问题有两个部分

1)

但是我应该如何访问这些标记,因为它们存储在隐藏中 索引字段.php文件?

标准方法是使用表单

<form action="index.php" method=POST>
  <input type="hidden" name="hdnmarks" id="hdnmarks">
</form>

使用按钮或 JavaScript 提交该表单以发布要索引的数据.php

在索引中.php

<?php
$marks = $_POST['hdnmarks'];
?>

2)

的意思是我应该在移动之前在会话中标记的地点和时间 到结果.php? 您必须启动会话并创建一个会话变量

索引.php

<?php
session_start();
$marks = $_POST['hdnmarks'];
$_SESSION['marks'] = $marks;
?>

结果.php

<?php session_start() ?>
...
//javascript code
var marks = <?php echo $_SESSION['marks'] ?>
...

注意:这不是将数据从一个传递到另一个的好方法,也不是将数据从php传递到javascript的好方法,如果您使用的是数据库,会话在这方面也没有用处

只是Javascript使用这个:

function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}
getCookie('PHPSESSID');

我们可以从javascript访问php $_SESSION,前提是访问会话的javascript代码包含在.php文件中。这种JavaScript代码称为内联JavaScript。

index.php

<html>
  <script>
     const userId = '<?php echo $_SESSION["user_id"]; ?>'
     console.log('The user id is', userId)
  </script>
  <script src="other.js"></script>
</html>

other.js

console.log('Once again, the user id is', userId)

将生成的 html 将具有已设置用户 ID 的脚本。可以从内联脚本之后的其他脚本访问该变量。