PHP - 如何重定向到同一页面并更改DOM

时间:2016-05-16 19:19:26

标签: javascript php html

我有一个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。

我该如何解决这个问题? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

你无法使用该链接。你有2个解决这个问题的方法。

  1. 在php中使用SESSION[]数组来定义用户是否已插入目标页面,检查会话数组中的变量是否已设置,在页面上回显您的javascript以执行您想要的操作。

  2. 使用查询字符串告诉用户登录的目标页面以及目标页面中的php,回显您的javascript代码。

  3. 我认为你有更好的解决方案来解决你的问题。但是为了你的要求,这是我的提议。 :)

    <强>编辑:

    在你的php文件的第一行使用:

    session_start();
    

    当您的用户名和密码通过时,设置会话数组如下: $ _SESSION [&#34;用户名&#34;] = $用户名; 并且php脚本的结尾使用它如下:

    if(isset($_SESSION["userName"]))
        echo "<script>....your code that you want run when user login...</script>";