Jump to content

PHP error on new insert


kaosjon

Recommended Posts

i am currently in the process of creating a registration page for my website, i have managed to make it work and it adds the user to my main table user_info, however i also have other tables that i want the system to insert the user into when they join, such as a log for their ip address, the problem is i thought it would be a simple cas of selecting the user info and then inserting the fields into the ip_address table, but i keep getting the error

 

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'terminated')' at line 1"

 

Anyway here is the code that i just added that created the error

 

$sql_id = ("SELECT * FROM user_info WHERE username = '$username'");

 $result = mysql_query($sql_id);
 $sql_result = mysql_fetch_array($result);

 $sql = mysql_query("INSERT INTO ip_log (id, ip_log) VALUES ('$id', '$ipaddress'") or die (mysql_error());

 

And the code below is the code for the whole registration page.

 

Thanks

 

<?php
if (isset ($_POST['firstname'])){

 $firstname = $_POST['firstname'];
 $lastname = $_POST['lastname'];
 $username = preg_replace('#[^A-Za-z0-9]#i', '', $_POST['username']); // filter everything but letters and numbers
     $email = $_POST['email'];
     $password = $_POST['password'];
     $cpassword = $_POST['cpassword'];
 $paypal_email = $_POST['paypal_email'];
 $country = $_POST['country'];
 $kingdom_name = $_POST['kingdom_name'];
 $kingdom_motto = $_POST['kingdom_motto'];
 $referal = $_POST['referal'];

     $email = stripslashes($email); 
     $password = stripslashes($password); 
     $cpassword = stripslashes($cpassword); 

     $email = strip_tags($email);
     $password = strip_tags($password);
     $cpassword = strip_tags($cpassword);

     // Connect to database
     include_once "connect_to_mysql.php";
     $emailCHecker = mysql_real_escape_string($email);
 $emailCHecker = str_replace("`", "", $emailCHecker);
 // Database duplicate username check setup for use below in the error handling if else conditionals
 $sql_uname_check = mysql_query("SELECT username FROM user_info WHERE username='$username'"); 
     $uname_check = mysql_num_rows($sql_uname_check);
     // Database duplicate e-mail check setup for use below in the error handling if else conditionals
     $sql_email_check = mysql_query("SELECT email FROM user_info WHERE email='$emailCHecker'");
     $email_check = mysql_num_rows($sql_email_check);

     // Error handling for missing data
     if ((!$firstname) || (!$lastname) || (!$username) || (!$email) || (!$password) || (!$cpassword) || (!$paypal_email) || (!$kingdom_name) || (!$kingdom_motto)) { 

     $errorMsg = 'ERROR: You did not submit the following required information:<br /><br />';
  
     if(!$firstname){ 
       $errorMsg .= ' * Firstname<br />';
     } 
     if(!$lastname){ 
       $errorMsg .= ' * Lastname<br />';
     } 	
 if(!$username){ 
       $errorMsg .= ' * Username<br />';      
     }
 if(!$email){ 
       $errorMsg .= ' * Email<br />';        
     } 
 if(!$password){ 
       $errorMsg .= ' * Password<br />';        
     } 		
 if(!$cpassword){ 
       $errorMsg .= ' * Password Check<br />';      
     }
 if(!$paypal_email){ 
       $errorMsg .= ' * Paypal Email<br />';        
     } 	
 if(!$kingdom_name){ 
       $errorMsg .= ' * Kingdom Name<br />';      
     }
 if(!$kingdom_motto){ 
       $errorMsg .= ' * Kingdom Motto<br />';        
     } 	

     } else if ($password != $cpassword) {
              $errorMsg = 'ERROR: Your Password fields below do not match<br />';		 
     } else if (strlen($username) < 4) {
           $errorMsg = "<u>ERROR:</u><br />Your User Name is too short. 4 - 20 characters please.<br />"; 
     } else if (strlen($username) > 20) {
           $errorMsg = "<u>ERROR:</u><br />Your User Name is too long. 4 - 20 characters please.<br />"; 
     } else if ($uname_check > 0){ 
              $errorMsg = "<u>ERROR:</u><br />Your User Name is already in use inside of our system. Please try another.<br />"; 
     } else if ($email_check > 0){ 
              $errorMsg = "<u>ERROR:</u><br />Your Email address is already in use inside of our system. Please use another.<br />"; 
     } else { // Error handling is ended, process the data and add member to database
     ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     $email = mysql_real_escape_string($email);
     $password = mysql_real_escape_string($password);

     // Add MD5 Hash to the password variable
     $db_password = md5($password); 


     // GET USER IP ADDRESS
     $ipaddress = getenv('REMOTE_ADDR');

     // Add user info into the database table for the main site table
     $sql = mysql_query("INSERT INTO user_info (firstname, lastname, username, email, password, country, sign_up_date) 
     VALUES('$firstname','$lastname','$username','$email','$password', '$country', now())")  
     or die (mysql_error());

     $id = mysql_insert_id();

 // Create directory(folder) to hold each user's files(pics, MP3s, etc.)		
     mkdir("members/$id", 0755);

 ////////////////////////////////////////////////////////////////////////
 ///////////////BUILDING THE USER PROFILES///////////////////////////////

 $sql_id = ("SELECT * FROM user_info WHERE username = '$username'");

 $result = mysql_query($sql_id);
 $sql_result = mysql_fetch_array($result);

 $sql = mysql_query("INSERT INTO ip_log (id, ip_log) VALUES ('$id', '$ipaddress'") or die (mysql_error());

   include_once 'registration_success.php';	

    
   exit();

   } // Close else after duplication checks

} else { // if the form is not posted with variables, place default empty variables so no warnings or errors show
  
  $errorMsg = "";
      $firstname = "";
  $lastname = "";
  $username = "";
  $email = "";
  $password= "";
  $cpassword = "";
  $paypal_email = "";
  $kingdom_name = "";
  $kingdom_motto = "";
  $referal = "";
}

?>

Link to comment
Share on other sites

 $sql = mysql_query("INSERT INTO ip_log (id, ip_log) VALUES ('$id', '$ipaddress'") or die (mysql_error());

 

Well I do see we're missing a ) and that a " is in the wrong place. 

Why not just use it in a more understanding manor?

 

 

 $sql = mysql_query("INSERT INTO ip_log (id, ip_log) VALUES ('$id', '$ipaddress')");
if (!$sql)
{
   die( mysql_error() );
}

 

Link to comment
Share on other sites

Thanks for your help, i must be up too late, i normally would write it like that, and good news is that it works and inserts into the new table aswell.

 

Rather than creating a whole new thread and just out of curiosity, is there any reason why the ip_address field is showing as ::1 in my database and not an actual ip address, is it because i am using the computer?

 

Thanks

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.