У меня есть секретная страница входа (useradmin.php), где пользователи могут добавлять и удалять пользователей, чтобы иметь доступ к другому секретному сайту (listmembers.php). Теперь я хочу запретить пользователям добавлять больше пользователей, чем 8, на сайт useradmin. Если есть 8 пользователей, то я хочу скрыть форму добавления на этой странице и показывать пользователям только сообщение, что для добавления другого пользователя им необходимо сначала удалить текущих пользователей.
Могу ли я сделать это в самом файле php, который не подключен к базе данных, или я должен сделать это в файле .htaccess или .htpasswd?
Вот php для useradmin.php
<?php
// list users
$filename = ".htpasswd";
if (!empty($_GET["usr"])) {
$usr = $_GET["usr"];
} else {
$usr = "";
}
if (!empty($_GET["pw"])) $pw = $_GET["pw"];
if (!empty($_GET["radera"])) {
$radera = $_GET["radera"];
} else {
$radera = 0;
}
echo "<h2>Administration av användare och lösenord</h2>";
if (strlen($usr)>2) {
//append new user to end of file
$handle = fopen($filename, "a");
$userdata = $usr.":";
$userdata = $userdata.crypt($pw)."\n";
fputs($handle,$userdata);
fclose($handle);
}
if ($radera>0) {
// Delete user
$rad = 1;
//read old file
$handle = fopen($filename, "r");
$buffer[$rad] = fgets($handle, 4096);
while (!feof($handle)) {
$rad++;
$buffer[$rad] = fgets($handle, 4096);
}
$maxrad = $rad;
fclose($handle);
//write back data from buffer exept deleted user
$handle = fopen($filename, "w");
$rad = 1;
while ($rad < $maxrad) {
if ($rad != $radera) {
fputs($handle,$buffer[$rad]);
}
$rad++;
}
fclose($handle);
}
//List users
$handle = fopen($filename, "r");
$rad = 1;
echo "<table border=1 >";
$buffer[$rad] = fgets($handle, 4096);
while (!feof($handle)) {
echo "<tr><td>";
$user[$rad] = substr($buffer[$rad], 0, strpos($buffer[$rad],":"));
echo $user[$rad];
echo "</td><td>";
echo "<a href=\"useradmin.php?radera=$rad\">RADERA</a>";
echo "</td></tr>";
$rad++;
$buffer[$rad] = fgets($handle, 4096);
}
echo "</table>";
fclose($handle);
// limit users to 8
?>
<h2>Lägg till ny användare</h2>
<h3 style="color:red">OBS! Antalet användare är begränsat till max 8!<br>Du måste ta bort en användare för att kunna lägga till en ny.</h3>
<FORM action="useradmin.php" method="GET" >
Login: <input type=text name="usr"><br>
Lösenord: <input type="text" name="pw"><br>
<INPUT type=submit value="UPPDATERA">
</form>
Задача ещё не решена.
Других решений пока нет …