2009-10-08 181 views
2

我在做一個使用PHP進行求職的網絡應用程序。檢查用戶是否登錄

我有一個查詢;當用戶沒有登錄並想通過點擊「應用」按鈕申請工作時,他重定向到登錄頁面。如果用戶點擊時登錄,他應該直接進入應用程序頁面。我不知道如何實現這一點。

我很困惑,因爲我是PHP新手。

+0

你是不是一般的PHP或網頁開發新手? – halocursed 2009-10-08 10:35:26

回答

0

你能,當用戶登錄時,分配$_Session變量設置爲用戶啓動?即在認證之後,你設置了$_SESSION['user']變量。

$_SESSION['user']='admin'; 

所以,如果你想檢查是否在此之後,用戶已經登錄,只要使用此:

if(isset($_SESSION['user'])) 
{ 
    // user is login, direct to the job page 
} 

else 
{ 
    // no login, go to the login page 
} 
+1

不要忘記:<?php session_start(); ?> //它應該放在頁面頂部的其他內容之前,否則你會碰到錯誤。 – jerjer 2009-10-08 10:57:26

+0

BTW,session_start();是可選的,如果session.auto_start在php配置(php.ini) – jerjer 2009-10-08 11:03:23

0

在設置Cookie會話的每個頁面到它們的頁面只是:

$expire=time()+60*60*24*30; 
setcookie("wherewasi","",time() - 1000); 
setcookie("wherewasi",$_SERVER['REQUEST_URI'], $expire); 

然後登錄後,將用戶重定向:

$loc = ($_COOKIE['wherewasi'])?$_COOKIE['wherewasi']:'index.php'; 
header("location: ".$loc); 
exit(); 
1

你可以存儲在名爲「登錄」會話的值,並將其設置當用戶登錄這也可以用來重新定向用戶,如果他們沒有被登錄:

<?php 

    // check that the session variable does exist 
    // check that the user 'LoggedIn' has been set to 1 (true) 
    if (!isset($_SESSION['LoggedIn']) && $_SESSION['LoggedIn'] != 1) 
    { 
     // redirect to login page for user to authenticate themselves. 
     // pass page location (with parameters if necessary) to redirect 
     // the user on successful login. 
     header("Location: Login.php?redir=ApplyForJob.php?JobID=12345"); 
    } 
    else 
    { 
     // user is logged in 
     // redirect the user directly to the apply for job page. 
     header("Location: ApplyForJob.php?JobID=12345"); 
    } 

?> 
1

那麼,當用戶點擊應用程序中的「應用」將用戶重定向到(你可以檢查用戶是否會話存在與否)登錄頁面,如果他沒有登錄,請記住,當你重定向頁面發送當前頁面的參數到您的登錄頁面的URL,這樣當他在用戶登錄可以重定向到前一頁,然後點擊申請特定作業.....
這是如何邏輯的工作,如果你想要的PHP,MySQL解釋它需要一些時間讓你理解,因爲你自己承認你是新來的PHP ..

0

有兩件事,你需要擔心關於...檢查他們是否已經登錄,然後在他們登錄後,將他們引導至正確的頁面。

這是關於跨頁面請求的'保存狀態'。要做到這一點,您需要使用cookie或更有用的會話(可以通過cookie完成或由PHP引擎自動處理)。

會議可能是一個好方法。要使用會話,每一頁都需要有

<?php session_start(); ?> 

至少是開始,在這之前寫入瀏覽器的HTML代碼。

一旦這樣做了,你可以用你的會話變量來存儲

<?php $_SESSION['user']='joe_blow'; ?> 

(檢查)

<?php 
    if(isset($_SESSION['user']) && $_SESSION['user']!='' { 
    // do something 
    } 
?> 

用戶是否登錄,他們需要被重定向到哪個頁面登錄後。

<?php header("location: ".$_SESSION['redirect_location'])); 

但爲了寫任何更多有用的代碼,我認爲人們需要知道你用什麼身份驗證方法...(你怎麼樣您的登錄?你存儲的ID在數據庫中?是你使用現成的軟件包嗎?)