Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проверка содержимого базы данных

Сообщения:  [1-4] 

 
 автор: SnooPI   (26.02.2007 в 01:49)   письмо автору
 
   для: 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']) < || 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($usr0);
      if (
$total )
    {
       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";
        }
     }
     }
?>

   
 
 автор: SnooPI   (26.02.2007 в 01:01)   письмо автору
 
   для: 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)Так вот как вычислить иникальный ид?

   
 
 автор: cheops   (26.02.2007 в 00:59)   письмо автору
 
   для: 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.

   
 
 автор: SnooPI   (26.02.2007 в 00:54)   письмо автору
 
 

Никак не могу разобраться с этими проблемами уже 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($usr0);
      if (
$total )
    {
       exit(
"Такой 'E-mail' уже имеется в базе данных");
      }
?>


так вот....у юзера сразу в value написан его email и менять допустим он его не хочет , а меняет только номер icq .....затем нажимает кнопку сохранить.....И вот здесь и выскакивает ошибка о том , что такое мыло уже есть в бд.......
Что делать??Ведь ему надо свое мыло оставить как есть.....
=================================================================================

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования