Well, it is probably simple for most of you. But it is returning errors for me.

Just a heads up, I am creating registration with mySQL database and I am using "email" in place of normal "username" during registration.

Here is code for page after registration has been attempted:

?>
<html>
</head>
<body>

<p>
  <? displayStatus(); ?>
</p>
<p>&nbsp; </p>
</body>
</html>

<?
   return;
}

/**
 * Determines whether or not to show to sign-up form
 * based on whether the form has been submitted, if it
 * has, check the database for consistency and create
 * the new account.
 */
if(isset($_POST['subjoin'])){
   /* Make sure all fields were entered */
   if(!$_POST['email'] || !$_POST['password'] || !$_POST['fullname'] || !$_POST['birthday'] || !$_POST['birthmonth'] || !$_POST['birthyear'] || !$_POST['gender']){ 
      die('You must completely fill out all fields to register. Please try signing up again.');
   }

   /* Spruce up username, check length */
   $_POST['email'] = trim($_POST['email']);
   if(strlen($_POST['email']) > 40){
      die("Sorry, the email you provided is longer than 40 characters, please shorten it.");
   }

   /* Check if username is already in use */
   if(mysql_num_rows($email) > 0 ) { //check if there is already an entry for that username
 echo "Already taken";
   }
   
   if(!$_POST['email']){
      die('You did not fill in the email field');
}
   /* Add the new account to the database */
   $md5pass = md5($_POST['password']);
   $_SESSION['reguname'] = $_POST['email'];
   $_SESSION['regresult'] = addNewEmail($_POST['email'], $md5pass);
   $_SESSION['registered'] = true;
   echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
   return;
}
else{
?>

I am getting errors for:

Notice: Undefined variable: email in C:\xampp\htdocs\Grouplete\register.php on line 36

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\xampp\htdocs\Grouplete\register.php on line 36

Fatal error: Call to undefined function addNewEmail() in C:\xampp\htdocs\Grouplete\register.php on line 46

<html>
</head>
<body>

<p>
  <? displayStatus(); ?>
</p>
<p>&nbsp; </p>
</body>
</html>

<?
   return;
}

/**
 * Determines whether or not to show to sign-up form
 * based on whether the form has been submitted, if it
 * has, check the database for consistency and create
 * the new account.
 */
