I have the following function which in words should take user credentials and validate them. If they are valid insert them into the db. Once inserted check if they are successfully inserted. If not return false. If the email was invalid in the first place return false. Eclipse + Aptana plugin is reporting a syntax error with the last else section. It seems like it should be functioning correctly when I try to rationalize the code. I can confirm all of the {brackets} are in the correct hierarchical order
Here is the code:
public function storeUser($name, $email, $password) {
$uuid = uniqid('', true);
$hash = $this->hashSSHA($password);
$encrypted_password = $hash["encrypted"]; // encrypted password
$salt = $hash["salt"]; // salt
if((filter_var($email, FILTER_VALIDATE_EMAIL)) && preg_match('/@.+\./', $email)); { //validate the email
$result = mysql_query("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES('$uuid', '$name', '$email', '$encrypted_password', '$salt', NOW())");
// check for successful store
if ($result) {
// get user details
$uid = mysql_insert_id(); // last inserted id
$result = mysql_query("SELECT * FROM users WHERE uid = $uid");
// return user details
return mysql_fetch_array($result);
} else {
return false; //unsuccessful store
}
else { //THIS IS LINE 45
//not a valid email
return false;
}
}
}
It returns the following error:
05-23 11:07:10.758: E/JSON(1601): <b>Parse error</b>: syntax error, unexpected T_ELSE in <b>/home/content/40/8529140/html/webapps/projects/functions/DB_Functions.php</b> on line <b>45</b><br />
05-23 11:07:10.758: E/JSON Parser(1601): Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
Your
elsestatement is in the wrong position with respect to the closing braces. If you move one of the}s before the secondelseit will work. Actually maybe it won’t, you also have a stray;, but the other advice still stands.If you indent your code more consistently, you won’t be caught out by this sort of problem.
Also: Don’t use the
mysql_*functions. Learn to use PDO and parameterised queries.