2011-06-18 20 views
0

我已經在此搜索過,但我仍然不確定。在asp.net中,我可以通過編程方式在服務器端登錄一個用戶......而我並不是在談論一個客戶端腳本,它們在拉出站點時自動填寫表單。我可以檢查一些服務器端,如果真的,將它們登錄到網站。如果爲false,我可以重定向到用戶名/密碼錶單,並輸入用戶名和密碼。以編程方式登錄一個用戶就像你可以在ASP.net?

是否有可能在PHP中做類似的事情?

我有件事情我想這樣做,但如果它甚至不能開始與

感謝肯定將是很好不上的東西浪費時間!

- = - = - =

在asp.net的過程是這樣的:

  1. 呼叫uservalidate方法,看看憑證正確
  2. 呼叫formsauthentication.setauthcookie設置認證cookie
  3. 將用戶重定向到預定頁面

例如,

Response.Cookies.Remove(FormsAuthentication.FormsCookieName); 
    FormsAuthentication.SetAuthCookie("username", false); 
    Response.Redirect("samepage.aspx"); 

只有在重定向時票證纔會被處理。

+0

http://php.net/manual/en /function.setcookie.php – Dan

+0

這是不可能的,像Facebook這樣的網站必須非常神奇,呃?和大多數博客軟件。和互聯網上的其他大部分網站。 –

+0

re:像Facebook這樣的網站必須很神奇,呃?不,不是,你在facebook上輸入用戶名和密碼。我在說什麼,你不知道。例如,在asp.net中,我可以檢查用戶是否來自12.192.191。15,如果爲True,則在用戶不輸入用戶名和密碼的情況下登錄它們,如果爲false,則將它們發送到登錄表單。我不太瞭解PHP,所以這就是我所要求的。 – Jay

回答

1

當然可以 - 您需要閱讀PHP Sessions

  1. 您通過從表單發送的標準POST請求接受用戶的憑證。

  2. 獲取憑據並檢查它們是否匹配(通常通過查詢數據庫)。

  3. 如果有,請設置會話變量以指示用戶已通過身份驗證($_SESSION['user_is_authenticated'] = true);

  4. 檢查你的後續頁面需要,如果用戶進行身份驗證或不固定 - 如果他不是,重定向到登錄頁面:if (!$_SESSION['user_is_authenticated']) header('location:login.php');

+0

Jahufar - 通過從表單發送的標準POST請求接受憑證。這是我可以在asp.net中跳過的部分,我不確定在PHP中。例如,在asp.net中,我編寫了一個程序來獲取硬件序列號。並以加密的cookie發送給服務器。如果串行驗證,我登錄它們而無需用戶執行任何操作。我有點想到一個PHP插件,它可以讓我的程序和PHP一起工作(通過asp.net和PHP之間的共享數據庫)。如果沒有任何用戶憑證的話,記錄它們是否是「真」是問題。但看起來可能。謝謝 – Jay

1

我不知道ASP,但你只需要在PHP中設置會話。例如,如果您的登錄腳本在會話中查找用戶對象,則只需從數據源加載該用戶並將其加載到會話中即可。您還需要設置您可能要檢查的其他標誌。

當您希望管理員能夠以您網站上的用戶身份登錄時,這是一項常見要求。

+0

我不知道PHP,但我已經用它一點。我認爲它可能工作。我想要做的是檢查一個asp.net應用程序和PHP網站之間的共享數據庫。如果數據庫中的某位是「真」,他們可以在沒有用戶名和密碼字段的情況下登錄到PHP站點。如果他們無法驗證,它會踢他們到一個基於表單的登錄。在asp.net中這很簡單。我只是不知道在PHP中是否可行。謝謝 – Jay