aboutsummaryrefslogtreecommitdiff
path: root/verify.php
diff options
context:
space:
mode:
authorarf20 <aruizfernandez05@gmail.com>2024-03-16 02:51:06 +0100
committerarf20 <aruizfernandez05@gmail.com>2024-03-16 02:51:06 +0100
commitda57beb574fb9f756a7de036e8003f75ec47432c (patch)
treeb34bba686432f972816bb649d47431fcd2efa66e /verify.php
parentecdcfff2460db708ae4b471140335ce47aaaf54b (diff)
downloadarfnet2-cstims-da57beb574fb9f756a7de036e8003f75ec47432c.tar.gz
arfnet2-cstims-da57beb574fb9f756a7de036e8003f75ec47432c.zip
Email verification
Diffstat (limited to 'verify.php')
-rw-r--r--verify.php105
1 files changed, 105 insertions, 0 deletions
diff --git a/verify.php b/verify.php
new file mode 100644
index 0000000..5382f4f
--- /dev/null
+++ b/verify.php
@@ -0,0 +1,105 @@
+<?php
+// Initialize the session
+session_start();
+
+// Check if the user is already logged in, if yes then redirect him to welcome page
+if (isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true) {
+ header("location: /".$_SESSION["type"].".php");
+ exit;
+}
+
+// Include config file
+require_once "config.php";
+
+// Define variables and initialize with empty values
+$code = "";
+$code_err = "";
+$verification_success = false;
+
+// Processing form data when form is submitted
+if ($_SERVER["REQUEST_METHOD"] == "GET") {
+ $code_err = "Invalid code.";
+ if (isset($_GET["code"]) && (strlen($_GET["code"]) == 16)) {
+ $code_err = "";
+ $code = $_GET["code"];
+ }
+
+ // Validate credentials
+ if (empty($code_err)) {
+ // Prepare a select statement
+ $sql = "SELECT id, username, status, type FROM users WHERE verifycode = ?";
+
+ if ($stmt = mysqli_prepare($link, $sql)) {
+ // Bind variables to the prepared statement as parameters
+ mysqli_stmt_bind_param($stmt, "s", $param_code);
+
+ // Set parameters
+ $param_code = $code;
+
+ // Attempt to execute the prepared statement
+ if (mysqli_stmt_execute($stmt)) {
+ // Store result
+ mysqli_stmt_store_result($stmt);
+
+ // Check if username exists, if yes then verify password
+ if (mysqli_stmt_num_rows($stmt) == 1) {
+ // Bind result variables
+ mysqli_stmt_bind_result($stmt, $id, $username, $status, $type);
+ if (mysqli_stmt_fetch($stmt)){
+ if ($status == "unverified") {
+ // set verified
+ $sql = "UPDATE users SET status = 'verified' WHERE id = ?";
+ if ($stmt = mysqli_prepare($link, $sql)) {
+ mysqli_stmt_bind_param($stmt, "s", $param_id);
+ $param_id = $id;
+ if (mysqli_stmt_execute($stmt) && mysqli_stmt_affected_rows($stmt) == 1) {
+ $verification_success = true;
+ } else {
+ echo "SQL error, ask arf20.";
+ }
+ }
+ } else {
+ $code_err = "Already verified.";
+ }
+ }
+ } else {
+ // Display an error message if username doesn't exist
+ $code_err = "Code does not exist.";
+ }
+ } else{
+ echo "Oops! Something went wrong. Please try again later.";
+ }
+
+ // Close statement
+ mysqli_stmt_close($stmt);
+ }
+ }
+
+ // Close connection
+ mysqli_close($link);
+}
+?>
+
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <title>CSTIMS Login</title>
+ <link rel="stylesheet" type="text/css" href="/style.css">
+ </head>
+ <body>
+ <header><a href="https://arf20.com/">
+ <img src="arfnet_logo.png" width="64"><span class="title"><strong>ARFNET</strong></span>
+ </a></header>
+ <hr>
+ <main>
+ <div class="wrapper">
+ <h2>CSTIMS Verification</h2>
+ <?php
+ if ($verification_success) echo "Verification successful, welcome to ARFNET $username.";
+ else echo "Verification failed: ".$code_err;
+ ?>
+ </div>
+ </main>
+ </body>
+</html>