| Server IP : 93.86.61.54 / Your IP : 216.73.216.60 Web Server : Apache/2.4.62 (Ubuntu) System : Linux rasin.ddns.net 6.8.0-124-generic #124~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 21:05:19 UTC x86_64 User : www-data ( 33) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/projects/meteo-ca/ |
Upload File : |
<?php
require 'db.php';
$message = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = trim($_POST["username"]);
$email = trim($_POST["email"]);
$password = trim($_POST["password"]);
$confirm_password = trim($_POST["confirm_password"]);
if (empty($username) || empty($email) || empty($password) || empty($confirm_password)) {
$message = "Potrebno je popuniti sva polja!";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$message = "Email format nije validan!";
} elseif ($password !== $confirm_password) {
$message = "Lozinka se ne poklapa!";
} else {
$stmt = $conn->prepare("SELECT id FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows > 0) {
$message = "Korisničko ime već postoji!";
} else {
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $email, $hashed_password);
if ($stmt->execute()) {
header("Location: login.php");
exit();
} else {
$message = "Nešto je bilo pogrešno. Molimo Vas probajte ponovo.";
}
}
$stmt->close();
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Registracija</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
.valid { color: green; }
.invalid { color: red; }
</style>
</head>
<body class="bg-light">
<div class="container mt-5">
<div class="col-md-6 offset-md-3">
<div class="card shadow p-4">
<h3 class="mb-4 text-center">Registracija</h3>
<form method="post" id="registerForm">
<div class="mb-3">
<label>Korisničko ime</label>
<input type="text" name="username" id="username" class="form-control">
<small id="userCheck"></small>
</div>
<div class="mb-3">
<label>Email</label>
<input type="text" name="email" id="email" class="form-control">
<small id="emailCheck"></small>
</div>
<div class="mb-3">
<label>Lozinka</label>
<input type="password" name="password" id="password" class="form-control">
<small id="passCheck"></small>
</div>
<div class="mb-3">
<label>Potvrda lozinke</label>
<input type="password" name="confirm_password" class="form-control">
</div>
<button type="submit" class="btn btn-primary w-100">Registruj</button>
</form>
<p class="text-danger mt-3 text-center"><?php echo $message; ?></p>
<p class="text-center mt-3">Već imate nalog? <a href="login.php">Prijavite se ovde</a></p>
</div>
</div>
</div>
<script>
$(document).ready(function(){
// Username check
$("#username").keyup(function(){
var username = $(this).val().trim();
if(username.length > 2){
$.post("check_username.php", {username: username}, function(data){
if(data == "taken"){
$("#userCheck").text("Username already taken").addClass("invalid").removeClass("valid");
} else {
$("#userCheck").text("Username available").addClass("valid").removeClass("invalid");
}
});
} else {
$("#userCheck").text("");
}
});
// Email format check
$("#email").keyup(function(){
var email = $(this).val();
var pattern = /^[^ ]+@[^ ]+\.[a-z]{2,3}$/;
if(email.match(pattern)){
$("#emailCheck").text("Validan email").addClass("valid").removeClass("invalid");
} else {
$("#emailCheck").text("Email format nije validan").addClass("invalid").removeClass("valid");
}
});
// Password strength
$("#password").keyup(function(){
var password = $(this).val();
if(password.length < 6){
$("#passCheck").text("Slaba lozinka (min 6 karaktera)").addClass("invalid").removeClass("valid");
} else {
$("#passCheck").text("Jaka lozinka").addClass("valid").removeClass("invalid");
}
});
});
</script>
</body>
</html>