2012-03-08 88 views
-5

在點擊超級鏈接之後,如果用戶登錄後再進入另一個頁面,需要檢查它。點擊超級鏈接調用php

例如:

if(isset($_POST[...]) 
    foo1(..); 
else 
    foo2(..); 

謝謝

+2

PHP在服務器上工作,超鏈接在客戶端瀏覽器 – zerkms 2012-03-08 19:55:46

+0

@zerkms我知道,可以使用什麼替代方法? – user1203861 2012-03-08 19:58:11

回答

0

你將不得不建立後張貼到一個網頁,其中包括PHP函數。這完全是因爲PHP運行在服務器而不是客戶端。

2

檢查在其他網頁...

比如,你要訪問: yoursite.com/restrcited.php

鏈接到該網頁,當用戶訪問,如果他登錄 檢查:

session_start(); 
if(isset($_SESSION['is_logged']) and $_SESSION['is_logged'])){ 
/* show the content here*/ 
}else{ 
header('Location: /login.php?err='); 
} 

如果用戶登錄,他會看到的內容,否則,他將被重定向到登錄... 不能使用客戶端(出於安全原因做以另一種方式)

2

這聽起來像你想要的東西是這樣的:

  1. 用戶點擊一個鏈接
  2. PHP檢查,看他們是否在
  3. 如果是要登錄,它引導他們到一個特定的頁。 (如果沒有,到不同的頁面?)

所以纔有鏈接帶他們到一個PHP頁面,爲所欲爲,你需要做的,看看他們在登錄後,則:

if($loggedin) { 
    header(' Location:http://yoursite.net/page_you_requested.html '); 
} 
else { 
    header(' Location:http://yoursite.net/login_page.html '); 
}  
0

您描述的內容需要在服務器上檢查登錄狀態,然後重定向到其他頁面的php腳本。我會建議一個更好的替代方法。

創建一個php「安全」腳本。它所做的只是檢查登錄狀態。如果您已登錄,請繼續執行;如果你不是,die()或重定向到錯誤/登錄頁面。

在需要登錄的所有頁面中,包含安全腳本。然後像往常一樣鏈接到這些頁面。如果用戶登錄您的鏈接按預期工作,並且不需要額外的技巧導航。一定要爲用戶提供一個登錄頁面,以便他們在瀏覽您的網站時擁有良好的體驗。

1

你可以做一些樣的招用jQuery,也簡單的JavaScript,看看...

嘗試定義這個變量會在用戶獲取記錄:

//method that validates user and password from user and returns true or false 
if(validateUserExample($user, $pwd)){ 
    //if the data of the user is correct (user and password) set the session of user logged 
    session_start(); 
    $_SESSION['user_logged'] = true; 
} 

1 - 創建一個名爲「myfile」的php文件。PHP「:

<?php 
    session_start(); 

    //if there is no user logged redirect to index. 
    if($_SESSION['user_logged'] != true) 
    { 
     header("location: index.php"); 
    } 
?> 

2 - 設置你的輸入按鈕

<input type="button" id="btn" name="btn" value="Click Me" /> 

3 - 在你的js文件如下:

$(document).ready(function(){ 
    $('#btn').click(function(){ 
     location.href = 'myfile.php'; 
    }); 
}); 

當你點擊 」BTN「 會重定向到myfile.php,這將看看如果用戶登錄或不,然後你得到你所期望的(我認爲)

希望這會有所幫助: - )

PS。請仔細閱讀並理解服務器端和客戶端,以便更好地理解。