2013-09-28 2 views
0

Я пытаюсь вставить данные из формы, которую я внес в мою таблицу MYsql, используя mysqli, но всякий раз, когда я отправляю свою форму, он просто отображает успешно подключенный к серверу db. Есть идеи? Он должен показывать мои ошибки для вставки, не так ли?Неисправность вставки переменных PHP в Mysqli

<?php 
if ($_POST['submit']) { 
    $errormsg = ""; 
    $name = $_POST['name']; 
    $password = $_POST['password']; 
    $password2 = $_POST['password2']; 
    $email = $_POST['email']; 
    $phone = $_POST['phone']; 

    $connection = @mysqli_connect("$hostname","$username", "$password", "$database"); 
    if(!$connection){ 
     die("<p>The database server is not available.</p>".mysqli_error()); 
    } 
    echo "<p>Sucessfully connected to the database server.</p>"; 

    if((!$name)||(!$password)||(!$password2)||(!$email)||(!$phone)){ /* Checks if all inputs are filled*/ 
      $errormsg = "Please insert the required fields below<br />"; 
      if ($name == "") 
      { 
       $errormsg = $errormsg . "Enter a name.<br />"; 
      } 
      if ($password == "") 
      { 
       $errormsg = $errormsg . "Please enter a password.<br />"; 
      } 
      if ($password2 =="") 
      { 
       $errormsg = $errormsg . "Please re-enter your password.<br />"; 
      } 
       if ($email =="") 
      { 
       $errormsg = $errormsg . "Please enter an email address.<br />";  
      } 
      if ($phone =="") 
      { 
       $errormsg = $errormsg . "Please enter a phone number.<br />"; 
      } 
      if($errormsg){ 
       echo "$errormsg"; 
      } 
     } 
    if($password != $password2) { 
     $errormsg = $errormsg. "Your passwords must match!<br/>"; 
    } 
    function checkEmail($email){ //begin email check function 
     $sql = "SELECT count(email) FROM CUSTOMER WHERE email='$email'"; 
     $result = mysqli_result(mysqli_query($sql),0); 
     if($result > 0){ 
      $errormsg = $errormsg. "There is already a user with that email!"; 
    }//end email check function 
    if(!$errormsg) 
    { 
     $insertquery = "INSERT INTO CUSTOMER (customer_no, name, password, email, phone) 
          VALUES(NULL, '$name', '$password', '$email', '$phone')"; 
     $queryresult = mysqli_query($insertquery); 
     if($queryresult) 
     { 
      echo("<br>Registration sucessful"); 
     } 
     else 
     { 
      echo("<br>registration was not sucessful"); 
     } 
    } 
} 
} 
?> 
+2

Этот вопрос («У меня есть код, расскажите мне, что с ним не так») считается оффтопическим здесь –

+0

Сначала начните с изменения 'if ($ _POST ['submit']) {' to 'if (isset ($ _POST ['submit'])) {'лучше и будет проверять, действительно ли кнопка отправки нажата. –

+0

он, вероятно, не входит внутрь if ((! $ Name) || (! $ Password) || (! $ Password2) || (! $ Email) || (! $ Phone)) {. поэтому никакая вставка не предпринимается – Aris

ответ

-1

Возможно, это сработает. Вы можете попробовать это:

<?php 
if ($_POST['submit']) { 
$errormsg = ""; 
$name  = isset($_POST['name'])?$_POST['name']:NULL; 
$password = isset($_POST['password'])?$_POST['password']:NULL; 
$password2 = isset($_POST['password2'])?$_POST['password2']:NULL; 
$email  = isset($_POST['email'])?$_POST['email']:NULL; 
$phone  = isset($_POST['phone'])?$_POST['phone']:NULL; 

//Try by removing @, since it ignores any error that may occur here while connecting to mysql 
$connection = mysqli_connect("$hostname","$username", "$password", "$database"); 
if(!$connection) 
    die("<p>The database server is not available.</p>".mysqli_error()); 
echo "<p>Sucessfully connected to the database server.</p>"; 

if(empty($name)||empty($password)||empty($password2)||empty($email)||empty($phone)) 
    { // Checks if all inputs are filled 
     $errormsg = "Please insert the required fields below<br />"; 
     if ($name == "") 
      $errormsg = $errormsg . "Enter a name.<br />"; 
     if ($password == "") 
      $errormsg = $errormsg . "Please enter a password.<br />"; 
     if ($password2 =="") 
      $errormsg = $errormsg . "Please re-enter your password.<br />"; 
     if ($email =="") 
      $errormsg = $errormsg . "Please enter an email address.<br />"; 
     if ($phone =="") 
      $errormsg = $errormsg . "Please enter a phone number.<br />"; 
     if($errormsg) 
      echo "$errormsg"; 
    } 
if($password != $password2) 
    $errormsg = $errormsg. "Your passwords must match!<br/>"; 

function checkEmail($email) 
{ //begin email check function 
    $sql = "SELECT count(email) FROM CUSTOMER WHERE email='$email'"; 
    $result = mysql_result(mysqli_query($connection,$sql),0);//see the difference 
    if($result > 0) 
     $errormsg = $errormsg. "There is already a user with that email!"; 
}//end email check function 
if(!$errormsg) 
{ 
    $insertquery = "INSERT INTO CUSTOMER (customer_no, name, password, email, phone) 
         VALUES(NULL, '$name', '$password', '$email', '$phone')"; 
    $queryresult = mysqli_query($connection,$insertquery);//see the difference 
    if($queryresult) 
     echo("<br>Registration sucessful"); 
    else 
     echo("<br>registration was not sucessful"); 
} 
} 
} 
?> 

Вы можете узнать больше из here. Наслаждайтесь!

+0

если вы не удовлетворены ответом, вы можете прокомментировать. по какой причине? – nurakantech

+0

Я думаю, что поставленный вопрос пользователь не пропустит вас, он не имеет достаточной репутации. Это глупость делает это (проголосовать нужно прояснить). – devo

+2

Я так думаю, stackoverflow должен думать об этом. никто не может легко проголосовать за кого-то без причины. – nurakantech

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