2016-05-16 59 views
1

我有一个HTML登录表单,当用户登录时,我想将该用户重定向到另一个页面并更改其上的一些DOM。此重定向是通过PHP验证用户和密码的脚本。 我有这样的:如何重定向到同一页面,并更改DOM的

<?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的网页,但不改变其他DOM在HTML页面。

我该如何解决这个问题? 在此先感谢!

+0

JavaScript只能更改它所运行的页面的DOM。如果您想要更改其他页面的DOM,请在执行重定向或使用会话Cookie时传递URL中的相关数据。 – Chris

+0

“这只是为了学习如何处理登录表单,所以不要介意安全问题。”但是你需要了解安全性!如果我的密码恰好是“OR 1 = 1; - ”你的时间不好! – Dale

+0

我的问题是:如何在登录后重定向到同一页面时更改某些DOM? – SLFl

回答

1

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

  1. 使用SESSION[]阵列在PHP中定义用户和目标页loged,请检查您的会话数组变量被设置,回声页面上的JavaScript做你想做什么。

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

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

编辑:

在你的PHP文件中使用的第一行

session_start(); 

当你的用户名和密码是传球,设置会话阵列像这样: $ _SESSION [“userName的“] = $用户名; 和php脚本的结尾使用它是这样的:

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

感谢您的建议@barzegari,但事情是: 主页是[http://localhost/public_html/as/index.php],当用户登录时获取[http:// localhost/public_html/as/index.php?pass = $ pass] 因此,这两个页面的javascript代码是相同的,唯一改变的地方是在导航栏中:'LOGIN'消失并显示用户名。 这个DOM改变了作品,但是当新的页面被完全加载时,它看起来像主页:/ – SLFl

+0

如果我明白,你将页面重定向到它自己?这是真的吗? –

+0

是的,因为我有一个图表显示数据取决于用户登录:) – SLFl

相关问题