|
|
|
| Помогите осуществить редактирование пользователей.
вот код который выводит список пользователей edit.php
<?
//подключение к базе
include ("config.php");
//выполняем запрос
$query = "SELECT * FROM users ";
$pt = mysql_query($query);
if($pt)
{
echo "<table border=1 width=100% bgcolor=gold>
<tr>
<td>id номер</td>
<td>Nickname</td>
<td>Фамилия</td>
<td>Редакстирование</td>
</tr>";
while(list($id_user, $name, , $family) = mysql_fetch_row($pt))
{
echo "
<tr>
<td>$id_user</td>
<td>$name</td>
<td>$family</td>
<td><a href=edit_form.php?id=$id>Редактировать</a></td>
</tr>";
}
}
else
{
echo "figny";
}
echo "</table>";
?>
|
чтобы при нажатии на ссылку Редактировать выводил информацию о пользвателе в формы.
я написал не знаю правильно или нет но в формы текст не добавляется.
<?php
require_once("update.php");
?>
<form action=update_user.php method=post>
<table>
<tr>
<td>Имя :</td><td><input type=text name=name value="<?php echo $_POST['name']; ?>"></td>
</tr>
<tr>
<td>Фамилия :</td><td><input type=text name=family value="<?php echo $_POST['family']; ?>"></td>
</tr>
</table>
</form>
</body>
</html>
|
код файла update.php
<?php
//подключение базы
require_once("config.php");
//Выполняем запрос
$query = "SELECT * FROM users WHERE id_user";
$nme = mysql_query($query);
if(!$nme)
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
if(mysql_num_rows($nme) > 0)
{
//
if($_POST['id'] == $id_user)
{
echo "правильно";
$que = "SELECT * FROM users WHERE $name";
}
else
{
echo "нету";
}
}
else
{
echo "ошибка";
}
?>
|
| |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 16:55)
| |
<?php // ====edit.php=====
include ("config.php"); //подключение к базе
$query = "SELECT * FROM users "; //выполняем запрос
if(!($pt = mysql_query($query)))
exit("Ошибка запроса $query :". mysql_error());
echo "<table border=1 width=100% bgcolor=gold>
<tr><td>id номер</td><td>Nickname</td><td>Фамилия</td><td>Ред.</td></tr>";
if(mysql_num_rows($pt))
while(list($id_user, $name, , $family) = mysql_fetch_row($pt))
echo "<tr><td>$id_user</td><td>$name</td><td>$family</td>
<td><a href=edit_form.php?id=$id_user>Редактировать</a></td></tr>";
else echo "<tr><td colspan=4>Пользователей в базе нет.</td></tr>";
echo "</table>";
?>
|
<?php // ====edit_form.php=====
require_once("config.php"); //подключение базы
$query = "SELECT * FROM users WHERE id_user = ".intval($_GET['id']);
if(!($nme = mysql_query($query)))
exit("Ошибка запроса $query :". mysql_error());
if(mysql_num_rows($nme) <= 0)
exit("Нет пользователя с номером ".$_GET['id']);
list($id_user, $name, , $family) = mysql_fetch_row($nme);
?> <form action=update.php method=post> <table>
<tr> <td>Id :</td><td><?php
echo "$id_user<input type=hidden name=id_user value=$id_user />";
?></td> </tr>
<tr><td>Имя :</td><td><input type=text name=name value="<?php
echo htmlspecialchars($name);
?>"></td></tr>
<tr><td>Фамилия :</td><td><input type=text name=family value="<?php
echo htmlspecialchars($family);
?>"></td></tr>
<tr><td><input type = submit value=Update /></td>
<td><input type=reset value=Reset /></td></tr>
</table>
</form>
|
<?php // =======update.php=======
require_once("config.php"); //подключение базы
$name = $_POST['name']; $family = $_POST['family'];
if(get_magic_quotes_gpc())
{ $name = stripslashes($name); $familia= stripslashes($family); }
$name = mysql_escape_string($name);
$family = mysql_escape_string($family);
$query = "UPDATE users "
. " SET name = '$name', family = '$family' "
." WHERE id_user = " . intval($_POST['id_user']);
if(!($nme = mysql_query($query)))
exit("Ошибка запроса $query :". mysql_error());
if(mysql_affected_rows() > 0)
echo "<a href=edit.php>правильно</a>";
else
echo "нет пользователя с номером ".$_POST['id_user'];
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 19:43)
| | Большое спасибо!!!.
У меня появились вопросы по коду расскажите пожалуста.
1. для чего он нужен и что он делает .intval($_GET['id'])
2. --- // --- if(get_magic_quotes_gpc())
3. --- // --- { $name = stripslashes($name); $familia= stripslashes($family); } | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 20:26)
| | 1. Чтобы сайт не смоги атаковать SQL-инъекцией. См. задачу 11 ответ 4. в разделе задачи на PHP.
Делает он следующее: он убирает из параметра всё, что не является числом.
2. Потому, что PHP на старте может добавить слэшей в значения формы.
Подробнее - [url=?id_forum=3&id_theme=14355&page=1 ]здесь[/url].
Кстати, я забыл заэкранировать кавычки следующими инструкциями:
$name = mysql_escape_string($name);
$family = mysql_escape_string($family);
Сейчас - исправил, гляньте еще раз код. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 20:41)
| | спасибо за ответы!!! | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 20:54)
| | У меня ещё одна проблема возникла.
Я вроде сделал код который будет удалять пользователей
<?php
//подключение к БД
require_once("config.php");
//Формируем SQL-запрос
$query = "DELETE FROM users WHERE id_user = " . intval($_POST['id_user']);
if(!($nme = mysql_query($query)))
exit("Ошибка запроса $query :". mysql_error());
if(mysql_affected_rows() > 0)
{
echo "Пользователь удален<br>";
echo "<a href=edit.php>правильно</a>";
} else {
echo "нет пользователя с номером ".$_POST['id_user'];
echo "<br><a href=edit.php>назад</a>";
}
?>
|
но почему то он все время пишет нет пользователя с номером
подскажите что я не так сделал. | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 21:26)
| | edit.php свежий можно глянуть? | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 21:37)
| | я его пока не изменял | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 21:43)
| | Тогда кто будет передавать в скрипт delete.php номер пользователя через пост-форму в поле id_user? | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 21:44)
| | ой я забыл.
Я подставил ссыклу
<td><a href=del_user.php?id=$id_user>Удалить</a></td>
|
я правльно сделал. | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 21:49)
| | Здесь он передается как id в запросе GET
Надо поменять в del_user.php
$query = "DELETE FROM users WHERE id_user = " . intval($_GET['id']);
|
и
echo "нет пользователя с номером ".$_GET['id'];
|
>я правльно сделал.
Это утверждение или вопрос? | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 21:53)
| | вопрос.
А почему в коде редактирование писали
id_user = " . intval($_POST['id_user'])
|
а в коде удаления так.
id_user = " . intval($_GET['id'])
|
Объясните пожалуйста | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 22:08)
| | Потому, что редактирование выполняется формой, значит POST
А удаление Вы прикрутили через ссылку (хотя я тоже бы сделал формой.) А раз через ссылку - значит GET.
А удаление формой позволило бы удалять сразу многих пользователей, а не только одного.
Выбор поля id вместо id_user в некоторых местах - тоже Ваш выбор. :) | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 22:15)
| | понятно.
А подскажите как осуществить чтоб при регистрации можно было выбирать админ или пользователь.
Когда админ проходит авторизацию попадает на стр пусть будет index.php и на этой странице проверялось если админ то появлялась ссылка "администрирование" а если обычный пользователь то ссылка непоказывалась. И если даже пользователь вручную введет адрес страницы администрирования перебрасывала обратно на index.php. | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 22:33)
| | Добавить в таблицу users столбик с типом пользователя.
Выбирать данные из этого столбика при авторизации и в зависимости от них строить ссылку и перебрасывающий код в начале защищенной страницы. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 22:37)
| | это понятно.
Мне нужен код или подобные темы про это. | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 22:40)
| | Попробуйте воспользоваться поиском. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 22:43)
| | я вот сделал форму через radio
<tr>
<td><input type="radio" name="user">Пользователь<br>
<input type="radio" name="admin">Администратор
</td>
</tr>
|
как осуществить запись в таблицу
или это делается по другому? | |
|
|
|
|
|
|
|
для: Spyder
(17.03.2006 в 22:53)
| | <input type=radio name=adm value=0>Пользователь<br>
<input type=radio name=adm value=1>Администратор
Так лучше будет , не находите?
Для Пользователя $_GET['adm'] будет равна "0"
для Администратора $_GET['adm'] будет равна "1". | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 22:58)
| | я сделал как вы написали но данные в базу не записываются а когда вместо $_GET подставляю $_POST тогда записываются | |
|
|
|