사용자가 로그인하면 "환영 사용자 이름"텍스트를 표시하고 로그인하지 않았거나 로그인하지 않으면 "로그인 | 등록"링크를 표시해야합니다 쿠키가 만료되었습니다. 그러나 표시해야하는 텍스트는 index.php에 있으며 사용자 인증은 checklogin.php에서 수행됩니다.다른 창에있는 다른 페이지의 이벤트에 응답하여 동적으로 페이지의 텍스트를 업데이트하십시오.
인증을위한 이벤트가 다른 페이지 checklogin.php에서 수행되므로 index.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> '; }
?>
login.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"/>
checklogin.php 당신은 index.php
및 check cookie with javascript에 setInterval()
을 사용할 수 있습니다이 경우 생각
$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.php'가'checklogin.php'가 들어있는 윈도우를 열면'window.opener' 속성을 사용하여 메인 윈도우에 접근 할 수 있다고 가정합니다. 그래도 실제로 어떤 이벤트를 처리할지 말하지 않았습니다. –
로그인에 성공하면 쿠키가 설정됩니다. 이 순간 index.php의 텍스트를 변경해야합니다. 또한 로그인 페이지는 실제로 창 대신 새 페이지 '_blank'입니다. – learner