Check if someone is already registered...
Moderator: General Moderators
Check if someone is already registered...
Hello, what is the lines that I need to output "Username already registered" for a signup form? Thanks.
- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
Code: Select all
<p>Username already registered.</p>Basically you need to test to see if the username is in the database (or flat file) and if it is you know that it's been registered and if it isn't then you know it hasn't.
Mac
okay, i thought it would only be a line. I will also post my scripts.
I want it so someone registers, and the username is then input into the database and no one else can use that username. Now I can hit refresh, resend the data, and enter another row with the same info. So basically I can have an unlimited amount of usernames called "Random", which I don't want. I know it will probably be an If statement, I don't know how to set it up though. Here are my scripts:
FORM:
PROCESS THE FORM:
Thanks in advance.
I want it so someone registers, and the username is then input into the database and no one else can use that username. Now I can hit refresh, resend the data, and enter another row with the same info. So basically I can have an unlimited amount of usernames called "Random", which I don't want. I know it will probably be an If statement, I don't know how to set it up though. Here are my scripts:
FORM:
Code: Select all
<BR><BR><BR>
<h1>Please signup!</h1>
<p align="center">
<BR><BR><BR>
<Table border=0>
<form action="signup_process.php" method="post">
<tr valign=top>
<th align=right>Desired Username:<td> <input type="text" name="username" maxlength=20><BR>
<tr valign=top>
<th align=right>Desired Password:<td> <input type="password" name="password" maxlength=20><BR>
<tr valign=top>
<th align=right>First Name:<td> <input type="text" name="f_name" maxlength=25><BR>
<tr valign=top>
<th align=right>Last Name:<td> <input type="text" name="l_name" maxlength=25><BR>
<tr valign=top>
<th align=right>Email Address:<td> <input type="text" name="email" maxlength="60"><BR>
<tr valign=top>
<th align=right>Age:<td> <input type="text" name="age" maxlength="3"><BR>
<tr valign=top>
<th align=right>Gender:<td> Male<input type="radio" name="male" value="male"> Female<input type="radio" name="female" value="female"><BR></td>
</table>
<p align="center">
<input type="submit" value="Finish signup!">Code: Select all
<?php
$dbuser = "random";
$dbpass = "random";
$dbname = "random";
$uname = $_POST['username'];
$pword = $_POST['password'];
$fname = $_POST['f_name'];
$lname = $_POST['l_name'];
$email = $_POST['email'];
$age = $_POST['age'];
$gender = $_POST['gender'];
$to = $_POST['email'];
$subject = "Thank you for signing up!";
$link = mysql_connect("localhost", $dbuser, $dbpass) or die ("Database Error: Couldn't Connect!");
$message = "Thank you for signing up, $fname! Your account has been entered into our database.
Username: $uname
Password: $pword
PLEASE DO NOT REPLY TO THIS EMAIL.";
$addy = "From: no-reply@travisbsd.no-ip.org";
mysql_select_db($dbname, $link) or die ("Couldn't open $db!");
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)
values( '$uname', '$pword', '$fname', '$lname', '$email', '$age', '$gender' )";
mysql_query($query, $link) or die ("Couldn't input data!");
mysql_close($link);
print "<BR>
<BR>
<BR>
";
print "Thanks for signing up!";
mail($to, $subject, $message, $addy);
?>ah its easy now - before we didnt know the structure of your db or anything. how are we to guess? anyway...
Code: Select all
...
mysql_select_db($dbname, $link) or die ("Couldn't open $db!");
$query="select uname from user_info were username='$uname'";
$result=mysql_query($query);
if (mysql_num_rows($result)==0) {
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)
values( '$uname', '$pword', '$fname', '$lname', '$email', '$age', '$gender' )";
mysql_query($query, $link) or die ("Couldn't input data!");
} else { //
print "Username already taken";
}
mysql_close($link);
...It is saying line 28 has an error, which
is somewhere in there.
Code: Select all
<? $result=mysql_query($query);
if (mysql_num_rows($result)==0) {
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)
?>- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
its missing a quote off the end
Code: Select all
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)
?>Code: Select all
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)";
?>- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
Not if they've just copied and pasted the other code you posted:d1223m wrote:its missing a quote off the end
Code: Select all
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender) ?>Code: Select all
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)"; ?>
Code: Select all
$query = "INSERT INTO user_info (username, password, f_name, l_name, email, age, gender)
values( '$uname', '$pword', '$fname', '$lname', '$email', '$age', '$gender' )";Mac
Code: Select all
<?php
$dbuser = "random";
$dbpass = "random";
$dbname = "random";
$uname = $_POST['username'];
$pword = $_POST['password'];
$fname = $_POST['f_name'];
$lname = $_POST['l_name'];
$email = $_POST['email'];
$age = $_POST['age'];
$gender = $_POST['gender'];
$to = $_POST['email'];
$subject = "Thank you for signing up!";
$link = mysql_connect("localhost", $dbuser, $dbpass) or die ("Database Error: Couldn't Connect!");
$message = "Thank you for signing up, $fname! Your account has been entered into our database.
Username: $uname
Password: $pword
PLEASE DO NOT REPLY TO THIS EMAIL.";
$addy = "From: no-reply@travisbsd.no-ip.org";
$dbase = mysql_select_db($dbname, $link) or die ("Couldn't open $db!");
$find_username = mysql_query("SELECT `username` FROM `user_info` WHERE `username` = '$uname'");
if (mysql_num_rows($find_username) != 0) {
die("Username has already been taken.");
} else {
$sql = mysql_query("INSERT INTO `user_info` (`username`, `password`, `f_name`, `l_name`, `email`, `age`, `gender`)
VALUES ('$uname', '$pword', '$fname', '$lname', '$email', '$age', '$gender')", $link) or die ("Couldn't input data!");
mysql_close($link);
print "<BR>
<BR>
<BR>
";
print "Thanks for signing up!";
mail($to, $subject, $message, $addy);
}
?>- twigletmac
- Her Royal Site Adminness
- Posts: 5371
- Joined: Tue Apr 23, 2002 2:21 am
- Location: Essex, UK
The query is failing (or the db connection or selection), you need to add some error handling so you can see what's really going wrong. It looks like there's already some or die() statements on the mysql_connect() and mysql_select_db() calls but you really need something on your mysql_query call, so that instead of:
you have
Then you may find that the error MySQL reports (using mysql_error()) will enable you to solve the problem (if not take a good look at phice's code because the answer is in there).
Mac
Code: Select all
$result=mysql_query($query);Code: Select all
$result=mysql_query($query) or die(mysql_error().'<p>'.$query.'</p>');Mac
