php – Username Keeps being Validated as a Name

//This is my php for the registration: <?php
    /*  Program name: checkBlankOnly_2.php 
     *  Description:  Program displays the blank form and checks 
     *  all the form fields for blank fields.
     */
    if(isset($_POST['submitted']) and $_POST['submitted'] == "yes")
    {
      foreach($_POST as $field => $value)           
      {
        if(empty($value))
        {
          if($field != "firstname")
          {
             $blank_array[] = $field;
          }
        } 
        else                                                    
        {
          $good_data[$field] = strip_tags(trim($value));
        }
      } 
      if($blank_array > 0)  
      {
        $message = "<p style="color: red; margin-bottom: 0; 
                     font-weight: bold">
                     You didn't fill in one or more required fields. 
                     You must enter: 
                     <ul style="color: red; margin-top: 0; 
                     list-style: none" >";
     /* display list of missing information */
        foreach($blank_array as $value)
        {
           $message .= "<li>$value</li>";
        }
        $message .= "</ul>"; 
        echo $message;
        extract($good_data);
        include("logic.inc");   
        exit();    
      }
      foreach($_POST as $field => $value)
      {
        if(!empty($value))
        {
          $name_patt2 = "/^[a-z]w{2,23}[^_]$/i";
          $name_patt = "/^[A-Za-z' -]{1,50}$/";
          $pass_patt = "/^[a-zA-Z][0-9a-zA-Z_!$@#^&]{5,20}$/";
          $phone_patt = "/^[0-9)(xX -]{7,20}$/";
          $addr_patt = "/^[A-Za-z0-9 .,'-]{1,50}$/";
          $zip_patt = "/^[0-9]{5}(-[0-9]{4})?$/";
          $postal_patt = "/^[A-Za-z0-9]{6}$/";
          $email_patt = "/^.+@.+\..+$/"; 
          $radio_patt = "/Canada|USA/";
          if(preg_match("/uname/i",$field))
              if(!preg_match($name_patt2,$value))
              {
                  $error_array [] = "$value is not a valid username";
              }
          if(preg_match("/name/i",$field))
          {
            if(!preg_match($name_patt,$value))
            {
              $error_array[] = "$value is not a valid name";
            }
          } 
          if(preg_match("/phone/i",$field))
          {
            if(!preg_match($phone_patt,$value))
            {
              $error_array[] = "$value is not a valid phone number";
            }
          }  // endif phone format check
          if(preg_match("/country/i",$field))
          {
            if(!preg_match($radio_patt,$value))
            {
              $error_array[] = "$value is not a valid status";
            }
          }
        } 
        $clean_data[$field] = strip_tags(trim($value));
      }
      if($error_array > 0) 
      {
        $message = "<ul style="color: red; list-style: none" >";
        foreach($error_array as $value)
        {
          $message .= "<li>$value</li>";
        }
        $message .= "</ul>"; 
        echo $message;
        extract($clean_data);
        include("logic.inc");
        exit(); 
      }
      else
      {
        $cxn = mysqli_connect($host,$user,$passwd,$dbname)
            or die("Couldn't Connect to Server");
          foreach($clean_data as $field => $value)
          {
              $clean_data[$field] = mysqli_real_escape_string($cxn,$value);
          }
          $sql = "INSERT INTO users (uname,password,lastname,firstname,city,address,state_province,country,phone,email,date) VALUES ('$clean_data[uname]','$clean_data[password]','$clean_data[lastname]','$clean_data[firstname]','$clean_data[city]','$clean_data[address]','$clean_data[state_province]','$clean_data[country]','$clean_data[phone]','$clean_data[email]','$clean_data[date]')";
          $result = mysqli_query($cxn,$sql)
              or die("Couldn't Execute Query");
          include("stored.inc");
      } 
    }
    else
    {
      include("logic.inc");
    }   
    ?>
\ This is my HTML code: 
<!doctype html>
<?php
ini_set("display_errors","on");
error_reporting(E_ALL | E_STRICT);
ini_set("include_path","./includes");
include("dbinfo.inc");
?>

<?php
/* Program Name: logic.inc
 * Created by: Clayton Korth
 * Created On: 2022-05-20
 * Description: Defines a form that collects a user's information */
$labels = array ("uname" => "Username","firstname" => "First Name","lastname" => "Last Name","address" => "Address","city" => "City","zip_postal" => "Zip Code","phone" => "Phone","email" => "Email");
$country = array("Canada","US");
$submit = "Submit Information";
$empty_array = array();
$blank_array = array();
?>
<?php
$cxn = mysqli_connect($host,$user,$passwd,$dbname)
    or die ("Couldn't Connect to Server");
    $query = "SELECT DISTINCT name FROM states ORDER BY `id` ASC";
    $result = mysqli_query($cxn,$query) or die ("Couldn't Execute Query.")
?>
<html>
<head>
    <style type="text/css">
    <!--
        form {
          margin: 1.5em 0 0 0;
          padding: 0;
          align-content: center;
         }
        .field {padding-bottom: 1em;}
        h1 {text-align: center;}
        label {
            font-weight: bold;
            float: left;
            width: 20%;
            margin-right: 1em;
            text-align: right;
        }
        #submit {margin-left: 35%}
    --></style>
<meta charset="utf-8">
<title>Form Script</title>
</head>

<body>
    <?php
    /* loop that displays the form */
    echo "<div class="row"><div class="col-lg-6>"";
    echo "<h3>Sign Up Form</h3>";
    echo "<form id='sForm' form action='checkBlankOnly2.php' method='post'>";
    foreach ( $labels as $field => $label)
    {
        echo "<div class="field">
                <label for="$field" style="font-weight: bold;">$label</label>
                    <input id='$field' name="$field" type="text" placeholder="$label"
                        size="42" /></div>";
        if($field == "uname")
        {
            echo "<div class="field"><label for="password">Password</label><input id='password' placeholder="Password" name="password" type="password" size="42"></div>";
        }
             if($field == "city") 
             
             {  
    echo "<form action='checkBlankOnly2.php' method='POST' style="margin-left: 3em">
    <label for'name' style="font-weight: bold">State/Province:</label>
    <select id='name' name="name" style="margin-top: 3em">";
    while($row = mysqli_fetch_assoc($result))
    {
        extract($row);
        echo "<option value="$name">$name</option>";
    }
    echo "</select>";
 
            echo "<div class="field"><label for="country">Country</label><input type="radio" name="country" checked='checked' value="Canada" >$country[0]
            <input type="radio" name="country" value="US" style="margin-left: 1.5em">$country[1]</div>";
        }
        
    }
    echo "<div class="field"><input type="hidden" name="submitted" value="yes"</div>";
    echo "<div id='submit'><input type="submit" value="$submit"></div>";
    echo "</div></div>"
    ?>
</body>
</html>

Above is my code for my registration.php as I am tasked to create an Login Application. What happens is that when I submit the form it validates everything except the username causing it to be validated by using name instead of username. I am wondering if I had done something wrong with my code. I am fairly new to PHP and Dynamic Web Design

Leave a Comment