Reputation: 49
So I have a user form
registration, and what I am trying to do is: while a user is typing an email, the website will check my database if the email already has been used or not, before they hit the register button.
The problem I'm having is that it won't check. It will only display "Searching in database". I just want to post my code so maybe someone can catch the error I'm making.
This is part of my registration page:
<tr class = "spacearound"> <!-- input for email address -->
<th>  Email: </th>
<td>
<input type = "text" id = "user_email" size = "50"
maxlength = "50" name = "u_email"
title = "Enter your email please"
onchange = "EmailCheck();"
onkeypress = "return InputLimiter(event, 'emailCharacters');"
/> *
<span id = "email_status"> </span>
</td>
<td><?php echo $message; ?></td>
</tr>
This is my JavaScript file, "checkusers.js":
$('#user_email').keyup(function() {
var username = $(this).val();
$('#email_status').text('Searching database.');
if(username != ''){
$.post('checkemail.php',{ username: username }, function(data) {
$('#email_status').text(data);
});
} else {
$('#email_status').text('');
}
});
And this is my php file, where I check for an email, "checkemail.php":
<?php
define('dbHost', 'xxxxx');
define('dbUser', 'xxxxx');
define('dbPassword', 'xxxxx');
define('dbName', 'xxxxx');
error_reporting(E_ALL ^ E_NOTICE);
$db = mysqli_connect(dbHost, dbUser, dbPassword, dbName);
if(mysqli_connect_errno()) { //if connection database fails
echo("Connection not established ");
} //by now we have connection to the database
if(isset($_POST))['username'])){ //if we get the name succesfully
$username = mysqli_real_escape_string($db, $_POST['username']);
if (!empty($username)) {
$username_query = mysqli_query($db, "SELECT COUNT(`firstName`) FROM `users` WHERE `email`='$username'");
$username_result = mysqli_fetch_row($username_query);
if ($username_result[0] == '0') {
echo 'Email available!';
} else {
echo 'Sorry, the email '.$username.' is taken.';
}
}
}
?>
Upvotes: 1
Views: 14655
Reputation: 174
you have error here
if(isset($_POST))['username'])){
it should be
if(isset($_POST['username'])){
$_POST['username']
should be enclosed inside isset function
Upvotes: 4