2010-06-09 48 views
1

我試圖使用下面的代碼,使<a href='http://www...com/.../footervote.php'>Vote</a>鏈接出現,如果用戶登錄和用戶出現在功能getEditorsList()。投票鏈接僅在瀏覽器刷新時纔會顯示。使功能激活的鏈接出現,而無需刷新瀏覽器

任何想法如何讓投票鏈接顯示而無需刷新瀏覽器?

由於提前,

約翰

的index.php:

<?php 

require_once "header.php"; 
//content 
include "login.php"; 
// more content 
require_once "footer.php"; 

?> 

在header.php中:

<?php 
error_reporting(0); 
session_start(); 
require_once ('db_connect.inc.php'); 
require_once ("function.inc.php"); 
$seed="0dAfghRqSTgx"; 
$domain = "...com"; 

      $editors = getEditorsList(); 
      foreach($editors as $editor) 
      { 
      $editorids[] = $editor['loginid']; 
      } 

      if(in_array($_SESSION['loginid'], $editorids)) 
      { 
      echo "<div class='footervote'><a href='http://www...com/.../footervote.php'>Vote</a></div>"; 
      } 


?> 

的login.php:

<?php 
if (!isLoggedIn()) 
{ 

    if (isset($_POST['cmdlogin'])) 
    { 

     if (checkLogin($_POST['username'], $_POST['password'])) 
     { 
      show_userbox(); 


     } else 
     { 
      echo "Incorrect Login information !"; 
      show_loginform(); 
     } 
    } else 
    { 

     show_loginform(); 
    } 

} else 
{ 

    show_userbox(); 

} 



?> 

回答

1

你在in_array查詢後設置了$ _SESSION ['loginid']嗎?如果首先渲染header.php,in_array返回false(儘管會話已經啓動,但login.php會在login.php中設置幾行)。

移動這樣的:

 if(in_array($_SESSION['loginid'], $editorids)) 
     { 
     echo "<div class='footervote'><a href='http://www...com/.../footervote.php'>Vote</a></div>"; 
     } 

從header.php中來的login.php這樣的:

else { 

    show_userbox(); 
    if (in_array... 
} 
1

如果該鏈接存在,但隱藏你使用一些DHTML(JQuery的/ Scriptaculous的)設置顯示/可見性屬性正確。

如果鏈接不存在於原始html(出於安全原因),那麼當登錄發生AJAX請求時,會返回一個javascript,將鏈接插入正確的位置(父元素)。