2015-07-01 66 views
1

後,當我點擊提交把我送到這證實,雙方已經簽署了用戶的頭部位置,但該數據沒有被髮送到數據庫中,以便您在註冊後登錄傾斜,而不是確定有什麼問題我早點工作,找不到我的錯誤。一些幫助將不勝感激!數據心不是被髮送到DB註冊

<form action = "Register.php" method="POST"> 
<?php 
if(isset($_POST['submit'])) { 
$username = $_POST['username']; 
$password = $_POST['password']; 
$email = $_POST['email']; 
$Fname = $_POST['Fname']; 
$Lname = $_POST['Lname']; 
$Display1 = $_POST['Display1']; 
$Display2 = $_POST['Display2']; 
if(empty($username) || empty($password) || empty($email) || empty($Fname) || empty($Lname) || empty($Display1)) { 
    echo '<p>Fields Empty!</p>'; 
} else if(mysql_num_rows($query) > 0){ 
    $query = mysql_query("SELECT * FROM users WHERE username ='$username' AND password ='$password'"); 
    echo'<p>Username or Password Already Exists!</p>'; 
} else { 
      mysql_query("INSERT INTO users(id, username, password, Display1, Display2, email, Fname, Lname, user_level, type) VALUES (``, '$username', '$password', '$Display1', '$Display2', '$email', '$Fname', '$Lname', '2', 'a')"); 

      $subject = "Membership Confirmation"; 
      $message = "Hello, You have registered an account on "; 
      $from = "From: "; 

      header("location:signuppayment.php"); 
      mail($email, $subject, $message, $from); 
} 

} 

?> 
<fieldset> 
<legend>Register</legend> 
<label>Username: <input class="text" type="text" name="username" /></label> 
<label>Password: <input class="text" type="password" name="password" /> </label> 
<label>Email: <input class="text" type="text" name="email" /></label> 
<label>First name: <input class="text" type="text" name="Fname" /></label> 
<label>Last name: <input class="text" type="text" name="Lname" /></label> 
<label>Display name 1: <input class="text" type="text" name="Display1" /> </label> 
<label>Display name 2: <input class="text" type="text" name="Display2" /></label> 

</fieldset> 
<div class ="registerForm"> 
<input type="submit" name="submit" value="Register"/> 
</form> 
+2

你有強烈的願望要砍死我看到 –

+1

'}否則,如果(mysql_num_rows($查詢)> 0){'定義$查詢之前 - PHP不能打破空間時間連續 –

+0

真的不知道如何幫助... – Brian

回答

1

將您的代碼替換爲以下;

<?php 
if(isset($_POST['submit'])) { 
$username = mysql_real_escape_string($_POST['username']); 
$password = mysql_real_escape_string($_POST['password']); 
$email = mysql_real_escape_string($_POST['email']); 
$Fname = mysql_real_escape_string($_POST['Fname']); 
$Lname = mysql_real_escape_string($_POST['Lname']); 
$Display1 = mysql_real_escape_string($_POST['Display1']); 
$Display2 = mysql_real_escape_string($_POST['Display2']); 
if(empty($username) || empty($password) || empty($email) || empty($Fname) || empty($Lname) || empty($Display1)) { 
    echo '<p>Fields Empty!</p>'; 
    //set your header location here if you want to tell the user the fields are empty incase you have seprate php action file; 
    //exit; 
} 
    $query = mysql_query("SELECT * FROM users WHERE username ='$username' AND password ='$password'"); 
    if(mysql_num_rows($query) > 0) 
    echo'<p>Username or Password Already Exists!</p>'; 
    //set your header location here if you want to tell the user that username and password already exist incase you have seprate php action file; 
    //exit; 
    } else { 
    mysql_query("INSERT INTO users(id, username, password, Display1, Display2, email, Fname, Lname, user_level, type) VALUES (``, '$username', '$password', '$Display1', '$Display2', '$email', '$Fname', '$Lname', '2', 'a')"); 
      //You can also set if statement here so to be sure that email triggered after successfull data insertion 
      $subject = "Membership Confirmation"; 
      $message = "Hello, You have registered an account on "; 
      $from = "From: "; 

      mail($email, $subject, $message, $from); 
    } 
      header("location:signuppayment.php"); 
      exit; 
} 
?> 

//you can set inputs 'required' like this to be sure no empty field submitted, better use jQuery or javascript for validation. 
<input class="text" type="text" name="username" required /> 
+0

非常感謝我們清理了一些東西,但我確實需要停止使用mysql_語句,否則請切換。 – Brian

1

試着像...

$db = new mysqli("localhost", "user", "password", "database"); 
if($db->connect_errno) { 
    die('Sorry, there is trouble making database connections at the moment.'); 
} 

if(isset($_POST['submit']){ 
    if(empty($_POST['username']) 
    || empty($_POST['password']) 
    || empty($_POST['email']) 
    || empty($_POST['Fname']) 
    || empty($_POST['Lname']) 
    || empty($_POST['Display1']) 
    || empty($_POST['Display2'])) { 

     echo '<p>Please make sure all fields are filled.</p>'; 

    } else { 

     $check = $db->query("SELECT username FROM users WHERE username = {$username}"); 

     if($check->num_rows) { 
      echo 'Username taken.'; 
     } else { 

     $query = $db->prepare("INSERT INTO users (username, password, Display1, Display2, email, Fname, Lname) VALUES (?, ?, ?, ?, ?, ?, ?)"); 
     $query->bind_param('sssssss', $_POST['username'], $_POST['password'], $_POST['Display1'], $_POST['Display2'], $_POST['email'], $_POST['Fname'], $_POST['Lname']); 
     $query->execute(); 
     header("location:signuppayment.php"); 
     } 
    } 
} 
+0

非常有幫助!非常感謝 – Brian

+0

嘗試加載頁面時出現錯誤,嘗試獲取最終IF語句的「嘗試獲取非對象的屬性」,以及「對null調用成員函數param()」以獲取bind_param。我一直在研究它,但對我來說這似乎很好,這就是爲什麼林混淆了吐出一個錯誤。 – Brian

+0

嘗試:if($ check-> num_rows> 0) – Hezerac