2012-04-14 28 views
0

今回は、Webプログラミング言語を使うことにしました。私はいつもPHPの仕組みが好きだったので、私はそれを学び始めました。私はログインページを作り始めましたが、私はちょうどそれが何が間違っているのか分かりません。シンボルを使用するとエラーは発生しません。私はフォームが処理されているとは思わない。これは同じページのフォームを扱う正しい方法ですか?同じページのPHPでフォームを処理する

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<?php 
session_start(); 
include("includes/connect.php"); 

if(isset($_SESSION['uid'])){ 
    header('Location:member.php'); 
} 

if(isset($_POST['submit'])){ 
    $error = array(); 

    //username 
    if(empty($_POST['username'])){ 
     $error[] = 'You cant have no username can you'; 
    }else if(ctype_alnum($_POST['username'])){ 
     $username = $_POST['username']; 
    }else{ 
     $error[] = 'Username cannot contain symbols'; 
    } 

    //password 
    if(empty($_POST['password'])){ 
     $error[] = 'YOU NEED A PASSWORD'; 
    }else{ 
     $password = sha1(mysql_real_escape_string($_POST['password'])); 
    } 

    //error 
    if(empty($error)){ 
     $result = mysql_query("SELECT * FROM user_info WHERE username='$username' AND password='$password'") or die(mysql_error()); 
     if(mysql_num_rows($result)==0){ 
      $error_message='Username or Password wrong'; 
     }else{ 
      $_SESSION['username'] = $username; 
      $_SESSION['user_id'] = mysql_result($result, 0, 'user_id'); 
     } 
    }else{ 
     foreach($error as $key => $values) { 
      $error_message.= "$values"; 
     } 
    } 
} 


?> 

<html> 
<head> 
    <title>Login :)</title> 
</head> 
<body> 
<div style="background-color:#A0A0A0" align="center"> 
<form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>"> 
    <h3>Login</h3> 
    <div> 
     <label for="username">Username:</label> 
     <input type="text" name="username" maxlength="10"/> 
    </div> 
    <div> 
     <label for="password">Password:</label> 
     <input type="password" name="password" maxlength="20"/> 
    </div> 
    <div> 
     <input type="submit" name="submit "value="Login"/> 
    </div> 
</form> 
<?php echo $error_message; ?> 
</div> 
</body 
</html> 

答えて

3

あなたの体のタグは、あなたは>

</body> 

を忘れてしまったし、送信ボタンの名前にスペースを削除:)

+0

私は、私もdidntのような複雑な間違いを探していた閉鎖されていませんこれを参照してください:( – Learath2

+0

私は、これらの状況であなたのコードが壊れている場所を知るためにブロックにエコーを置くためにあなた自身を見つけるならばお勧めします) – Tarik

関連する問題