2017-01-25 31 views
0

我在慢慢學習PHP ;-)我很難理解單獨的PHP文件如何協同工作。瞭解PHP文件和AJAX調用

我對所有需要連接到後端(解析)的不同php文件進行AJAX調用。如:

sign_up.php 
login.php 
verify_email.php 
get_something_out_of_the_database.php 

什麼是在不同的PHP文件保持登錄狀態的標準呢? (或什麼是它的谷歌搜索術語?)

更新: 感謝您的所有關於'會議'的答案。我工作不太好,所以我做了一個新的question

謝謝!

Remzo

+0

您必須創建一個文件並在其中初始化會話,作爲'session_start()'幷包含此文件,在需要驗證用戶身份或提供基於會話的某些事情的任何地方 – samayo

+0

使用[SESSIONS](http://php.net/manual/en/features.sessions.php) –

+0

'保持登錄到不同的php文件'如何引導您的應用程序。意思是:每個呼叫都被重定向到'index.php',在那裏你可以檢查登錄等等。那就是框架如何去做。 OldSchool,但也可以工作:使用php的自動加載功能http://php.net/manual/en/ini.core.php#ini.auto-prepend-file,並在那裏做檢查(少代碼工作) – JustOnUnderMillions

回答

0

您可以在一個會話變量保存的登錄數據,並在每個新頁的開始檢查它例如做到這一點。

例如: 您檢查登錄數據是否有效。然後

session_start(); 
$_SESSION["login"] = $loginname; 

在另一頁的開始:

session_start(); 
if(!isset($_SESSION["login"]) || $_SESSION["login"] != "check_somehow") 
{ 
    header("Location: logout.php"); 
    exit; 
} 

用於註銷,你可以使用

session_start(); 
session_destroy(); 
+0

謝謝!如果我理解正確,該解決方案將用戶數據轉換爲另一個php文件。但是,假設這個其他的PHP文件需要從數據庫中取出某些東西。它是否必須再次登錄?然後它會登錄兩次...? – Remzo

+0

這會啓動一個可在所有php文件中使用的會話,現在您可以通過檢查diffrerent值(根據您的要求)來驗證此會話。您不需要在同一個會話中再次登錄 –

+0

我已經嘗試了session_start幾個小時了。但是...它不適用於我與調用PARSE結合使用。 AAAAAAAHHHHHH。如果我從我的php文件中刪除session_start,我可以從Parse數據庫中檢索信息。然後我沒有會話變量。如果我添加session_start()我可以訪問會話變量,但我無法連接到解析了。幫幫我 ! ( - ;(我會改變我的問題) – Remzo

0

在用戶登錄的開始,你可以這樣做

session_start(); 
$_SESSION['USER'] = <some user info>; 

在你的其他pa GES你可以看到,如果

if(isset($_SESSION['USER'])){ 
    // do something 

}

最後在註銷

session_destroy(); 

將終止會話

+0

謝謝!!如果我理解正確,這個解決方案將用戶數據轉換成另一個php文件,但假設這個其他php文件需要從數據庫中取出某些東西。那麼必須再次登錄自己,然後登錄兩次...? – Remzo

1

您應該使用PHP會議。這些是在多個頁面之間存儲瀏覽器瀏覽器信息的方法...

要開始一個會話,首先需要在您打算使用它的每個PHP文件中添加session_start();。通常將它添加到header.php中

然後,您可以使用會話了。

要保存結果:

$_SESSION['some_data'] = $var; 

要在其他網頁檢索結果,例如:

echo $_SESSION['some_data']; // will echo $var 

更多信息可以在這裏找到: http://www.w3schools.com/php/php_sessions.asp