Jump to content

Unexpected End Error


Akenatehm

Recommended Posts

Hey,

 

I get the following error:

Parse error: syntax error, unexpected $end in /home/kaurlcom/public_html/relayadmin/add_user/add_user_test.php on line 54

 

With the following script:

<?PHP 

include "connect.php"; 
// Checks the database for a user with a particular user name
$check = mysql_query("select ID from users where username='$username' limit 1;");
// get a row count of the number of rows found
if(mysql_num_rows($check) == 1) {  echo "Username Already In Use.";
} 
else { 

if(isset($_POST['submit']))

{

   $username=$_POST['username'];

   $password=$_POST['password'];
   
   $email=$_POST['email'];

   if(strlen($username)<1)

   {

      print "You did not enter a username.";

   }

   else if(strlen($password)<1)

   {

      print "You did not enter a password.";

   }

   else

   {

	$insert = "INSERT INTO `users` (username,password,email) 
	VALUES ('".mysql_real_escape_string
($username)."','".mysql_real_escape_string
($password)."','".mysql_real_escape_string
($email)."',".mysql_real_escape_string;
     
	mysql_query($insert) or die("Could not insert comment" . mysql_error());

        echo "User Added. <a href=\"home.html\">Click here</a> To Go Home.";
   }

  }

?> 

 

Help would be greatly appreciated. =)

Link to comment
Share on other sites

The opening brace of the else statement in this section of code:

 

if(mysql_num_rows($check) == 1) {  echo "Username Already In Use.";
}
else {

 

Is not closed. Though this is the cause of the error, you appear to have further problems. You are checking to see if the username exists prior to checking whether or not the form was submitted and prior to defining $username. I think you may need to rethink your logic.

Link to comment
Share on other sites

This should do it.

 

<?PHP

include "connect.php";
// Checks the database for a user with a particular user name
$check = mysql_query("select ID from users where username='$username' limit 1;");
// get a row count of the number of rows found
if(mysql_num_rows($check) == 1) {  echo "Username Already In Use.";
}
else {

if(isset($_POST['submit']))

{

   $username=$_POST['username'];

   $password=$_POST['password'];
   
   $email=$_POST['email'];

   if(strlen($username)<1)

   {

      print "You did not enter a username.";

   }

   else if(strlen($password)<1)

   {

      print "You did not enter a password.";

   }

   else

   {

    $insert = "INSERT INTO `users` (username,password,email)
    VALUES ('".mysql_real_escape_string
   ($username)."','".mysql_real_escape_string
   ($password)."','".mysql_real_escape_string
   ($email)."',".mysql_real_escape_string;
     
      mysql_query($insert) or die("Could not insert comment" . mysql_error());
      
        echo "User Added. <a href=\"home.html\">Click here</a> To Go Home.";
   }

  }
}
?> 

Link to comment
Share on other sites

It is closed.

 

No, it's not. The final closing brace of the script closes this if statement:

 

if(isset($_POST['submit']))

{

 

Could you give me some direction?

 

You basically need to restructure your code. You need to check to see if the username is in use after checking that the form has been submitted (the isset() if statement) and checking that the user provided a username and password. You should only insert if all those criteria are met (that is, the form has been submitted; it was submitted with a username and password provided; and the username doesn't exist.

Link to comment
Share on other sites

Ya i saw that after i posted... fixed it though... No that one is closed its the one after the else...

 

include "connect.php";
// Checks the database for a user with a particular user name
$check = mysql_query("select ID from users where username='$username' limit 1;");
// get a row count of the number of rows found
if(mysql_num_rows($check) == 1) {  echo "Username Already In Use.";
}
else {  <----- ***This one is not closed***

 

My code above should fix the issue

Link to comment
Share on other sites

I got the following error:

 

Parse error: syntax error, unexpected ',' in /home/kaurlcom/public_html/relayadmin/add_user/add_user.php on line 35

 

Here is the code with the else statement closed (i think)"

 

<?PHP

include "connect.php";
// Checks the database for a user with a particular user name
$check = mysql_query("select ID from users where username='$username' limit 1;");
// get a row count of the number of rows found
if(mysql_num_rows($check) == 1) {  echo "Username Already In Use.";
}
else {

if(isset($_POST['submit']))

{

   $username=$_POST['username'];

   $password=$_POST['password'];
   
   $email=$_POST['email'];

   if(strlen($username)<1)

   {

      print "You did not enter a username.";

   }

   else if(strlen($password)<1)

   {

      print "You did not enter a password.";

   }

   else

   {

    $insert = "INSERT INTO `users` (username,password,email)
    VALUES ('".mysql_real_escape_string
   ($username)."','".mysql_real_escape_string
   ($password)."','".mysql_real_escape_string
   ($email)."',".mysql_real_escape_string;
     
      mysql_query($insert) or die("Could not insert comment" . mysql_error());
      
        echo "User Added. <a href=\"home.html\">Click here</a> To Go Home.";
   }

  }
}
?>

Link to comment
Share on other sites

The error is most likely caused by these lines:

<?php
    $insert = "INSERT INTO `users` (username,password,email)
    VALUES ('".mysql_real_escape_string
   ($username)."','".mysql_real_escape_string
   ($password)."','".mysql_real_escape_string
   ($email)."',".mysql_real_escape_string;
?>

 

If you don't break up lines unnaturally, you would have seen that you are missing an argument on the last mysql_real_escape_string() -- it probably shouldn't even be there.

 

Try:

<?php
    $insert = "INSERT INTO `users` (username,password,email) VALUES ('".mysql_real_escape_string($username) . "','" . mysql_real_escape_string($password) . "','" . mysql_real_escape_string($email);
?>

 

Ken

 

 

Link to comment
Share on other sites

<?PHP

include "connect.php";
// Checks the database for a user with a particular user name
$check = mysql_query("select ID from users where username='$username' limit 1;");
// get a row count of the number of rows found
if(mysql_num_rows($check) == 1) {  echo "Username Already In Use.";
}
else {

if(isset($_POST['submit']))

{

   $username=$_POST['username'];

   $password=$_POST['password'];
   
   $email=$_POST['email'];

   if(strlen($username)<1)

   {

      print "You did not enter a username.";

   }

   else if(strlen($password)<1)

   {

      print "You did not enter a password.";

   }

   else

   {

    $insert = "INSERT INTO `users` (username,password,email)
    VALUES ('".mysql_real_escape_string
   ($username)."','".mysql_real_escape_string
   ($password)."','".mysql_real_escape_string
   ($email)."','".mysql_real_escape_string;
     
      mysql_query($insert) or die("Could not insert comment" . mysql_error());
      
        echo "User Added. <a href=\"home.html\">Click here</a> To Go Home.";
   }

  }
}
?>

Link to comment
Share on other sites

You did not change the statement I pointed out to get rid of the last mysql_real_escape_string.

 

This:

<?php
    $insert = "INSERT INTO `users` (username,password,email)
    VALUES ('".mysql_real_escape_string
   ($username)."','".mysql_real_escape_string
   ($password)."','".mysql_real_escape_string
   ($email)."',".mysql_real_escape_string;
?>

 

Needs to be

<?php
    $insert = "INSERT INTO `users` (username,password,email) VALUES ('".mysql_real_escape_string($username) . "','" . mysql_real_escape_string($password) . "','" . mysql_real_escape_string($email);
?>

 

Ken

Link to comment
Share on other sites

I did change it before. Don't know why it was still showing that it hadn't. Here it is:

 

    $insert = "INSERT INTO `users` (username,password,email)
    VALUES ('".mysql_real_escape_string
   ($username)."','".mysql_real_escape_string
   ($password)."','".mysql_real_escape_string
   ($email)."','".mysql_real_escape_string;

 

and it shows that error.

 

 

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.