if(isset($_POST['subjoin'])){
   /* Make sure all fields were entered */
   if(!$_POST['email'] || !$_POST['password'] || !$_POST['fullname'] || !$_POST['birthday'] || !$_POST['birthmonth'] || !$_POST['birthyear'] || !$_POST['gender']){ 
      die('You must completely fill out all fields to register. Please try signing up again.');
   }
   
   
   	if(!$_POST['email']){ // this is pointless here, you already checked if all the form fields had been filled in above
	  die('You did not fill in the email field');
	}
   

   /* Spruce up username, check length */
   $email = trim($_POST['email']); // set the email variable that you were not setting and causing the error
   
   if(strlen($email) > 40){
      die("Sorry, the email you provided is longer than 40 characters, please shorten it.");
   }
   
	/* Check if username is already in use */
	if(mysql_num_rows($email) > 0 ) { //check if there is already an entry for that username
		echo "Already taken";
	}
	
   /* Add the new account to the database */
   $md5pass = md5($_POST['password']);
   $_SESSION['reguname'] = $_POST['email'];
   $_SESSION['regresult'] = addNewEmail($_POST['email'], $md5pass);
   $_SESSION['registered'] = true;
   echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
   return;
}
else{
?>

What is wrong with this registration page? I am getting the "registration failed error message...

<?
session_start(); 
include("database.php");

/**
 * Returns true if the email has been taken
 * by another user, false otherwise.
 */
function emailTaken($email){
   global $conn;
   if(!get_magic_quotes_gpc()){
      $email = addslashes($email);
   }
   $q = "select email from users where email = '$email'";
   $result = mysql_query($q,$conn);
   return (mysql_numrows($result) > 0);
}

/**
 * Inserts the given (email, password) pair
 * into the database. Returns true on success,
 * false otherwise.
 */
function addNewEmail($email, $password){
   global $conn;
   $q = "INSERT INTO users VALUES ('$email', '$password')";
   return mysql_query($q,$conn);
   $q = "INSERT INTO virtuala VALUES ('$email')";
   return mysql_query($q,$conn);
}

/**
 * Displays the appropriate message to the user
 * after the registration attempt. It displays a 
 * success or failure status depending on a
 * session variable set during registration.
 */
function displayStatus(){
   $email = $_SESSION['regemail'];
   if($_SESSION['regresult']){
?>

<h1>Registered!</h1>
<p>Your <b><? echo $email; ?></b>, your information has been added to Grouplete, you may now <a href="index.php" title="Login">log in</a>.</p>

<?
   }
   else{
?>

<h1>Registration Failed</h1>
<p>We're sorry, but an error has occurred and your registration for the username <b><? echo $email; ?></b>, could not be completed.<br>
Please try again at a later time.</p>

<?
   }
   unset($_SESSION['regemail']);
   unset($_SESSION['registered']);
   unset($_SESSION['regresult']);
}

if(isset($_SESSION['registered'])){
/**
 * This is the page that will be displayed after the
 * registration has been attempted.
 */
?>
<html>
</head>

<body>
  <? displayStatus(); ?>
</body>


</html>

<?
   return;
}

/**
 * Determines whether or not to show to sign-up form
 * based on whether the form has been submitted, if it
 * has, check the database for consistency and create
 * the new account.
 */
if(isset($_POST['subjoin'])){
   /* Make sure all fields were entered */
   if(!$_POST['email'] || !$_POST['password'] || !$_POST['fullname'] || !$_POST['birthday'] || !$_POST['birthmonth'] || !$_POST['birthyear'] || !$_POST['gender']){ 
      die('You must completely fill out all fields to register. Please try signing up again.');
   }

   /* Spruce up username, check length */
   $_POST['email'] = trim($_POST['email']);
   if(strlen($_POST['email']) > 40){
      die("Sorry, the email you provided is longer than 40 characters, please shorten it.");
   }

   /* Check if username is already in use */
   if(mysql_num_rows($email) > 0) { //check if there is already an entry for that username
 echo "Already taken";
   }
   
   /* Add the new account to the database */
   $md5pass = md5($_POST['password']);
   $_SESSION['regemail'] = $_POST['email'];
   $_SESSION['regresult'] = addNewEmail($_POST['email'], $md5pass);
   $_SESSION['registered'] = true;
   header("Location: ".getenv('http_referer'));
   return;
}
else{
?>

<html>
<title>Sign Up</title>
<body>
<img src="Images/Grouplete Logo.JPG" /><br /><br />
<FONT FACE="Rockwell" color="#666666"SIZE="5"><b>Sign Up</b></FONT><br /><br />
<FONT FACE="Rockwell" color="#666666"SIZE="4">It's free and anyone is welcome to join</FONT><br /><br />
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post">
<table align="left" border="0" cellspacing="5" cellpadding="3">
<tr><td><FONT FACE="Rockwell" color="#666666" SIZE="2"><div style="text-align: right;">Full Name:</div></FONT></td><td><input type="text" name="fullname" maxlength="40"></td></tr>
<tr><td><FONT FACE="Rockwell" color="#666666" SIZE="2"><div style="text-align: right;">Your Email:</div></FONT></td><td><input type="text" name="email" maxlength="40"></td></tr>
<tr><td><FONT FACE="Rockwell" color="#666666" SIZE="2"><div style="text-align: right;">Create Password:</div></td><td><input type="password" name="password" maxlength="32"></td></tr>
<tr><td>
<tr><td><FONT FACE="Rockwell" color="#666666" SIZE="2"><div style="text-align: right;">Birthday:</div></FONT></td><td>
    <select name="birthmonth">
        <option value='1'>Jan</option>
        <option value='2'>Feb</option>
        <option value='3'>Mar</option>
        <option value='4'>Apr</option>
        <option value='5'>May</option>
        <option value='6'>Jun</option>
        <option value='7'>Jul</option>
        <option value='8'>Aug</option>
        <option value='9'>Sep</option>
        <option value='10'>Oct</option>
        <option value='11'>Nov</option>
        <option value='12'>Dec</option>
    </select>
    <select name="birthday">
        <option value='1'>1</option>
        <option value='2'>2</option>
        <option value='3'>3</option>
        <option value='4'>4</option>
        <option value='5'>5</option>
        <option value='6'>6</option>
        <option value='7'>7</option>
        <option value='8'>8</option>
        <option value='9'>9</option>
        <option value='10'>10</option>
        <option value='11'>11</option>
        <option value='12'>12</option>
        <option value='13'>13</option>
        <option value='14'>14</option>
        <option value='15'>15</option>
        <option value='16'>16</option>
        <option value='17'>17</option>
        <option value='18'>18</option>
        <option value='19'>19</option>
        <option value='20'>20</option>
        <option value='21'>21</option>
        <option value='22'>22</option>
        <option value='23'>23</option>
        <option value='24'>24</option>
        <option value='25'>25</option>
        <option value='26'>26</option>
        <option value='27'>27</option>
        <option value='28'>28</option>
        <option value='29'>29</option>
        <option value='30'>30</option>
        <option value='31'>31</option>
    </select>
    <select name="birthyear">
        <option value='1911'>1911</option>
        <option value='1912'>1912</option>
        <option value='1913'>1913</option>
        <option value='1914'>1914</option>
        <option value='1915'>1915</option>
        <option value='1916'>1916</option>
        <option value='1917'>1917</option>
        <option value='1918'>1918</option>
        <option value='1919'>1919</option>
        <option value='1920'>1920</option>
        <option value='1921'>1921</option>
        <option value='1922'>1922</option>
        <option value='1923'>1923</option>
        <option value='1924'>1924</option>
        <option value='1925'>1925</option>
        <option value='1926'>1926</option>
        <option value='1927'>1927</option>
        <option value='1928'>1928</option>
        <option value='1929'>1929</option>
        <option value='1930'>1930</option>
        <option value='1931'>1931</option>
        <option value='1932'>1932</option>
        <option value='1933'>1933</option>
        <option value='1934'>1934</option>
        <option value='1935'>1935</option>
        <option value='1936'>1936</option>
        <option value='1937'>1937</option>
        <option value='1938'>1938</option>
        <option value='1939'>1939</option>
        <option value='1940'>1940</option>
        <option value='1941'>1941</option>
        <option value='1942'>1942</option>
        <option value='1943'>1943</option>
        <option value='1944'>1944</option>
        <option value='1945'>1945</option>
        <option value='1946'>1946</option>
        <option value='1947'>1947</option>
        <option value='1948'>1948</option>
        <option value='1949'>1949</option>
        <option value='1950'>1950</option>
        <option value='1951'>1951</option>
        <option value='1952'>1952</option>
        <option value='1953'>1953</option>
        <option value='1954'>1954</option>
        <option value='1955'>1955</option>
        <option value='1956'>1956</option>
        <option value='1957'>1957</option>
        <option value='1958'>1958</option>
        <option value='1959'>1959</option>
        <option value='1960'>1960</option>
        <option value='1961'>1961</option>
        <option value='1962'>1962</option>
        <option value='1963'>1963</option>
        <option value='1964'>1964</option>
        <option value='1965'>1965</option>
        <option value='1966'>1966</option>
        <option value='1967'>1967</option>
        <option value='1968'>1968</option>
        <option value='1969'>1969</option>
        <option value='1970'>1970</option>
        <option value='1971'>1971</option>
        <option value='1972'>1972</option>
        <option value='1973'>1973</option>
        <option value='1974'>1974</option>
        <option value='1975'>1975</option>
        <option value='1976'>1976</option>
        <option value='1977'>1977</option>
        <option value='1978'>1978</option>
        <option value='1979'>1979</option>
        <option value='1980'>1980</option>
        <option value='1981'>1981</option>
        <option value='1982'>1982</option>
        <option value='1983'>1983</option>
        <option value='1984'>1984</option>
        <option value='1985'>1985</option>
        <option value='1986'>1986</option>
        <option value='1987'>1987</option>
        <option value='1988'>1988</option>
        <option value='1989'>1989</option>
        <option value='1990'>1990</option>
        <option value='1991'>1991</option>
        <option value='1992'>1992</option>
        <option value='1993'>1993</option>
        <option value='1994'>1994</option>
        <option value='1995'>1995</option>
        <option value='1996'>1996</option>
        <option value='1997'>1997</option>
        <option value='1998'>1998</option>
        <option value='1999'>1999</option>
        <option value='2000'>2000</option>
        <option value='2001'>2001</option>
        <option value='2002'>2002</option>
        <option value='2003'>2003</option>
        <option value='2004'>2004</option>
        <option value='2005'>2005</option>
        <option value='2006'>2006</option>
        <option value='2007'>2007</option>
        <option value='2008'>2008</option>
        <option value='2009'>2009</option>
        <option value='2010'>2010</option>
    </select>
<tr><td><FONT FACE="Rockwell" color="#666666" SIZE="2"><div style="text-align: right;">Gender:</div></FONT></td><td>
    <select name="gender">
        <option value='1'>female</option>
        <option value='2'>male</option>
    </select></td></tr>
</form>

<tr><td>
<tr><td colspan="2" align="right"><input type="submit" name="subjoin" value="Sign Up"></td></tr>
</table>
</form>
</body>
</html>


<?
}
?>
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.