如何将会话值放入javascript中
How do I put a session value into a javascript?
本文关键字:javascript 会话 更新时间:2023-09-26
我有一个会话['password']。我想获得会话值并使用它来验证用户的输入。
if(opw != $_session['password']){
errors[errors.length] = "Sorry, password does not match.";
}
这是我一直在尝试的,但是如果我输入这个,他们不读取会话。忽略这些条件。我如何实际插入会话值到Javascript?
正如其他答案所建议的,当页面生成时,您必须将PHP会话值嵌入到javascript中。但是其他人忘记了一件重要的事情——你必须生成有效的javascript,否则你的整个脚本会因为语法错误而被杀死。
if (opw != <?php echo json_encode($_SESSION['password']) ?>) {
注意对json_encode的调用——它不仅仅是输出密码字符串。您必须确保密码成为一个VALID javascript字符串,json_encode可以确保这一点。
你的内联 JavaScript代码:
var session = <?php print $_SESSION['password']; ?>;
这是你想要的吗?
您需要将$_SESSION
包围在<?php echo ?>
中。这会导致PHP变量被打印到页面上的Javascript中。
if(opw != <?php echo $_SESSION['password']; ?> ){
然而,这是一种非常不安全的检查密码的方法,我建议不要使用它。如果不通过SSL传输,密码将以明文形式发送到每个页面视图。此外,它很可能被web浏览器缓存,任何可以访问计算机的人都可以读取它。
您必须手动回显错误:
// do all of your validation and add all of the errors to an array.
if($opw != $_session['password']){
$errors[] = "Sorry, password does not match.";
}
echo "<script type='"text/javascript'">var errors = ".
json_encode( $errors ).";</script>";
,后:
<script type="text/javascript">alert(errors)</script>
请注意PHP与JS完全不同。PHP是一种服务器端编码语言,这意味着它会在服务器呈现请求页面时执行。在该页面(其中包含一些HTML)也可以有JS。然而,JS不能像你想象的那样连接到PHP。为此,您可以使用Ajax或其他东西(但对于您试图实现的目标来说,这太复杂了)。
你可能想要这样的东西
// eg. index.php or something
...
<?php
session_start();
if ($_POST['password'] == 'somePassYouDefined') {
echo 'Authenticated';
}else if (isset($_POST['password'])) {
echo 'Couldn''t authenticate ...';
}else {
?>
<form method='post'>
<input type='password' name='password' placeholder='Password' />
<input type='submit' />
</form>
<?php
}
?>
ASP版本:
if(opw != '<%=Session("password")%>' ){
我加了引号,因为密码通常是字符串。
当用户运行此脚本时,下载到他们计算机上的html页面将以明文显示密码,即:
if(opw != 'BOBSPASSWORD' ){
所以,如果他们不知道或没有密码,他们可以查看/source并找到它。
相关文章:
- 通过javascript从会话中提取用户名
- 让会话值可用于JavaScript的好方法是什么
- 通过Javascript更改PHP会话变量
- 正在Javascript响应中设置会话变量
- 将会话变量与javascript变量进行比较
- C#/Javascript会话存储
- Javascript 会话存储变量未正确保存
- PHP/Javascript会话超时并发出警告
- 进度栏中的Javascript会话超时倒计时
- 如何在 JSP 页面中获取 JavaScript 会话属性
- JavaScript 会话何时过期?如何在会话结束时删除 Cookie
- 避免页面刷新并向 JavaScript 会话添加值
- 防止用户登录页面中的 PHP/Javascript 会话滥用
- 使用 S3 静态托管的 JavaScript 会话历史记录管理
- Javascript 会话超时,多个选项卡出现弹出警报
- 是否可以验证浏览器Javascript会话的完整性
- 如何在JavaScript会话cookie中存储变量
- 在Ruby on Rails中设置一个Javascript会话
- 如何将值从表单分配给Javascript会话变量
- Javascript会话cookie不能在IE9中写入