2014-11-30 2 views
-1

Я закодировал форму входа, все работает (соединение с db, query, result). но я хочу показать регистрационную форму или нет! Я должен принять решение в соответствии с переменной $countResult. Если он равен 0, покажите форму! если он равен 1, не отображать форму, а затем перенаправлять на другую страницу.Форма входа в систему не работает

$countResult работает до // it is working up to the here. Зачем?

<?php 
session_start(); 
$_SESSION["username"] = ""; 
$_SESSION["userGroup"] = ""; 


require_once 'db.php'; 

$username ; 
$usergroup ; 
$loginError = ""; 
$usernameError = ""; 
$passwordError = ""; 
$query = "SELECT usergroup FROM personnel"; 
$result = ""; 
$queryResult = ''; 
static $countResult = 0 ; 
$connectionLink = connectToDB(); 
$selectedDB = selectDB("ghiasvan" , $connectionLink); 
static $showForm = True ; 

if($_SERVER["REQUEST_METHOD"] == "POST"){ 
    //global $showForm, $countResult; 
    if(!empty($_POST["username"])) 
     $username = trim($_POST["username"]); 
    else 
     $usernameError = "fill username"; 

    if(!empty($_POST["password"])) 
     $password = trim($_POST["password"]); 
    else 
     $passwordError = "fill passowrd"; 

    //echo password_hash($password, salt); 
    if(empty($password) && empty($username)) 
     $loginError = "<b>fill username and password<b/>" ; 

    if(empty($passwordError) && empty($usernameError)){ 

     $query .= " WHERE username = '$username' and password = '$password' "; 
     $queryResult = databaseQuery($query); 
     $countResult = mysql_num_rows($queryResult); 
     if($countResult == 0) { 
     $showForm = TRUE; 
     } 
     else if ($countResult == 1) { 
      $showForm = False; 
      $row = mysql_fetch_row($queryResult); 
      $usergroup = $row[0] ; 
      $_SESSION["userGroup"] = $usergroup; 
     } 
    } 
} // end of if submit $_POST 


?> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <?php 
     global $countResult; 
     if($countResult == 0){ 
      $showForm = TRUE; 

     } else if ($countResult == 1) { 
      $showForm = FALSE; 
     }  
     if ($showForm){ 
      echo "<title>Login Form</title>"; 
      echo '<link href="/cafecalendar/css/login.css" rel="stylesheet" type="text/css" />'; 
     } 

    ?> 



// it is working up to the here 


</head> 
<body> 
<?php   
if ($countResult == 0){ 

?> 

<div id="divForm"> 
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST"> 
    <div id="inputPos"> 
     Username :<br /><input type="text" name="username" id="username" /><br /> 
     Password :<br /><input type="password" name="password" id="password" /><br /> 
        <input type="submit" value="Login" name="submit" id="submit"><br /> 
        <?php 
         if($loginError){ 
          echo $loginError; 
         } else{ 
          echo $usernameError . $passwordError; 
         } 
        ?> 
    </div>   
</form> 
</div> <!-- end of div form --> 
<?php 
} // end of showing loggin form 
else if ($countResult == 1){ 
if($usergroup == 1){ 

    header("Location: http://localhost/ghias/admin.php"); 
    die(); 
} 
else if ($usergroup == 2){ 
    header("Location: http://localhost/ghias/teacher.php"); 
    die(); 
} 
else { 
    header("Location: http://localhost/ghias/admin.php"); 
    die(); 
} 
} 
?> 

</body> 
</html> 

ответ

0

Я думаю, вы должны проверить, если форма была отправлена ​​или нет, попробуйте так:

<?php if(isset($_POST['submit'])):?> 
    <!--show your form here--> 
<?php endif; ?> 
+0

Исеть ($ _ POST [ 'Submit'] равно Исеть ($ _ POST [ 'представить ']). – Amish

+0

действительно я пропустил круглую скобку – meda

Смежные вопросы