2015-08-15 71 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语句之上;您需要在每个想要使用会话的页面上使用它。