Надеюсь не ошибся разделом=)
У меня задача такая, вывести список пользователей своего сайта, а так же добавить функцию "Добавить пользователя" (доступ для админов типа).
В этой форме 3 поля: "Имя", "Пароль", "Группа".
<form action="adduser.php" method="post">
<label>Имя</label>
<input name="login" type="text" size="15" maxlength="15"><br>
<label>Пароль</label>
<input name="password" type="password" size="15" maxlength="15"><br>
<label>Группа</label>
<input name="group" type="text" size="15" maxlength="15"><br>
<input type="submit" name="submit" value="Добавить">
</form>
А это скрипт adduser.php:
<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
if (isset($_POST['group'])) { $group=$_POST['group']; if ($group =='') { unset($group);} }
if (empty($login) or empty($password) or empty($group))
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
}
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$group = stripslashes($group);
$group = htmlspecialchars($group);
$login = trim($login);
$password = trim($password);
if (strlen($login) < 3 or strlen($login) > 15) {
exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15.");
}
if (strlen($password) < 3 or strlen($password) > 15) {
exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15.");
}
if ($group!="Admin" or $group!="User" or $group!="Guest") {
exit ("Пользователь должен входить в одну из групп!");
}
include ("connect.inc.php");
$result = mysql_query("SELECT id FROM users WHERE login='$login'");
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit ("Такой логин уже существует! Введите другой логин.");
}
$result2=mysql_query ("INSERT INTO users (login,password,group) VALUES('$login','$password','$group')");
if ($result2=='TRUE')
{
echo "Пользователь успешно добавлен!<a href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Добавить пользователя не получилось.";
}
?>
Проблема собственно следующая: Когда я отсылаю форму с назначенной группой(Например Admin) , то добавить в базу не получается, пишет что "Пользователь должен входить в одну из групп!". Если убрать проверку условия совпадения названия групп, то пишется "Ошибка!Добавить пользователя не удалось."
Самое интересное то, что если я уберу из формы поле "Группа", т.е. я буду вводить только Имя и Пароль, то все нормально заносится в базу (естественно,когда я в php закоментирую все полясвязанные с групой).
Уже часа два ныкаюсь и тыкаюсь.Я в этом деле новенький, вроде кучу всего перечитал,а толку ноль :( Может подскажете в чем дело?) Или хотя бы подтолкнете в нужном направлении,куда смотреть :)
Заранее спасибо:)
Спустя 4 минуты, 57 секунд (9.04.2012 - 22:33) h234 написал(а):
Цитата |
"INSERT INTO users (login,password) VALUES('$login','$password','$group')" |
Запрос некорректный
Спустя 1 минута, 5 секунд (9.04.2012 - 22:34) Begmak написал(а):
Опечатался когда писал сюда, щас подправил,результат один и тот же.
Спустя 2 минуты (9.04.2012 - 22:36) h234 написал(а):
При сравнении групп необходимо проверять на И (&&), а не на ИЛИ
if (($group!="Admin") && ($group!="User") && ($group!="Guest")) {
exit ("Пользователь должен входить в одну из групп!");
}
Спустя 3 минуты, 21 секунда (9.04.2012 - 22:39) Begmak написал(а):
Ну я и растяпа:)Спасибо!
Так...одной бедой меньше стало, но все равно пишет что "Ошибка!Пользователя добавить не поулчилось"
Щас буду смотреть по новой,теперь я не буду упираться в проверку:)
Так...одной бедой меньше стало, но все равно пишет что "Ошибка!Пользователя добавить не поулчилось"
Щас буду смотреть по новой,теперь я не буду упираться в проверку:)
Спустя 11 минут, 46 секунд (9.04.2012 - 22:51) h234 написал(а):
Какая структура таблицы users ?
Спустя 3 минуты, 11 секунд (9.04.2012 - 22:54) Begmak написал(а):
Один фик не понятно ![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Таблица users состоит из полей id,login,password,group (у последних 3х полей тип varchar, если это имеет какое то значение)
Пперед глазами есть работающий скрипт ,такой же,но без группы,и все работает,вот хоть тапочком убейте,не вижу в чем загвоздка![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Таблица users состоит из полей id,login,password,group (у последних 3х полей тип varchar, если это имеет какое то значение)
Пперед глазами есть работающий скрипт ,такой же,но без группы,и все работает,вот хоть тапочком убейте,не вижу в чем загвоздка
![sad.gif](http://phpforum.ru/html/emoticons/sad.gif)
Спустя 9 минут, 54 секунды (9.04.2012 - 23:04) h234 написал(а):
Такой код выполнится?
$result2=mysql_query ("INSERT INTO `users` (`login`, `password`, `group`) VALUES ('123', '456', '789')");
if ($result2)
{
echo "Пользователь успешно добавлен!<a href='index.php'>Главная страница</a>";
}
else {
echo "Ошибка! Добавить пользователя не получилось.";
}
Спустя 2 минуты, 8 секунд (9.04.2012 - 23:06) Begmak написал(а):
Угу,работает.
Спустя 7 минут, 8 секунд (9.04.2012 - 23:13) h234 написал(а):
Попробуй так
$result2=mysql_query ("INSERT INTO `users` (`login`, `password`, `group`) VALUES ('" . $login . "','" . $password . "','" . $group ."')");
Спустя 2 минуты, 53 секунды (9.04.2012 - 23:16) Begmak написал(а):
Работает !!!
В чем же дело получается?
В чем же дело получается?
Спустя 1 минута, 35 секунд (9.04.2012 - 23:18) h234 написал(а):
Название таблиц и полей стоит обрамлять косыми кавычками!
Спустя 2 минуты, 42 секунды (9.04.2012 - 23:21) Begmak написал(а):
Хм...тогда почему работает когда без группы?![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Если глупый вопрос,прошу простить,все мозги атрофировались:)
Тогда пойду читать мануал по командам
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Если глупый вопрос,прошу простить,все мозги атрофировались:)
Тогда пойду читать мануал по командам
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 11 минут, 47 секунд (9.04.2012 - 23:32) h234 написал(а):
Вообще косыми кавычками обрамляют для того, что бы Mysql понял где поле, а где зарезервированное слово. А group как раз таковое и является!
Спустя 12 минут, 11 секунд (9.04.2012 - 23:45) Begmak написал(а):
Ааааа,вот оно в чем дело...
Чтож,большое спасибо Вам за разъяснения и помощь !=)
Чтож,большое спасибо Вам за разъяснения и помощь !=)