2012-03-27 9 views
1

Ich muss den Text "Willkommen Benutzername" anzeigen, sobald ein Benutzer angemeldet ist, und "Login" -Link anzeigen, wenn nicht angemeldet oder wenn Cookie abgelaufen. Der Text, den ich anzeigen muss, ist jedoch in index.php und die Benutzerauthentifizierung erfolgt über checklogin.php.Text auf einer Seite dynamisch als Reaktion auf ein Ereignis auf einer anderen Seite in einem anderen Fenster aktualisieren

Ich bin mir nicht sicher, wie man den Text auf index.php (ohne Aktualisierung/dynamisch) aktualisiert, da das Ereignis für die Authentifizierung auf einer anderen Seite checklogin.php durchgeführt wird. Beachten Sie, dass die Anmeldeseite mit '_blank' auf der neuen Seite geöffnet wird.

Ich gebe den folgenden Code wieder: danke für Ihre Zeit.

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

$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"); 
} 
+2

Angenommen, 'index.php' öffnet das Fenster, das' checklogin.php' enthält, dann können Sie die Eigenschaft 'window.opener' verwenden, um auf das Hauptfenster zuzugreifen. Sie haben jedoch nicht wirklich gesagt, welches Ereignis Sie behandeln möchten. –

+0

Bei erfolgreicher Anmeldung wird der Cookie gesetzt. Ich muss den Text in der index.php in diesem Moment ändern. Außerdem ist die Anmeldeseite tatsächlich eine neue Seite '_blank' anstelle eines Fensters. – learner

Antwort

0

ich in diesem Fall denken Sie nur setInterval() auf index.php und check cookie with javascript verwenden können. Sobald es eingestellt ist, können Sie HTML mit dem Login des Benutzers aktualisieren (Login-Link entfernen und Willkommensnachricht anzeigen).

Ich denke jedoch, es ist keine gute Praxis, Benutzer zu zweiten Fenster mit Haupt-Website im Hintergrund zu senden. Modaler Dialog oder sogar dynamisch geladenes Login-Formular bei "Login" Klick wäre besser. Aber wenn Sie es wirklich auf diese Weise tun müssen, kann die Intervall-Hintergrundprüfung nur eine Möglichkeit sein.

Verwandte Themen