Jump to content

Registration form error.


Foser

Recommended Posts

Here's my script.

<?php
include("config.php");
//user data
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['mail']);
$password = md5($_POST['pw']);
$rights = "user";

$taken = false;

$q = "SELECT * FROM user_info";
$ms = mysql_query($q);

while($user_info = mysql_fetch_assoc($ms)){
if ($_POST['user'] == $userinfo['username']) {
$taken = true;
echo "This username has already been taken.<br>";}

if ($_POST['email'] == $userinfo['e-mail']){
$taken = true;
echo "This E-mail has already been registered.<br>.";}} 


if (!$take){
$qu = "INSERT INTO user_info (username, email, password, rights) VALUES('$username', '$email', '$password', '$rights')";
mysql_query($qu) or die mysql_error();
echo "You are now registered, you may now login."; }

?>

 

the error is on the line:

$qu = "INSERT INTO user_info (username, email, password, rights) VALUES('$username', '$email', '$password', '$rights')";

 

 

I can't seem to see any error, is it possible that my data type is set incorectly for the data?

Their all set to varchar.

Link to comment
Share on other sites

May be this will help you.

 

while($user_info = mysql_fetch_assoc($ms)){
if ($_POST['user'] == $user_info['username']) {
$taken = true;
echo "This username has already been taken.<br>";}

if ($_POST['email'] == $user_info['e-mail']){
$taken = true;
echo "This E-mail has already been registered.<br>.";}}

Link to comment
Share on other sites

For mine i use this, yours seems abit over complicated

 

<?php

$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['email']);

$check_user = mysql_query("SELECT username FROM table WHERE username='$username'"); 
$username_exist = mysql_num_rows($check_user);

$check_email = mysql_query("SELECT email FROM table WHERE email='$email'"); 
$email_exist = mysql_num_rows($check_email);

// form

if ($username_exist > 0)
{
	echo ("Sorry, but your username already exists. Please select another. <br />");
}

if ($email_exist > 0)
{
	echo ("Sorry, but you may only have one account per email address. <br />");
}
?>

 

Hope that helps,

 

~ Chocopi

Link to comment
Share on other sites

<?php
include("config.php");
//user data
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['mail']);
$password = md5(sha1(md5(md5($_POST['pw']))));
$rights = "user";
// this line is line 8
$check_user2 = mysql_query("SELECT user FROM user_info WHERE user = '$username'");
$check_user = mysql_num_rows($check_user2);
$check_email2 = mysql_query("SELECT email FROM user_info WHERE email = '$email'");
$check_email = mysql_num_rows($check_email2);


if ($username > 0 ) {
echo "This username has already been taken.<br>";}

if ($email > 0 ){
echo "This E-mail has already been registered.<br>.";}


else {
$qu = "INSERT INTO user_info (username, email, password, rights) VALUES('$username', '$email', '$password', '$rights')";
mysql_query($qu) or die(mysql_error());
echo "You are now registered, you may now login."; }

?>

 

My error I have now is very odd. it is at a line where no information or commands are.

Parse error: syntax error, unexpected T_LOGICAL_OR in C:\WAMP\www\Tutorials\PHP_MYSQL\Simple_MySQL\Login\config.php on line 8

 

I amde it easy to spot on my code.

Link to comment
Share on other sites

aha, ok i fixed it, now i it works

 

but get a

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\WAMP\www\Tutorials\PHP_MYSQL\Simple_MySQL\Login\regproc.php on line 10

  error, What is another similar command I can use to replace it with so I dont get this error.

 

thanks alot guys!

Link to comment
Share on other sites

Try this instead of Mysql_num_rows use mysql_result.

<?php
include("config.php");
//user data
$username = mysql_real_escape_string($_POST['username']);
$email = mysql_real_escape_string($_POST['mail']);
$password = md5(sha1(md5(md5($_POST['pw']))));
$rights = "user";
// this line is line 8
$check_user2 = mysql_query("SELECT user FROM user_info WHERE user = '$username'");
$check_user = mysql_result($check_user2);
$check_email2 = mysql_query("SELECT email FROM user_info WHERE email = '$email'");
$check_email = mysql_result($check_email2);


if (($check_user, 0) > 0 ) {
echo "This username has already been taken.<br>";}

if (($check_email,0) > 0 ){
echo "This E-mail has already been registered.<br>.";}


else {
$qu = "INSERT INTO user_info (username, email, password, rights) VALUES('$username', '$email', '$password', '$rights')";
mysql_query($qu) or die(mysql_error());
echo "You are now registered, you may now login."; }

?>

Link to comment
Share on other sites

Warning: Wrong parameter count for mysql_result() in C:\WAMP\www\Tutorials\PHP_MYSQL\Simple_MySQL\Login\regproc.php on line 10

Warning: Wrong parameter count for mysql_result() in C:\WAMP\www\Tutorials\PHP_MYSQL\Simple_MySQL\Login\regproc.php on line 12
You are now registered, you may now login.

 

Same issue, maybe is it because wamp does not support these functions?

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.