Я новичок как в PHP, так и в MySQL, однако в настоящее время я изучаю оба, чтобы создать базовый веб-сайт для администрирования учетных записей RADIUS. (Я перешел на использование MySQL для аутентификации пользователей)Форма PHP/MySQL не отображает вывод
Я создал сценарий, который вставляет значения пользователя в базу данных, однако мне нужно сделать так, чтобы учетная запись пользователя уже существовала, дубликат не может быть создано.
Я использовал учебник, который я нашел, чтобы попытаться создать его, и это действительно работает. Когда я добавляю пользователя, когда нет дублированной учетной записи, я возвращаю сообщение «Успешно», однако, когда есть дублированный пользователь, возвращаемая страница пуста, и я не уверен, что я делаю неправильно. Его работоспособным, но раздражающим.
Мне также интересно, если можно создать пул чисел (это будет IP-адрес), а затем использовать его так, чтобы при создании нового пользователя использовался номер из этого пула, а затем удалялся из это пул. Сделав это, я надеюсь, что смогу автоматизировать назначение IP-адресов пользователям без необходимости вручную добавлять их каждый раз при создании нового пользователя. В настоящее время для достижения чуть менее желательного подхода я сделал еще один скрипт, который отображает список IP-адресов пользователей из моей таблицы, чтобы можно было просто добавить IP-адрес, который отсутствует в этом списке. Любые советы о том, где я мог бы научиться этому, были бы весьма признательны, я не знаю с чего начать.
Ниже приведен код php, который я использую, и код html для формы. Спасибо за любую помощь или совет.
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'test');
define('DB_USER','root');
define('DB_PASSWORD','123');
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());
function AuthAccount()
{
$username = $_POST['username'];
$value = $_POST['value'];
$query = "INSERT INTO radcheck(username, attribute, op, value) VALUES ('$username', 'Cleartext-Password', ':=', '$value')";
$data = mysql_query ($query)or die(mysql_error());
if($data)
{
echo "User added to authentication database";
}
}
function AddAccount()
{
if(!empty($_POST['username']))
{
$query = mysql_query("SELECT * FROM radcheck WHERE username = '$_POST[username]'") or die(mysql_error());
if(!$row = mysql_fetch_array($query) or die(mysql_error()))
{
AuthAccount();
}
else
{
echo "Username already registered";
}
}
}
if(isset($_POST['submit']))
{
AddAccount();
}
?>
страница регистрации:
<!DOCTYPE HTML>
<html>
<head>
<title>Sign-Up</title>
</head>
<body id="body-color">
<div id="Sign-Up">
<fieldset style="width:50%"><legend>Registration Form</legend>
<table border="0">
<form method="POST" action="SignUp.php">
<tr>
<td>Username</td><td> <input type="text" name="username"></td>
</tr>
<tr>
<td>Password</td><td> <input type="text" name="value"></td>
</tr>
<tr>
<td><input id="button" type="submit" name="submit" value="Sign-Up"></td>
</tr>
</form>
</table>
</fieldset>
</div>
</body>
</html>
Безопасность всегда беспокойство - то, что, если один из этих сотрудников случайно разместили что-то разрушенное вашу базу данных? –
Я думаю, что функции mysql * устарели, вместо этого используйте mysqli * functoins – tinybyte
1. пожалуйста, воздержитесь от использования расширений mysql *, они устарели, попробуйте использовать mysqli * или pdo * – Satya