如何将会话值放入javascript中?
我有一个会话['password']。我希望获得会话值,并使用它根据用户的输入进行验证如何将会话值放入javascript中?,javascript,Javascript,我有一个会话['password']。我希望获得会话值,并使用它根据用户的输入进行验证 if(opw != $_session['password']){ errors[errors.length] = "Sorry, password does not match."; } 这是我一直在尝试的,但是如果我输入这个,他们不会阅读会话。忽略这些条件。如何将会话值实际插入Javascript?您的内联Javascript代码: var session = <?php print
if(opw != $_session['password']){
errors[errors.length] = "Sorry, password does not match.";
}
这是我一直在尝试的,但是如果我输入这个,他们不会阅读会话。忽略这些条件。如何将会话值实际插入Javascript?您的内联Javascript代码:
var session = <?php print $_SESSION['password']; ?>;
这就是您要寻找的吗?您需要在中围绕$\u会话。这将导致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
}
?>
正如其他答案所建议的,在生成页面时,必须将PHP会话值嵌入javascript。但是其他人已经忘记了一件重要的事情——您必须生成有效的javascript,否则您的整个脚本将被语法错误杀死
if (opw != <?php echo json_encode($_SESSION['password']) ?>) {
请注意对json_encode的调用——这还不足以输出密码字符串。您必须确保密码成为有效的javascript字符串,json_encode确保了这一点。ASP版本:
if(opw != '<%=Session("password")%>' ){
所以,如果他们不知道或没有密码,他们可以查看/查找密码。不要在会话中存储密码,只在登录时使用密码。在服务器上验证此操作。在会话中存储密码不是一个好主意!同意。我可以用一个js控制台进入那里,所有主要的浏览器都有它们,并获取密码。这需要是服务器端操作。@3跳过是什么意思?在页面上查看源代码。你看到$\u会话中的密码了吗?实际上我的函数跳过了那一行,但是我刚刚解决了它,看起来我搜索不够努力。对不起。这是我的答案。var oldpass=@3cross所以这个问题不是PHP标记的,而是Aspagh!我没有意识到它的ASP,只是做了一些测试,难怪它不能工作。波顿:我的无知。
if(opw != 'BOBSPASSWORD' ){