3v4l.org

run code in 300+ PHP versions simultaneously
<?php //include('inc/config.php'); // Define variables and initialize with empty values $username = $selected_role = $password = $confirm_password = ""; $username_err = $password_err = $confirm_password_err = ""; $host = 'localhost'; $username = 'mossgate_t'; $password = 'manchester123'; $dbname = 'mossgate_NGF'; // Create a database connection $conn = mysqli_connect($host, $username, $password, $dbname); // Check the connection if (!$conn) { die('Connection failed: ' . mysqli_connect_error()); } else { echo "error"; } try { $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } $db = mysqli_connect($servername,$username,$password,$dbname); if(!$db) { die("Connection failed: " . mysqli_connect_error()); } else { echo "error"; } class DBController { private $host = "localhost"; private $user = "mossgate_t"; private $password = "manchester123"; private $database = "mossgate_NGF"; private $conn; function __construct() { $this->conn = $this->connectDB(); } function connectDB() { $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database); return $conn; } function runQuery($query) { $result = mysqli_query($this->conn,$query); while($row=mysqli_fetch_assoc($result)) { $resultset[] = $row; } if(!empty($resultset)) return $resultset; } function numRows($query) { $result = mysqli_query($this->conn,$query); $rowcount = mysqli_num_rows($result); return $rowcount; } } // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] === "POST") { $username = trim($_POST["username"]); echo "in"; echo $username; // Validate username if(empty(trim($_POST["username"]))) { echo "step1"; $username_err = "Please enter a username."; echo "Please enter a username."; } if(!preg_match('/^[a-zA-Z0-9_]+$/', trim($_POST["username"]))) { echo "3"; $username_err = "Username can only contain letters, numbers, and underscores."; echo "Username can only contain letters, numbers, and underscores."; } else { echo "in2"; // Prepare a select statement $sql = "SELECT username FROM NGF_voucher_LOGIN WHERE username = ?"; if($stmt = mysqli_prepare($db, $sql)) { echo "step2b"; // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "s", $param_username); // Set parameters $param_username = trim($_POST["username"]); // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)) { echo "step2c"; //store result mysqli_stmt_store_result($stmt); if(mysqli_stmt_num_rows($stmt) == 1) { echo "step2d"; $username_err = "This username is already taken."; echo "This username is already taken."; } else { echo "step2e"; $username = trim($_POST["username"]); } } else { echo "Oops! Something went wrong. Please try again later."; } // Close statement mysqli_stmt_close($stmt); } else { echo"hi"; } // Validate password if(empty(trim($_POST["password"]))){ $password_err = "Please enter a password."; } elseif(strlen(trim($_POST["password"])) < 6){ $password_err = "Password must have atleast 6 characters."; } else{ $password = trim($_POST["password"]); } // Validate confirm password if(empty(trim($_POST["confirm_password"]))){ $confirm_password_err = "Please confirm password."; } else{ $confirm_password = trim($_POST["confirm_password"]); if(empty($password_err) && ($password != $confirm_password)){ $confirm_password_err = "Password did not match."; } } // Check input errors before inserting in database if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){ // Prepare an insert statement $sql = "INSERT INTO NGF_voucher_LOGIN (username, password, role) VALUES (?,?,?)"; $selected_role = $_POST["RoleType"]; if($stmt = mysqli_prepare($db, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "sss", $param_username, $param_password,$selected_role); // Set parameters $param_username = $username; $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ // Redirect to login page header("location: login.php"); } else{ echo "Oops! Something went wrong. Please try again later."; } // Close statement mysqli_stmt_close($stmt); } } // Close connection mysqli_close($conn); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Sign Up</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <style> body{ font: 14px sans-serif; } .wrapper{ width: 360px; padding: 20px; } </style> </head> <body> <div class="wrapper"> <h2>Sign Up</h2> <p>Please fill this form to create an account.</p> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <div class="form-group"> <label>Username</label> <input type="text" name="username" class="form-control <?php echo (!empty($username_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $username; ?>"> <span class="invalid-feedback"><?php echo $username_err; ?></span> </div> <br> <div class="form-group"> <label for="Role">Role type:</label> <select name="RoleType" id="RoleType"> <option value="Canteen">Canteen</option> <option value="Shiftcontroller">Shiftcontroller</option> <option value="Admin">Admin</option> </select> </div> <div class="form-group"> <label>Password</label> <input type="password" name="password" class="form-control <?php echo (!empty($password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $password; ?>"> <span class="invalid-feedback"><?php echo $password_err; ?></span> </div> <div class="form-group"> <label>Confirm Password</label> <input type="password" name="confirm_password" class="form-control <?php echo (!empty($confirm_password_err)) ? 'is-invalid' : ''; ?>" value="<?php echo $confirm_password; ?>"> <span class="invalid-feedback"><?php echo $confirm_password_err; ?></span> </div> <div class="form-group"> <input type="submit" class="btn btn-primary" value="Submit"> <input type="reset" class="btn btn-secondary ml-2" value="Reset"> </div> <p>Already have an account? <a href="login.php">Login here</a>.</p> </form> </div> </body> </html>

preferences:
24.61 ms | 408 KiB | 5 Q