0

I am trying to insert into a mysql table and I'm getting a parse error for an unexpected end of file. I am using a html file with a basic form for users to enter data. I have a php file working alongside and when a user enters data it is failing because of a parse error. I am a beginner in php so I would appreciate any advice.

here is my html code:

   <!DOCTYPE html>
   <html lang="en">
   <head>
   <meta charset="UTF-8">
   <title>Grooming Appointment</title>
   </head>
   <body>
   <form action="submit.php" method="post">
   <p>
    <label for="FirstName">First Name:</label>
    <input type="text" name="Firstname" id="FirstName">
   </p>
   <p>
    <label for="LastName">Last Name:</label>
    <input type="text" name="LastName" id="LastName">
   </p>
   <p>
    <label for="Address">Address:</label>
    <input type="text" name="Address" id="Address">
   </p>
   <p>
    <label for="City">City:</label>
    <input type="City" name="City" id="City">
   </p>
    <p>
    <label for="State">State:</label>
    <input type="State" name="State" id="State">
   </p>
    <p>
    <label for="Zip">Zip:</label>
    <input type="Zip" name="Zip" id="Zip">
   </p>
    <p>
    <label for="PhoneNumber">Phone Number:</label>
    <input type="PhoneNumber" name="PhoneNumber" id="PhoneNumber">
   </p>
    <p>
    <label for="Email">Email:</label>
    <input type="Email" name="Email" id="Email">
   </p>
    <p>
    <label for="PetType">Pet Type:</label>
    <input type="PetType" name="PetType" id="PetType">
   </p>
    <p>
    <label for="Breed">Breed:</label>
    <input type="Breed" name="Breed" id="Breed">
    </p>
    <p>
    <label for="PetName">PetName:</label>
    <input type="PetName" name="PetName" id="PetName">
    </p>
     <p>
    <label for="NeuteredOrSpayed">Neutered or Spayed:</label>
    <input type="NeuteredOrSpayed" name="NeuteredOrSpayed"  id="NeuteredOrSpayed">
    </p>
     <p>
    <label for="PetBirthday">Pet Birthday:</label>
    <input type="PetBirthday" name="PetBirthday" id="PetBirthday">
    </p>
    <input type="submit" value="Submit">
    </form>
    </body>
    </html>

here is my php:

    <?php
    $host="";
    $port=3306;
    $socket="";
    $user="";
    $password="";
    $dbname="";

    $con = new mysqli($host, $user, $password, $dbname, $port, $socket)
    or die ('Could not connect to the database server' .     mysqli_connect_error());

    if( $_POST )
     {
    $con = mysql_connect("localhost","","");

    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
     }

    mysql_select_db("pet_shop3", $con);

    $FirstName = $_POST['FirstName'];
    $LastName = $_POST['LastName'];
    $Address = $_POST['Address'];
    $City = $_POST['City'];
    $State = $_POST['State'];
    $Zip = $_POST['Zip'];
    $PhoneNumber = $_POST['PhoneNumber'];
    $Email = $_POST['Email'];
    $PetType = $_POST['PetType'];
    $Breed = $_POST['Breed'];
    $PetName = $_POST['PetName'];
    $NeuteredOrSpayed = $_POST['NeuteredOrSpayed'];
    $PetBirthday = $_POST['PetBirthday'];

    $query = "
    INSERT INTO `grooming` (`FirstName`, `LastName`, `Address`,
    `City`, `State`, `Zip`, `PhoneNumber`, `Email`, `PetType`, `Breed`,   `PetName`, `NeuteredOrSpayed`, `PetBirthday`) VALUES (NULL, '$users_FirstName','$users_LastName', '$users_Address', '$users_City', '$users_Address', '$users_State', '$users_Zip', '$users_PhoneNumber', '$users_Email', '$users_PetType', '$users_PetName', '$users_Breed', '$users_PetName', '$users_NeuteredOrSpayed', '$users_PetBirthday',);";

    mysql_query($query);

    echo "<h2>Thank you, we will contact you shortly!</h2>";

     mysql_close($con);
     ?>
chris85
  • 23,846
  • 7
  • 34
  • 51
help
  • 11
  • 2
    You never closed your `if` block. – David Feb 11 '17 at 18:11
  • More information: the error I'm getting is in the final line of the php code "?>" – help Feb 11 '17 at 18:12
  • Where theres a variable you should do this ".$users_firstname." and remove the ` from the column names – NoLiver92 Feb 11 '17 at 18:13
  • 1
    Also be aware that your code is *wide open* to **SQL injection**. – David Feb 11 '17 at 18:14
  • 2
    Don't mix drivers. `mysql_*` won't work with `mysqli`. Use the `mysqli` and parameterize your queries. – chris85 Feb 11 '17 at 18:16
  • 1
    The parser realizes that something is wrong when it hits the ?>. That's why it tells you the error occurs at this line. But this error is caused by not closing this if statement [line 12] : if( $_POST ){ – Benjamin Feb 11 '17 at 18:16

1 Answers1

0

You input to insert are less that actual data

FirstName, LastName, Address, City, State, Zip, PhoneNumber, Email, PetType, Breed, PetName, NeuteredOrSpayed, PetBirthday

13 Input

Whereas

VALUES (NULL, '$users_FirstName','$users_LastName', '$users_Address', '$users_City', '$users_Address', '$users_State', '$users_Zip', '$users_PhoneNumber', '$users_Email', '$users_PetType', '$users_PetName', '$users_Breed', '$users_PetName', '$users_NeuteredOrSpayed', '$users_PetBirthday',) 

16 Values which is valid syntax error in MYSQL.

squiroid
  • 13,809
  • 6
  • 47
  • 67