2015-08-15 69 views
1

我正在使用基本的Web編程,而我們的教授將此作爲文件處理的練習。 1文本文件1「帳戶」和用戶名作爲文件名。這是一個自我行動的形式來檢查「賬戶有效性」,我不知道是怎麼正式提交驗證用戶名到另一個動作文件讀取其他文件(帳戶信息等)如何在一種形式中執行兩個操作

<form action="webapp.php" method="POST" id="form1"> 
<input type = "text" placeholder="Username" name="username" id="username"/> 
<input type = "password" placeholder="Password" name="password" id="password" /> 
<input type="submit" value="Sign in"> 
<?php 
//Login test 
if(!empty($_POST)){ 
$login = $_POST['username1'].".txt"; 
if(file_exists($login)){ 
    $fp = fopen($login, 'r'); 
    $data = fread($fp, filesize($login)); 
    $pass = explode('!', $data); 
    if($_POST['password1'] != $pass[1]){ 
     echo "<script>alert('Password incorrect');</script>"; 
     fclose($fp); 
    } 
    else{//submit username to another action here 

所以基本上什麼我問的是如何使用只有PHP和JavaScript的一種形式有兩個動作。

+0

你可以使用php會話(http://php.net/manual/en/features.sessions.php)來實現這一點。在你的else語句中,你開始一個會話並將你想要傳遞給變量的變量賦予會話。那麼你可以調用在新頁面上啓動會話,檢查你指定的變量是否存在(即用戶已登錄)並且不使用新頁面上的變量... – DeveloperACE

回答

0

當您驗證用戶時,在您的其他用戶中,您可以將用戶信息添加到會話中。例如:

<form action="webapp.php" method="POST" id="form1"> 
<input type = "text" placeholder="Username" name="username" id="username"/> 
<input type = "password" placeholder="Password" name="password" id="password" /> 
<input type="submit" value="Sign in"> 
<?php 
//Login test 
if(!empty($_POST)){ 
$login = $_POST['username1'].".txt"; 
if(file_exists($login)){ 
$fp = fopen($login, 'r'); 
$data = fread($fp, filesize($login)); 
$pass = explode('!', $data); 

session_start(); 
if($_POST['password1'] != $pass[1]){ 
    echo "<script>alert('Password incorrect');</script>"; 
    fclose($fp); 
} else { 
    $_SESSION['user_id'] = $_POST['username1']; 
    //...more code 
} 

所以,現在當你在另一頁/文件,你可以使用$ _SESSION [「user_ID的」]舉行「USER_ID」或任何其他變量(電子郵件等)。注意session_start();在if語句之上;您需要在每個想要使用會話的頁面上使用它。

相關問題