2012-01-24 31 views
0

我有一個用戶在我的網站上註冊了一些電子郵件和密碼。只要他註冊,我們會向他的電子郵件發送確認碼,並要求他輸入號碼進行註冊。使用標題()在這方面很好

不幸的是,用戶可能會填寫數據,並可能在未輸入確認碼的情況下退出,他可能會回來並使用其註冊的電子郵件登錄。所以我會檢查他的電子郵件在數據庫中,如果他是註冊的,如果他的電子郵件是在發送到他的電子郵件的代碼的批准下,那麼我想重定向他到一個頁面,指出「一個代碼已發送到您的電子郵件響應你的代碼註冊「,否則如果他已經註冊並且沒有待批准的話,那麼將他重定向到他的個人資料。

我不確定如何去做。我正在考慮使用這個:如果用戶正在批准,那麼header('location confirmation.php'),如果他被批准,然後header('location profile.php'),但我不知道這是否是正確的方式來做到這一點。標題可以用於這個目的嗎?或者做什麼替代解決方案。請幫助我,謝謝。

回答

0

是的,你可以做到這一點。請記住在更改位置後致電header()後添加exit;呼叫,否則整個頁面將被處理併發送到客戶端。這可能是一個很大的安全問題,具體取決於頁面內容。

+0

你是指在header()函數下正好退出? – niko

+0

是的,這是正確的。像這樣:'header('Location:some_page.php');退出;' – FtDRbwLXw6

+0

但爲什麼我可以知道?對不起有點新的蜜蜂這個功能在PHP多數民衆贊成爲什麼你可以請更新你的答案解釋爲什麼我需要使用退出功能? – niko

0

標題可用於涉及更改響應標頭的任何目的。無論如何,您可以使用if語句來設置一個Location標頭(如果爲true),否則爲另一個Location標頭。請記住正確的格式是header("Location: confirmation.php"); - 即大寫L:

0

是的,這是位置標題應該被使用。


Location: confirmation.php,你忘了: