php - error_message variable not displaying the string value on form submit -


my database validation working; 'user' table not update if there registered user. however, $error_message variable not display the error message string. here code:

html/php:

// collect , validate user inputs if($_server["request_method"] == "post") {   session_start();   $forename = trim(filter_input(input_post,"user_forename",filter_sanitize_string));   $surname = trim(filter_input(input_post,"user_surname",filter_sanitize_string));   $gender = trim(filter_input(input_post,"user_gender",filter_sanitize_string));   $email = trim(filter_input(input_post,"user_email",filter_sanitize_email));   $password = trim(filter_input(input_post,"user_password"));   $city = trim(filter_input(input_post,"user_city"));   $team = trim(filter_input(input_post,"user_team",filter_sanitize_string));   $bio = trim(filter_input(input_post,"user_bio",filter_sanitize_special_chars));   $human = trim(filter_input(input_post,"user_human",filter_sanitize_string));    $userexist = mysql_query("select * user u_email='$email'");    if($forename == "" || $surname == "" || $email == "" || $password == ""  || $city == "" || $team == "" || $bio == "" || $human == "") {     $error_message = "please fill in form fields";   }    if (!isset($error_message) && !filter_var($email, filter_validate_email)) {     $error_message = "$email not valid email address";   }    if (!isset($error_message) && (mysql_num_rows($userexist) > 0)) {     $error_message = "$email taken!";   }    if(!isset($error_message)) {       $sql = $db->query("insert user (u_forename, u_surname, u_gender, u_email, u_password, u_city, u_team, u_biography)       values('{$forename}', '{$surname}', '{$gender}', '{$email}', '{$password}', '{$city}', '{$team}', '{$bio}')");        // header('location: index.php');   } }    <div class="wrapper">           <h1>register, it's free!</h1>           <div>             <?php             if (isset($error_message)) {               echo "<h2>".$error_message."</h2>";             }             ?>           </div> 

no error message displayed after form has been submitted. moreover, not receiving php errors not sure problem.

any suggestions great.

thanks, james.

please remember mysqli , sql injection.

this extension deprecated in php 5.5.0, , removed in php 7.0.0. instead, mysqli or pdo_mysql extension should used.

mysqli::real_escape_string -- mysqli_real_escape_string — escapes special characters in string use in sql statement, taking account current charset of connection.

note:: if no connection open, mysqli_real_escape_string() return empty string!

sql injection technique malicious users can inject sql commands sql statement, via web page input.

injected sql commands can alter sql statement , compromise security of web application.

 <?php     /* attempt mysql server connection. assuming running mysql     server default setting (user 'root' no password) */     $conn = mysqli_connect("localhost", "root", "", "demo");      // check connection     if($conn === false){         die("error: not connect. " . mysqli_connect_error());     }     if(isset($_post['user_forename']) && strlen(trim($_post['user_forename']) > 0)) {  } else {   $error_message = "please enter forename"; }   if(isset($_post['user_surname']) && strlen(trim($_post['user_surname']) > 0)) {   $surname = trim($_post['user_surname']); } else {   $error_message = "please enter surname"; }  if(isset($_post['user_gender']) && strlen(trim($_post['user_gender']) > 0)) {   $gender = trim($_post['user_gender']); } else {   $error_message = "please enter gender"; // if input field. }   if(isset($_post['user_email']) && strlen(trim($_post['user_email']) > 0)) {   if(filter_var(trim($_post['user_email']), filter_validate_email))  {    $mail = trim($_post['user_gender']);  } else {    $error_message = "please enter valid email";  } } else {   $error_message = "please enter email";  }   if(isset($_post['user_password']) && strlen(trim($_post['user_password']) > 0)) {   $password = trim($_post['user_password']); } else {   $error_message = "please enter password"; }   if(isset($_post['user_city']) && strlen(trim($_post['user_city']) > 0)) {   $city = trim($_post['user_city']); } else {   $error_message = "please enter city"; }   if(isset($_post['user_bio']) && strlen(trim($_post['user_bio']) > 0)) {   $bio = trim($_post['user_bio']); } else {   $error_message = "please enter biography"; }       // escape user inputs security     $forename = mysqli_real_escape_string($conn, $forename);     $surname = mysqli_real_escape_string($conn, $surname);     $gender = mysqli_real_escape_string($conn, $gender);     $email = mysqli_real_escape_string($conn, $email);     $password = mysqli_real_escape_string($conn, $password);     $city = mysqli_real_escape_string($conn, $city);     $team = mysqli_real_escape_string($conn, $team);     $bio = mysqli_real_escape_string($conn, $bio);   // checking existing email     if ($emailcheckquery = mysqli_query($conn, "select * user u_email='$email'")) {   if(mysqli_num_rows($emailcheckquery) > 0)   {       $error_message = "email taken!";   }     }  if(!isset($error_message)) {    // attempt insert query execution     $insertsql = "insert persons (u_forename,u_surname,u_gender, u_email,u_password,u_city,u_team,u_biography) values ('$forename', '$surname','$gender',$email,$password,$city,$team,$biography)";     if(mysqli_query($conn, $sql)){         echo "records added successfully.";     } else{         echo "error: not able execute $sql. " . mysqli_error($link);     } }       // close connection     mysqli_close($conn);     ?>         <div class="wrapper">      <h1>register, it's free!</h1>         <div>                 <?php                 if (isset($error_message)) {                   echo "<h2>".$error_message."</h2>";                 }                 ?>       </div>    </div> 

Comments