-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcreate_admin.php
More file actions
159 lines (137 loc) · 8.85 KB
/
create_admin.php
File metadata and controls
159 lines (137 loc) · 8.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?php
require_once 'includes/config.php';
require_once 'includes/db.php';
require_once 'includes/functions.php';
define('DEBUG_MODE', true);
ob_start();
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Admin Kullanıcısı Oluştur</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="bg-light">
<div class="container py-5">
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card shadow-sm">
<div class="card-header bg-primary text-white">
<h4 class="mb-0">Admin Kullanıcısı Oluştur</h4>
</div>
<div class="card-body">
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = isset($_POST['name']) ? sanitizeInput($_POST['name']) : '';
$email = isset($_POST['email']) ? sanitizeInput($_POST['email']) : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
$confirm_password = isset($_POST['confirm_password']) ? $_POST['confirm_password'] : '';
$errors = [];
if (empty($name)) {
$errors[] = "Ad Soyad alanı gereklidir.";
}
if (empty($email)) {
$errors[] = "E-posta alanı gereklidir.";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Geçerli bir e-posta adresi giriniz.";
}
if (empty($password)) {
$errors[] = "Şifre alanı gereklidir.";
} elseif (strlen($password) < 8) {
$errors[] = "Şifre en az 8 karakter uzunluğunda olmalıdır.";
}
if ($password !== $confirm_password) {
$errors[] = "Şifreler eşleşmiyor.";
}
if (empty($errors)) {
try {
$conn = connectDatabase();
$query = "SELECT id FROM users WHERE email = ?";
$params = [$email];
$result = executeQuery($conn, $query, $params);
if (!empty($result)) {
$user_id = $result[0]['id'];
$passwordHash = password_hash($password, PASSWORD_DEFAULT);
$query = "UPDATE users SET
name = ?,
password = ?,
role = 'admin',
status = 'active',
updated_at = NOW()
WHERE id = ?";
$params = [$name, $passwordHash, $user_id];
$result = executeQuery($conn, $query, $params);
echo '<div class="alert alert-success">
<strong>Başarılı!</strong> Kullanıcı bilgileri güncellendi.
<br>Bu dosyayı sunucunuzdan silmeyi unutmayın!
<br><a href="login.php" class="btn btn-primary mt-3">Giriş Yap</a>
</div>';
} else {
$passwordHash = password_hash($password, PASSWORD_DEFAULT);
$query = "INSERT INTO users (name, email, password, role, status, created_at, updated_at)
VALUES (?, ?, ?, 'admin', 'active', NOW(), NOW())";
$params = [$name, $email, $passwordHash];
$result = executeQuery($conn, $query, $params);
echo '<div class="alert alert-success">
<strong>Başarılı!</strong> Admin kullanıcısı oluşturuldu.
<br>Bu dosyayı sunucunuzdan silmeyi unutmayın!
<br><a href="login.php" class="btn btn-primary mt-3">Giriş Yap</a>
</div>';
}
closeDatabase($conn);
} catch (Exception $e) {
echo '<div class="alert alert-danger">
<strong>Hata!</strong> ' . $e->getMessage() . '
</div>';
}
} else {
echo '<div class="alert alert-danger">';
echo '<strong>Hata!</strong> Lütfen aşağıdaki hataları düzeltin:';
echo '<ul class="mb-0 mt-2">';
foreach ($errors as $error) {
echo '<li>' . $error . '</li>';
}
echo '</ul>';
echo '</div>';
}
}
?>
<form method="post" action="">
<div class="mb-3">
<label for="name" class="form-label">Ad Soyad</label>
<input type="text" class="form-control" id="name" name="name" value="<?php echo isset($name) ? $name : 'Admin'; ?>" required>
</div>
<div class="mb-3">
<label for="email" class="form-label">E-posta</label>
<input type="email" class="form-control" id="email" name="email" value="<?php echo isset($email) ? $email : 'admin@kirklareli.edu.tr'; ?>" required>
</div>
<div class="mb-3">
<label for="password" class="form-label">Şifre</label>
<input type="password" class="form-control" id="password" name="password" required>
<div class="form-text">Şifre en az 8 karakter uzunluğunda olmalıdır.</div>
</div>
<div class="mb-3">
<label for="confirm_password" class="form-label">Şifre Tekrar</label>
<input type="password" class="form-control" id="confirm_password" name="confirm_password" required>
</div>
<div class="d-grid">
<button type="submit" class="btn btn-primary">Admin Kullanıcısı Oluştur</button>
</div>
</form>
</div>
<div class="card-footer">
<div class="alert alert-warning mb-0">
<strong>Uyarı!</strong> Bu dosya, sadece ilk kurulum için kullanılmalıdır. Kullanımdan sonra güvenlik nedeniyle sunucunuzdan siliniz.
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
ob_end_flush();
?>