index.php
<!DOCTYPE html>
<html>
<head>
<title>Kullanıcı Kayıt ve Giriş</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<div class="row">
<div class="col-md-6">
<h2>Kayıt Ol</h2>
<form action="register.php" method="post">
<div class="form-group">
<label for="username">Kullanıcı Adı:</label>
<input type="text" class="form-control" id="username" name="username" required>
</div>
<div class="form-group">
<label for="password">Şifre:</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Kayıt Ol</button>
</form>
</div>
<div class="col-md-6">
<h2>Giriş Yap</h2>
<form action="login.php" method="post">
<div class="form-group">
<label for="username">Kullanıcı Adı:</label>
<input type="text" class="form-control" id="username" name="username" required>
</div>
<div class="form-group">
<label for="password">Şifre:</label>
<input type="password" class="form-control" id="password" name="password" required>
</div>
<button type="submit" class="btn btn-primary">Giriş Yap</button>
</form>
</div>
</div>
</div>
</body>
</html>register.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// Veritabanı bağlantısını yapın (örn. MySQLi veya PDO kullanabilirsiniz)
// Burada veritabanı bağlantısını kurmanız gerekecektir.
// Örnek olarak MySQLi kullanımı:
$servername = "localhost";
$db_username = "your_username";
$db_password = "your_password";
$dbname = "your_database";
$conn = new mysqli($servername, $db_username, $db_password, $dbname);
// Bağlantı hatasını kontrol edin
if ($conn->connect_error) {
die("Veritabanına bağlanılamadı: " . $conn->connect_error);
}
// Kullanıcı adının benzersiz olduğunu kontrol edin
$check_query = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($check_query);
if ($result->num_rows > 0) {
echo "Bu kullanıcı adı zaten alınmış.";
} else {
// Şifreyi şifreleyin (örn. bcrypt kullanabilirsiniz)
// Ayrıca, SQL enjeksiyonlarından korumak için parametreleri bağlayarak sorgular yapmak önemlidir.
// Örnek olarak PDO kullanımı:
// $hashed_password = password_hash($password, PASSWORD_BCRYPT);
// $query = $conn->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
// $query->bindParam(':username', $username);
// $query->bindParam(':password', $hashed_password);
// $query->execute();
// Örnek olarak MySQLi kullanımı:
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$insert_query = "INSERT INTO users (username, password) VALUES ('$username', '$hashed_password')";
if ($conn->query($insert_query) === TRUE) {
echo "Kayıt başarılı. Giriş yapabilirsiniz.";
} else {
echo "Kayıt sırasında bir hata oluştu: " . $conn->error;
}
}
// Veritabanı bağlantısını kapatın
$conn->close();
}login.php
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// Veritabanı bağlantısını yapın (örn. MySQLi veya PDO kullanabilirsiniz)
// Burada veritabanı bağlantısını kurmanız gerekecektir.
// Örnek olarak MySQLi kullanımı:
$servername = "localhost";
$db_username = "your_username";
$db_password = "your_password";
$dbname = "your_database";
$conn = new mysqli($servername, $db_username, $db_password, $dbname);
// Bağlantı hatasını kontrol edin
if ($conn->connect_error) {
die("Veritabanına bağlanılamadı: " . $conn->connect_error);
}
// Kullanıcıyı veritabanından sorgulayın
$check_query = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($check_query);
if ($result->num_rows == 1) {
$row = $result->fetch_assoc();
$hashed_password = $row["password"];
// Şifreyi doğrulayın (örn. password_verify ile bcrypt ile karşılaştırma yapabilirsiniz)
// Örnek olarak PDO kullanımı:
// if (password_verify($password, $hashed_password)) {
// // Giriş başarılı, oturumu başlatın ve ana sayfaya yönlendirin
// $_SESSION["username"] = $username;
// header("Location: index.php");
// exit();
// }
// Örnek olarak MySQLi kullanımı:
if (password_verify($password, $hashed_password)) {
// Giriş başarılı, oturumu başlatın ve ana sayfaya yönlendirin
$_SESSION["username"] = $username;
header("Location: index.php");
exit();
} else {
echo "Giriş başarısız. Kullanıcı adı veya şifre yanlış.";
}
} else {
echo "Giriş başarısız. Kullanıcı adı veya şifre yanlış.";
}
// Veritabanı bağlantısını kapatın
$conn->close();
}Kaynak: ChatGPT