<?php
include("resources/dbconnect.php");

function clean_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

ob_start();

// Connect to server and select databse.
$mysqli = dbconnect();

// define variables and set to empty values
$username = $password = $passwordconf = $email = $emailconf = "";
$error = $posted = False;
$tbl_name="users";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $username = clean_input($_POST["myusername"]);
  $password = clean_input($_POST["mypassword"]);
  $passwordconf = clean_input($_POST["mypasswordconf"]);
  $email = clean_input($_POST["myemail"]);
  $emailconf = clean_input($_POST["myemailconf"]);
  $posted = True;
}

echo $termsagree;
?>

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="registrationform" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Participant Registration</strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername" value="<?php echo $username ?>"></td>
</tr>
<?php
  if($username == "" && $posted) {
    echo "<tr><td style ='color:red; text-align:center' colspan=3> Please enter a username </td></tr>";
    $error = True;
  }
  else {
    $qry_checkuser = "SELECT id FROM $tbl_name WHERE username=?";

    if (!($stmt = $mysqli->prepare($qry_checkuser))) {
        echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }

    $stmt->bind_param("s", $username);
    $stmt->execute();
    $stmt->store_result();

    if($stmt->num_rows > 0) {
      echo "<tr><td style ='color:red; text-align:center' colspan=3> Username unavailable </td></tr>";
      $error = True;
    }

    $stmt->close();
  }
?>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="password" id="mypassword" value="<?php echo $password ?>"></td>
</tr>
<?php
  if($password == "" && $posted) {
    echo "<tr><td style ='color:red; text-align:center' colspan=3> Please enter a password </td></tr>";
    $error = True;
  }
?>
<tr>
<td>Confirm Password</td>
<td>:</td>
<td><input name="mypasswordconf" type="password" id="mypasswordconf" value="<?php echo $passwordconf ?>"></td>
</tr>
<?php
  if($password != $passwordconf) {
    echo "<tr><td style ='color:red; text-align:center' colspan=3> Passwords do not match </td></tr>";
    $error = True;
  }
?>
<tr>
<td>E-Mail</td>
<td>:</td>
<td><input name="myemail" type="text" id="myemail" value="<?php echo $email ?>"></td>
</tr>
<?php
  if($email == "" && $posted) {
    echo "<tr><td style ='color:red; text-align:center' colspan=3> Please enter an email address </td></tr>";
    $error = True;
  }
?>
<tr>
<td>Confirm E-Mail</td>
<td>:</td>
<td><input name="myemailconf" type="text" id="myemailconf" value="<?php echo $emailconf ?>"></td>
</tr>
<?php
  if($email != $emailconf) {
    echo "<tr><td style ='color:red; text-align:center' colspan=3> Emails do not match </td></tr>";
    $error = True;
  }
  else {
    $qry_checkemail = "SELECT id FROM $tbl_name WHERE email=?";

    if (!($stmt = $mysqli->prepare($qry_checkemail))) {
        echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }

    $stmt->bind_param("s", $email);
    $stmt->execute();
    $stmt->store_result();

    if($stmt->num_rows > 0) {
      echo "<tr><td style ='color:red; text-align:center' colspan=3> Email address already registered </td></tr>";
      $error = True;
    }

    $stmt->close();
  }
?>
<tr>
<td colspan=3>
  <input name="termsagree" type="checkbox" id="termsagree"> I agree to allow my responses to be used for research purposes.
</td>
<?php
  if(!(isset($_POST['termsagree'])) && $posted) {
    echo "<tr><td style ='color:red; text-align:center' colspan=3> Please read and accept the terms </td></tr>";
    $error = True;
  }
?>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Register"></td>
</tr>
<tr>
<td colspan=3>Already registered? <a href="login.php">Login to your account</a></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
<?php
  if(!$error && $username != "" && $password != "" && $email != "") {

    $qry_insertuser = "INSERT INTO $tbl_name (username, password, email) VALUES (?,?,?)";

    if (!($stmt = $mysqli->prepare($qry_insertuser))) {
        echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }

    $stmt->bind_param("sss", $username, crypt($password), $email);
    $stmt->execute();
    $stmt->store_result();

    if($mysqli->num_rows = 1) {
      echo "User $myusername successfully registered!";
    }
    else {
      echo "Error registering user $myusername";
    }
    header("location:login.php");
    exit;
  }

  ob_end_flush();
?>
