|
|
|
|
|
для: SnooPI
(26.02.2007 в 01:01)
| | Проверку админа я сделал.......
Ошибка была в запросе....не нужно было писать COUNT(*) , a просто *
Вот и все :)
А вот со вторым помогите...ну не получается
Вот файл весь:
<a href="?do=edpwd" title="Изменить пароль">Изменить пароль</a><br /><br />
<form method="post" enctype="multipart/form-data">
<table class="td" stye="width: 250;">
<tr><td>E-mail:</td></tr><tr><td><input type="text" name="email" maxlength="25" value="<?php echo $user['email']; ?>" /></td></tr>
<tr><td>Icq:</td></tr><tr><td><input type="text" name="icq" maxlength="9" value="<?php if($user['icq'] != 0) echo $user['icq']; ?>" /></td></tr>
<tr><td>Сайт: <small>(без "http://")</small></td></tr><tr><td><input type="text" name="url" value="<?php if(!empty($user['icq'])) echo $user['url']; ?>"/></td></tr>
<tr><td><input class="button" type="submit" name="save" title="Созранить изменения" id="but" value="Сохранить" /></td></tr>
<input type="hidden" name="id" value="$id"/>
</table>
</form>
<br /><br />
<?php
if ($save) {
//Убираем пробелы в конце строк и кавычки закрываем слешами
$_POST['email'] = trim(addslashes($_POST['email']));
$_POST['url'] = trim(addslashes($_POST['url']));
$_POST['icq'] = trim(addslashes($_POST['icq']));
//Проверяем заполнены ли обязательные поля
if(!empty($_POST['icq'])){
if(!preg_match("|^[\d]+$|", $_POST['icq']))
{
exit("Поле 'ICQ' должно содержать только цифры");
}
if( strlen($_POST['icq']) < 5 || strlen($_POST['icq']) > 9)
exit("Поле 'ICQ' должно содержать от 5 до 9 цифр");
}
if(empty($_POST['email']) && (isset($_POST['email']))) {
exit("Заполните поле 'E-mail'");
} else {
if(!preg_match("|^[-0-9a-z_]+@[-0-9a-z_]+\.[a-z]{2,6}$|i", $_POST['email']) && (!isset($_POST['email']))) {
exit("Поле 'E-mail' должно соответствовать формату billy@microsoft.com");
}
}
//Проверяем есть ли такой e-mail в базе данных
require_once("config.php");
// Проверяем, не было ли переданное имя зарегистрировано ранее
$query = "SELECT COUNT(*) FROM users WHERE email = '$_POST[email]'";
$usr = mysql_query($query);
if(!$usr)
exit("Ошибка - ".mysql_error());
$total = mysql_result($usr, 0);
if ($total > 0 )
{
exit("Такой 'E-mail' уже имеется в базе данных");
}
//Смотрим данные на данный момент
if (isset($_SESSION['name'])){
$query = "SELECT * FROM users WHERE name = '$_SESSION[name]'";
$usr = mysql_query($query);
if(!$usr)
exit(mysql_error());
$user = mysql_fetch_array($usr);
}
//Обновляем базу данных с новыми полученными данными
$query = "SELECT * FROM users WHERE name='$_SESSION[name]'";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
if ($numrows < 1) {
$_POST['pass'] = md5($_POST['pass']);
$query = "UPDATE users SET icq = '$_POST[icq]', url = '$_POST[url]', email = '$_POST[email]' WHERE name = '$_SESSION[name]'";
$result = mysql_query($query);
if ($result == 1) {
echo "<b>Изменения сохранены</b>";
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL='$_SERVER[REQUEST_URI]'>
</HEAD></HTML>";
} else {
print "Ошибка!Изменения не приняты<br>\n";
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.02.2007 в 00:59)
| | 1)
$adm = "SELECT COUNT(*) FROM users WHERE name = '$_SESSION[name]' AND admin = 1";
$nme = mysql_query($adm);
if($nme == '1' ) {
echo "<td style='width: 100px; text-align: center;' class='td'>Изменить</td>";
}
|
Вот все равно ничего не выводит :(
2)Так вот как вычислить иникальный ид? | |
|
|
|
|
|
|
|
для: SnooPI
(26.02.2007 в 00:54)
| | 1) Выполните запрос
SELECT COUNT(*) FROM users WHERE name = '$_SESSION[name]' AND admin = 1
|
если полученное значение не равно 0, а равно 1 - текущий пользователь является администратором.
2) Восстанавливайте уникальный идентификатор пользователя id_user и добавляйте в WHERE условие AND id_user != $id_user. | |
|
|
|
|
|
|
| Никак не могу разобраться с этими проблемами уже 2-3 дня !!!
=====================================================================================
1.) Как проверить админ ли этот человек или нет.......
В бд имеется поле `admin` .....Если там значение 1 , то этот человек - админ....если 0, то простой
Так вот как проверить что юзер который залогинился является админом???
Залогиненный юзер определяется сессией $_SESSION[name]
Так вот если юзер залогинился и он является админом , то ему должно вывестись ну допустим просто сслыка в админк......а если юзер залогинился и он простой, то ничего не изменяется у него на странице
====================================================================================
2.) Сделал в личном кабинете у юзера таблицу, где он может менять свои данные ( кроме имени).
Также сделал проверку на email......Т.е. если он пишет мыло которое уже есть в бд, то скрипт останавлявается.....
Вот код проверки
<?php
// Проверяем, не было ли переданное имя зарегистрировано ранее
$query = "SELECT COUNT(*) FROM users WHERE email = '$_POST[email]'";
$usr = mysql_query($query);
if(!$usr)
exit("Ошибка - ".mysql_error());
$total = mysql_result($usr, 0);
if ($total > 0 )
{
exit("Такой 'E-mail' уже имеется в базе данных");
}
?>
|
так вот....у юзера сразу в value написан его email и менять допустим он его не хочет , а меняет только номер icq .....затем нажимает кнопку сохранить.....И вот здесь и выскакивает ошибка о том , что такое мыло уже есть в бд.......
Что делать??Ведь ему надо свое мыло оставить как есть.....
================================================================================= | |
|
|
|
|