我有一个HTML登录表单,当用户登录时,我想将该用户重定向到另一个页面并更改其上的一些DOM。这个重定向是通过验证用户和密码的PHP脚本完成的。 我有这个:
<?php
set_time_limit(0);
header('content-type: text/html; charset=utf-8');
header("access-control-allow-origin: *");
include 'connect.php';
$pass= $_POST['pass'];
$sql = "SELECT password FROM users WHERE password ='$pass'";
$result = mysql_query($sql);
$row=mysql_fetch_array($result);
if($row[0]!='') {
$query = mysql_query("SELECT user FROM users WHERE password ='$pass'");
$user = mysql_fetch_array($query, MYSQL_ASSOC);
$user=$user["user"];
echo "<script>window.location = 'http://localhost/public_html/as/index.php?pass=$pass';document.getElementById('log').innerHTML = 'LOGGED WITH: $user';$('#login-form').slideUp();document.getElementById('logout').style.display='';$('#log').unbind('click');</script>";
} else {
echo "<script>document.getElementById('text').value = ''; document.getElementById('text').placeholder = 'Type a valid key';</script>";
}
?>
这只是为了学习如何处理登录表单,所以不要介意安全问题。 我的问题在这里:
echo "<script>window.location = 'http://localhost/public_html/as/index.php?pass=$pass';document.getElementById('log').innerHTML = 'LOGGED WITH: $user';$('#login-form').slideUp();document.getElementById('logout').style.display='';$('#log').unbind('click');</script>";
此代码重定向到window.location页面,但不会更改HTML页面中的其他DOM。
我该如何解决这个问题? 提前谢谢!
答案 0 :(得分:1)
你无法使用该链接。你有2个解决这个问题的方法。
在php中使用SESSION[]
数组来定义用户是否已插入目标页面,检查会话数组中的变量是否已设置,在页面上回显您的javascript以执行您想要的操作。
使用查询字符串告诉用户登录的目标页面以及目标页面中的php,回显您的javascript代码。
我认为你有更好的解决方案来解决你的问题。但是为了你的要求,这是我的提议。 :)
<强>编辑:强>
在你的php文件的第一行使用:
session_start();
当您的用户名和密码通过时,设置会话数组如下: $ _SESSION [&#34;用户名&#34;] = $用户名; 并且php脚本的结尾使用它如下:
if(isset($_SESSION["userName"]))
echo "<script>....your code that you want run when user login...</script>";