2016-04-01 15 views
1

私は2つのボタンを持つhtmlフォームを持っています。 1つはmysqlクエリを使用してログインし、もう1つは登録ページにリダイレクトすることです。ログインボタンは必要に応じて機能しますが、登録ボタンはちょっと奇妙です。それは想定されている関数を実行しますが、ifステートメントのログインボタン部分に関するエラーも返します。HTML ifとelse if文のエラー

HTML:

<html><head><title> Sign-In </title></head> 
<body> 

<h1> Login Form </h1> 
<div id="Sign-In"> 
<form method="POST" action="connectivity.php"> 
Username: <input type='text' name='user'> <br><br> 
Password: <input type='password' name='password'> <br><br> 
<input type="submit" class="button" name="login_button" value="Login"> <br> 
<input type="submit" class="button" name="register_button" value="Register"> 

</form> 
</div> 
</body> 
</html> 

PHP:

<?php 
session_start(); //starting the session for user profile page 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'project2'); 
define('DB_USER','root'); 
define('DB_PASSWORD','password'); 

if($_POST['login_button']){ 
    signin(); 
} 
else if($_POST['register_button']){ 
    register(); 
} 

function signin() 
{ 
    $con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
    $db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 

    $ID = $_POST["user"]; 
    $Password = $_POST["password"]; 

    if(!empty($_POST['user'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
    { 
     $query =("SELECT * FROM Customers where userName = '" .$ID. "' AND pass = '" .$Password. "';"); 

     $result = mysql_query($query, $con); 
     if (mysql_num_rows($result) == 0) 
     { 
      echo "Invalid username or password."; 
     } 
     else 
     { 
      echo "Successfully logged in!"; 
     } 
    } 
    else 
    { 
     echo "Username field is empty!"; 
    } 
} 

function register() 
{ 
    echo "please register"; 
} 



?> 

私が手にエラーがある:

Notice: Undefined index: login_button in C:\xampp\htdocs\project2\connectivity.php on line 8 
please register 

あなたが見ることができるように、register()機能のためのエコーは、正常に動作しています私はそれもsignin()機能を試していると思います。私はクリックされたボタンに応じて、実行する関数のうちの1つだけを必要としています。前もって感謝します!あなたがif($_POST['login_button']){を行うと、ボタンが前のフォームに存在し、それがフォームの中にあったので、それがあった後に、経由して送信された場合

+0

あなたが取得しているエラーメッセージは何か? – Hexana

答えて

1

、あなたがチェックしています。

あなたがクリックされたボタンをチェックしたい場合は、あなたの代わりにこれを行う必要があります。それがクリックされていなかった場合

if(isset($_POST['login_button'])){ 
    signin(); 
} 
else if(isset($_POST['register_button'])){ 
    register(); 
} 

ボタンが設定されません。

+0

優秀!どうもありがとうございました!これはhtml/phpでの私の最初の経験であり、少し荒いです。インストラクターはもっと簡単なプロジェクトから始めると思うでしょう...--もう一度ありがとう! – Tangwheeler

+0

これは単純なC **この場合のR ** UD、唯一の選択です。実際にはかなり簡単です。 – Phiter