php - 动态更新页面上的文本以响应另一个窗口中另一个页面上的事件

标签 php javascript jquery cookies

我需要在用户登录后显示文本“欢迎用户名”,并在未登录或 cookie 过期时显示“登录|注册”链接。但是,我需要显示的文本位于index.php 上,用户身份验证在checklogin.php 上完成。

我不确定如何更新index.php上的文本(无需刷新/动态),因为身份验证事件是在另一个页面checklogin.php上执行的。请注意,登录页面使用“_blank”在新页面中打开。

我正在复制以下代码: 感谢您的宝贵时间。

index.php

<?php
if ($_COOKIE['cookieName']) { echo '<li>Welcome '. $_COOKIE['cookieName']; echo'|'; echo '<a href="logout.php" target="_blank">Logout</a> </li>';  }
else {echo' <li><a href="login.php" target="_blank" class="login">Login</a> | <a href="user_add.php" target="_blank" class="login">Register</a></li> '; }
?>

登录.php

<form action="checklogin.php" method="post" name="form" id="form">
    <input type="text" name="username" value = '' />       
    <input type="password" name="password" value = '' />
<input name="submit" type="submit" value="Log me in." class="button"/>

检查登录.php

$sql="SELECT * FROM users WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table rows
$count=mysql_num_rows($result);
if($count==1){
$cookie_name ="$cookiename";
$cookie_expire ="300";
setcookie($cookie_name,$cookie_value,time() + (300),"/", $cookie_domain);
header("location:$successfulLogin_url");
}

else{
header("location:$failedLogin_url");
}

最佳答案

我认为在这种情况下,您只能在 index.phpcheck cookie with javascript 上使用 setInterval() 。设置完成后,您可以使用用户登录信息更新 html(删除登录链接并显示欢迎消息)。

但是,我认为将用户发送到主站点位于后台的第二个窗口并不是一个好的做法。模态对话框或什至在“登录”单击时动态加载的登录表单会更好。但如果你确实需要这样做,间隔背景检查可能是唯一的方法。

关于php - 动态更新页面上的文本以响应另一个窗口中另一个页面上的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892604/

相关文章:

javascript - 如何使用 javascript 从 rgb 格式检索单个颜色分量(红色、蓝色、绿色)?

php - 如何获取最新的自动增量 ID 数组?

php - 无法在 google app engine 中为 php 应用程序配置更改对象通知

javascript - 为什么要传入一个函数?

javascript - Jquery Scroll 从用户在屏幕上的任何地方滚动一个像素

jquery - Raphael.js 如何在 Raphael.js 中使用 CSS 文件?

javascript - 货币数据表格式

javascript - 我如何修改脚本以打印 mysql 查询中的所有元素 - php mysql javascript ajax

javascript - 如何动态获取所选选项的值并将其存储到变量中?

javascript - 警告框关闭后如何将按钮的文本更改为 "No Sign Ups!"?