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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Проверка пользователей. MySQL
 
 автор: Адоп Акробат   (06.08.2004 в 05:01)   письмо автору
 
 

Здравствуйте!!!
У меня написана такая программка в index.php в водишь поля: логин, пароль.
Index.php обрабатывается скриптом который вносит эти поля в Базу Данных.
Но мне нужно чтобы перед тем как он внёс юзера он проверил существует такой логин или нет.
Я делаю вот так но не получается.

........
$test = mysql_query ("select * from users where login='$_REQUEST[login]'") ;
if ($test == $test)
{
   echo "Такой юзер уже существует!" . "<br>";
}
else {
$request = mysql_query ("insert into users (password, login) values ('$_REQUEST[parol]', '$_REQUEST[login]') ");
if (!$request){
   echo mysql_error () . "<br>" ;
   exit () ;
}
 echo    "Ваши данные!" . "<br>" .
         "Логин: " . "$_REQUEST[login]" . "<br>" .
         "Пароль: " . "$_REQUEST[parol]" . "<br>" ;
}
?>

   
 
 автор: glsv (Дизайнер)   (06.08.2004 в 09:30)   письмо автору
 
   для: Адоп Акробат   (06.08.2004 в 05:01)
 

У меня вызывают вопросы вот эти строки

<?
$test 
mysql_query ("select * from users where login='$_REQUEST[login]'") ;

if (
$test == $test

   echo 
"Такой юзер уже существует!" "<br>"
}
?>

Вы выполняете запрос и идентификатор результата помещаете в $test;
Если запрос отработал, то $test будет указывать на результат запроса. Причем он не будет равен NULL, даже в том случае, если запрос вернет 0 строк (т.е. такого пользователя не будет в базе). Это надо проверять специальной функцией.

Например так.

<?
$test 
mysql_query ("select * from user where user='$_REQUEST[login]'") ; 
if (!
$test
{
    echo 
"Ошибка при выполнении запроса";
    exit();
}
if(
mysql_num_rows($test)>0

   echo 
"<br>Такой юзер уже существует!" "<br>"

else

   echo 
"<br>Такого юзера НЕТ!" "<br>"
}
?>

   
 
 автор: Адоп Акробат   (06.08.2004 в 18:15)   письмо автору
 
   для: glsv (Дизайнер)   (06.08.2004 в 09:30)
 

to Дизайнер
Работает!
Большое спасибо!

   
 
 автор: Адоп Акробат   (06.08.2004 в 19:38)   письмо автору
 
   для: Адоп Акробат   (06.08.2004 в 18:15)
 

Еще один вопросик если не сложна.
Есть страничка index.php в ней водишь логин и пароль этот файл редактирует другая программка, которая проверяет есть ли такой юзер с паролем в базе данных MySQL . Но у меня не получается проверить.

.......
$test = mysql_query ("select * from users where login='$_REQUEST[login]', password='$_REQUEST[password]'") ;
if (!$test)
{
    echo mysql_error() . "<br>";
    exit();
}
if(mysql_num_rows($test)>0)
{
   echo "Неправельно ведён логин или пароль!" . "<br>";
}
else
{
 echo "Привет!" . "$_REQUEST[login]" . "<br>";
 echo "<a href='user_edit.php'>Изменить данные!" ;
}
?>

   
 
 автор: glsv (Дизайнер)   (06.08.2004 в 19:59)   письмо автору
 
   для: Адоп Акробат   (06.08.2004 в 19:38)
 

А что за ошибку пишет?
Вообще вот здесь ошибка - в запросе. Там надо логический оператор AND ставить вместо запятой.


<?
$test 
mysql_query ("select * from users where login='$_REQUEST[login]' and password='$_REQUEST[password]'") ; 
?>


   
 
 автор: cheops   (06.08.2004 в 20:20)   письмо автору
 
   для: glsv (Дизайнер)   (06.08.2004 в 19:59)
 

Я бы от греха вообще бы переписал бы следующим образом:
<?php
$query 
"SELECT * FROM users 
          WHERE login='"
.$_REQUEST['login']."' AND
                password='"
.$_REQUEST['password']."'";
$test mysql_query($query);
?>

Элементы суперглобальных массивов плохо интерпретируются в двойных кавычках - их лучше объединять при помощи точки.

   
 
 автор: Адоп Акробат   (06.08.2004 в 20:47)   письмо автору
 
   для: glsv (Дизайнер)   (06.08.2004 в 19:59)
 

Поставел "and" работате спасибо Дизайнер и cheops

   
 
 автор: Адоп Акробат   (09.08.2004 в 23:32)   письмо автору
 
   для: Адоп Акробат   (06.08.2004 в 05:01)
 

Здравствуйте!!!!
Мне надо чтобы вот в этом примере, $test проверял юзеров но чтобы было исключение.
<? 
$test 
mysql_query ("select * from user where user='$_REQUEST[login]'") ;  
if(
mysql_num_rows($test)>0)  
{  
   echo 
"<br>Такой юзер уже существует!" "<br>";  
}  
else 
{  
   echo 
"<br>Такого юзера НЕТ!" "<br>";  

?> 

   
 
 автор: cheops   (09.08.2004 в 23:40)   письмо автору
 
   для: Адоп Акробат   (09.08.2004 в 23:32)
 

Имеется ввиду чтобы генерировалось исключение (Exception) или для одного из пользователей проверка не проводилась?

   
 
 автор: Адоп Акробат   (10.08.2004 в 03:08)   письмо автору
 
   для: cheops   (09.08.2004 в 23:40)
 

>или для одного из пользователей проверка не проводилась?
Да

   
 
 автор: cheops   (10.08.2004 в 10:10)   письмо автору
 
   для: Адоп Акробат   (10.08.2004 в 03:08)
 

Можно поставить дополнительное условие:
<?php
$test 
mysql_query ("select * from user where user='$_REQUEST[login]'") ;   
if(
mysql_num_rows($test)>&& $_REQUEST['login'] != "Адоп Акробат")   
{   
   echo 
"<br>Такой юзер уже существует!" "<br>";   
}   
else  
{   
   echo 
"<br>Такого юзера НЕТ!" "<br>";   
}  
?>

   
 
 автор: Адоп Акробат   (10.08.2004 в 15:46)   письмо автору
 
   для: cheops   (10.08.2004 в 10:10)
 

Я наверно неправельно выразелся .
Мне надо чтобы он проверял пользователей в MySQL но адна во из них не смотрел .Наверна вот сюда нада чтонебуть дабавить
$test = mysql_query ("select * from user where user='$_REQUEST[login]'")

   
 
 автор: cheops   (10.08.2004 в 22:02)   письмо автору
 
   для: Адоп Акробат   (10.08.2004 в 15:46)
 

Дело в том, что этот запрос вернёт стороку (а mysql_num_rows($test)>0 будет true только в этом случае) когда пользователь занесён в базу данных. Насколько я понял его исключительные права должны предоставляться ему в любом случае: занесён он в базу данных или нет... Хм вообще-то я в предыдущем посте сам ошибся... :)))
Тогда
<?php 
$test 
mysql_query ("select * from user where user='$_REQUEST[login]'") ;    
if(
mysql_num_rows($test)>0)    
{    
   echo 
"<br>Такой юзер уже существует!" "<br>";    
}    
else   
{
  
// Но если это исключительный пользователь - его следует пустить
   
if($_REQUEST['login'] != "Адоп Акробат")
   {
     echo 
"<br>Всё в порядке свои!" "<br>";
   }
   else
   {
     echo 
"<br>Такого юзера НЕТ!" "<br>";    
   }
}   
?>

Но в этом случае его не должно быть в базе данных, если такой пользоваетль в базе данных существует SQL-запрос следует изменить:
<?php
$test 
mysql_query ("select * from user where user='$_REQUEST[login]' AND user NOT LIKE 'Адоп Акробат'") ; 
?>

   
 
 автор: Адоп Акробат   (10.08.2004 в 22:34)   письмо автору
 
   для: Адоп Акробат   (06.08.2004 в 05:01)
 

to cheops
Например я зарегистрированный пользователь и хочу изменить мои данные но не хочу изменить свой логин который уже лежит в базе данных. Но который пример я вам показал он всегда говорит то, что такой пользователь существует. А мне необходимо чтобы он проверял других пользователь но не меня.
Извеняюсь за то, что так много спрашиваю!

   
 
 автор: cheops   (10.08.2004 в 23:45)   письмо автору
 
   для: Адоп Акробат   (10.08.2004 в 22:34)
 

Ага, тогда нужно поступить следующим образом:
Для регистрации использовать один скрипт, например register.php, а для обновления - другой - upload.php (приглядитесь на этом форуме реализована именно такая схема). При регистрации - заводить нового пользователя и отказывать всем, кто покушается на уже существующие ники. А при обновлении (upload.php) сначала запрашивать у базы данных существует ли такой пользователь, и, если он существует - обновлять его данные.
<?php
  
// это файл upload.php
  
$query "SELECT * FROM user WHERE user='$_REQUEST[login]'";
  
$usr mysql_query($query);
  if(!
$usr)
  {
    echo 
"Ошибка в SQL-запросе";
    exit()
  }
  
// Если СУБД вернула результат - обновляем данные пользователя
  
if(mysql_num_rows($usr)>0)
  {
     
$query "UPDATE user SET password = '$_REQUEST[password]'
           WHERE user = '
$_REQUEST[login]'";
    
mysql_query($query);
  }
  
// Если такого пользователя нет в базе данных - вежливо
  // предлагаем ему зарегистрироваться
  
else
  {
    echo 
"Пожалуйста, зарегистрируйтесь в системе...";
  }
?>


>Извиняюсь то что так много спрашиваю!
Ну... форум для этого и был создан - вы можете спрашивать здесь всё что вас интересует.

   
 
 автор: Адоп Акробат   (11.08.2004 в 03:09)   письмо автору
 
   для: cheops   (10.08.2004 в 23:45)
 

Правильно я понял??
Допустим у меня 2 пользователя в БД. 1-го завут "Аркадий" А 2-го "Адоп Акробат" тогда я зашел под "Аркадием" и захотел изменить свой логин на "Адоп Акробат" то тогда ваш скрипт мне разрешит это??
И не могли бы вы полутше описать этот скрипт, а то я не очень хорошо в нём разобрался.

   
 
 автор: glsv (Дизайнер)   (11.08.2004 в 09:39)   письмо автору
 
   для: Адоп Акробат   (11.08.2004 в 03:09)
 

Давайте еще раз более четко поставим задачу. Потому что могут быть разночтения…

Есть база, есть пользователи в ней. Вы хотите, чтобы у пользователя была возможность менять свои регистрационные данные и даже логин?

Скрипт, который привел cheops позволяет это сделать. Это тот скрипт, которые будет обновлять регистрационные данные. Для регистрации нового пользователя будет использоваться другой скрипт (он обсуждался выше).

<?php 
  
// это файл upload.php 
  // Делаем запрос к базе и получаем данные для пользователя,
  //логин которого передан на страницу
  
$query "SELECT * FROM user WHERE user='$_REQUEST[login]'"
  
$usr mysql_query($query); 

  
// Если запрос выполнить не удалось – пишем что ошибка и останавливаем
  // выполнение 
  
if(!$usr
  { 
    echo 
"Ошибка в SQL-запросе"
    exit() 
  } 

  
// Если СУБД вернула результат (количество строк, которые вернул запрос
  // больше нуля) - обновляем данные пользователя 
  
if(mysql_num_rows($usr)>0
  { 
     
// Ну здесь какой то запрос на обновление. В данном случае
     // написан запрос на изменение пароля. Если бы был передан
     // новый логин, то можно было бы изменить логин.
     // А можно здесь сначала выводить форму для ввода новых значений,
     // а само обновление (запрос на обновление) выполнять на 
     // другой странице   
     
$query "UPDATE user SET password = '$_REQUEST[password]
           WHERE user = '
$_REQUEST[login]'"
    
mysql_query($query); 
  } 
  
// Если такого пользователя нет в базе данных - вежливо 
  // предлагаем ему зарегистрироваться 
  
else 
  { 
    echo 
"Пожалуйста, зарегистрируйтесь в системе..."
  } 
?>

   
 
 автор: cheops   (11.08.2004 в 10:40)   письмо автору
 
   для: Адоп Акробат   (11.08.2004 в 03:09)
 

>Допустим у меня 2 пользователя в БД. 1-го завут "Аркадий" А
>2-го "Адоп Акробат" тогда я зашел под "Аркадием" и захотел
>изменить свой логин на "Адоп Акробат" то тогда ваш скрипт
>мне разрешит это??
Нет, этот скрипт изменит только пароль пользователя, и не изменит его имени

Да, наверное стоит разобрать более подробнее этот скрипт
<?php
  
// это файл upload.php 
  ///////////////////////////////////////////////////////////
  // Изменять данные посетителя мы можем лишь в том случае
  // если соответствующая ему запись присутствует в таблице, 
  // поэтому запрашиваем запись в имени введённого посетителем
  ///////////////////////////////////////////////////////////
  // Формируем SQL-запрос
  
$query "SELECT * FROM user WHERE user='$_REQUEST[login]'"
  
// Выполняем SQL-запрос
  
$usr mysql_query($query); 
  
// Проверяем не было ли сбоев при выполнении запроса
  // и вернула ли функция mysql_query() дескриптор запроса, а
  // не false
  
if(!$usr
  { 
    echo 
"Ошибка в SQL-запросе"
    exit() 
  } 
  
// Если СУБД вернула результат - при помощи mysql_num_rows()
  // проверяем количество записей в результате. Их может быть 0
  // или 1. Первый случай означает то, что такой посетитель отсутствует
  // в базе данных, если фунция вернёт 1 - имеется запись
  // соотвествующая посетителю
  
if(mysql_num_rows($usr)>0
  { 
     
// Обновляем данные посетителя при помощи 
     // SQL-оператора UPDATE
     
$query "UPDATE user SET password = '$_REQUEST[password]
           WHERE user = '
$_REQUEST[login]'"
    
mysql_query($query); 
  } 
  
// Если такого пользователя нет в базе данных - вежливо 
  // предлагаем ему зарегистрироваться 
  
else 
  { 
    echo 
"Пожалуйста, зарегистрируйтесь в системе..."
  } 
?>


Здесь следует обратить внимание на SQL-оператор UPDATE. Он изменяет запись раположенную в таблице user для полей расположенных за ключевым словом SET.
Пусть структура вашей таблице user следующая
user - имя пользователя
password - пароль
about - описание
email - e-mail
Тогда SQL-оператор UPDATE
UPDATE user SET about='Один из пользователей системы',
         password = 'password',
         email = 'someone@somehost.ru'

Изменит только поля password - пароль, about и email, оставив поле user не изменным, как я понял именно это и нужно.

   
 
 автор: Адоп Акробат   (11.08.2004 в 14:55)   письмо автору
 
   для: Адоп Акробат   (06.08.2004 в 05:01)
 

вот сматрите у меня вот такие скриптики
этот скрипт делает чтобы можнобыло изменить данные
<?php
include ("connection.php") ;
$result mysql_query("select * from users where login='$_SESSION[login]'"$connection);
$row mysql_fetch_object($result);
echo 
"<form action='user_new_edit.php'>";
echo 
"<input type='hidden' name='user_id' value='$row->id'>";
echo 
"Логин:" "<input type='text' name='user_login' value='$row->login'>" "<br>";
echo 
"Пароль:" "<input type='edit' name='user_password' value='$row->password'>" "<br>";
echo 
"Яме:" "<input type='edit' name='user_name' value='$row->name'>" "<br>";
echo 
"Фамилия:" "<input type='edit' name='user_fam' value='$row->fam'>" "<br>";
echo 
"Возраст:" "<input type='edit' name='user_date' cols='5' value='$row->date'>" "<br>";
echo 
"?Пол:" "<select name='user_sex'>" "<option>?" "<option>?" "</select>" "<br>";
echo 
"<input type='submit' value='Сахранить!'></form>";
?>

А вот этот скрипт обрабатывает эти формы
<?php
include ("connection.php");
$login1 htmlspecialchars($_REQUEST["user_login"], ENT_QUOTES);
$password1 htmlspecialchars($_REQUEST["user_password"], ENT_QUOTES);
$name1 htmlspecialchars($_REQUEST["user_name"], ENT_QUOTES);
$fam1 htmlspecialchars($_REQUEST["user_fam"], ENT_QUOTES);
$date1 htmlspecialchars($_REQUEST["user_date"], ENT_QUOTES);
$sex1 htmlspecialchars($_REQUEST["user_sex"], ENT_QUOTES);

$result mysql_query("select * from users where id = $_REQUEST[user_id]"$connection);
$row mysql_fetch_object($result);
[
b]
$test mysql_query ("select * from users where login='$login1'"$connection) ;
if(
mysql_num_rows($test)>0)
{
   echo 
"<br>Такой юзер уже сужествует!" "<br>";
   echo 
"<a href='user_edit.php'>Назат.</a>";
}[/
b]
else
{
$query mysql_query ("update users set login='".$login1."', password='".$password1."', name='".$name1."', fam='".$fam1."', date='".$date1."', sex='".$sex1."' where id=$row->id"$connection) ;
   echo 
"Юзер созранен!!" "<br>";
   echo 
"<a href='index.php'>На главную!</a>";
}
?>

Мне надо чтобы если я не хочу изменять свой логин а хочу изменить свои данные .
Допустим я зашол под "Адоп Акробат" и хочу изменить мой пароль и возраст но не изменил свой логин и нажму сохранить то программа мне скажет точто такой юзер уже существует (а это я и есть).
Вот мне надо чтобы программа проверяла несовпадает ли логин с другими пользователями но не сомной

   
 
 автор: cheops   (11.08.2004 в 15:23)   письмо автору
 
   для: Адоп Акробат   (11.08.2004 в 14:55)
 

А где оператор INSERT? Может вот так:
<?php
include ("connection.php"); 
$login1 htmlspecialchars($_REQUEST["user_login"], ENT_QUOTES); 
$password1 htmlspecialchars($_REQUEST["user_password"], ENT_QUOTES); 
$name1 htmlspecialchars($_REQUEST["user_name"], ENT_QUOTES); 
$fam1 htmlspecialchars($_REQUEST["user_fam"], ENT_QUOTES); 
$date1 htmlspecialchars($_REQUEST["user_date"], ENT_QUOTES); 
$sex1 htmlspecialchars($_REQUEST["user_sex"], ENT_QUOTES); 

$test mysql_query ("select * from users where login='$login1'"$connection) ; 
if(
$test && mysql_num_rows($test)>0

   
$except mysql_fetch_object($test); 
   if(
$except->login == "Адоп Акробат")
   {
      
// Обновляем данные для "Адоп Акробат"
      
$query mysql_query ("update users 
                             set password='"
.$password1."', 
                                 name='"
.$name1."', 
                                 fam='"
.$fam1."', 
                                 date='"
.$date1."', 
                                 sex='"
.$sex1."' 
                             where login='
$login1'"$connection); 
      if(
mysql_query($query))
      {
        echo 
"Данные для пользователя 'Адоп Акробат' успешно обновлены" "<br>"
        echo 
"<a href='index.php'>На главную!</a>"
      }
   }
   echo 
"<br>Такой юзер уже сужествует!" "<br>"
   echo 
"<a href='user_edit.php'>Назад.</a>"

else 

   
// Если такого пользователя нет в базе данных
   // добавляем его
   
if(mysql_query("INSERT INTO users VALUES('".$login1."',
                                            '"
.$password1."',
                                            '"
.$name1."',
                                            '"
.$fam1."',
                                            '"
.$date1."',
                                            '"
.$sex1."'",
                                             
$connection)
   {
     echo 
"Юзер создан!!" "<br>"
     echo 
"<a href='index.php'>На главную!</a>"
   }
   else
   {
     echo 
"Ошибка при создании пользователя" "<br>"
     echo 
"<a href='index.php'>На главную!</a>"
   }

?>

   
 
 автор: glsv (Дизайнер)   (11.08.2004 в 21:01)   письмо автору
 
   для: cheops   (11.08.2004 в 15:23)
 

Ребят, буду рад ошибиться, но мне кажется, что вы решаете разные задачи. Давайте еще раз точно определим - что надо сделать.

   
 
 автор: cheops   (11.08.2004 в 21:06)   письмо автору
 
   для: glsv (Дизайнер)   (11.08.2004 в 21:01)
 

Да нет вроде всё нормально: есть форма и скрипт за ней - она регистрирует посетителей, если посетитель хочет ник, который имеется в системе - ему следует отказать. Но среди зарегистрированных посетителей есть один посетитель с исключительными правами, который введя свой логин и пароль может менять свои регистрационные данные - только вот про пароль мы как-то опустили :)))

   
 
 автор: glsv (Дизайнер)   (11.08.2004 в 21:11)   письмо автору
 
   для: cheops   (11.08.2004 в 21:06)
 

>если посетитель хочет ник, который имеется в системе - ему следует отказать.
А мне кажется - не только регистрация
Менять свои данные могут все. И могут менять даже логин, но нельзя изменять его на логин уже существующего пользователя

>Но среди зарегистрированных посетителей есть один посетитель с исключительными правами

В в этом то я и сомневаюсь :))

Адоп Акробат, рассуди нас пожалуйста :)

   
 
 автор: glsv (Дизайнер)   (11.08.2004 в 21:09)   письмо автору
 
   для: glsv (Дизайнер)   (11.08.2004 в 21:01)
 

Давайте объявим мораторий на выкладывание кода пока не поставим задачу.

Попробую сделать это я.
Есть пользователи. Они могут менять свои данные, в том числе свои логин. Но при изменении своего логина надо сделать так, чтобы он не совпадал с логинами уже существующих пользователей. Так?

(Если так, то при обновлении нужно передавать и старый логин и новый. Тогда можно будет решить эту задачу)

   
 
 автор: Адоп Акробат   (12.08.2004 в 04:25)   письмо автору
 
   для: glsv (Дизайнер)   (11.08.2004 в 21:09)
 

>Есть пользователи. Они могут менять свои данные, в том числе
>свои логин. Но при изменении своего логина надо сделать так,
>чтобы он не совпадал с логинами уже существующих
>пользователей. Так?
Да так, этот скрипт у меня уже есть.
Но мне нужно, если я не хочу изменить свой логин, а хочу изменить другие данные, то мой скрипт скажет, что такой уже существует(а это я и есть), поэтому мой скрип обязует изменить свой логин, а если я его не изменю, то он скажет, то, что такой юзер уже существует. Понимаете в чем проблема??
Но если я изменил свой логин, то тогда программа должна проверять, есть такой юзер или нет.

   
 
 автор: glsv (Дизайнер)   (12.08.2004 в 08:27)   письмо автору
 
   для: Адоп Акробат   (12.08.2004 в 04:25)
 

Так, давайте по порядку.

>Но если я изменил свой логин, то тогда программа должна проверять, есть такой юзер или нет.
По этому пункту все понятно. Перефразирую: Если пользователь изменяет свои и данные и изменяет логин, то новый логин нужно проверить на совпадение с уже сущестующими. И если совпадает, то выводить об этом сообщение и запрещать изменять данные.

>Но мне нужно, если я не хочу изменить свой логин, а хочу изменить другие данные, то мой скрипт скажет, что такой уже существует(а это я и есть), поэтому мой скрип обязует изменить свой логин, а если я его не изменю, то он скажет, то, что такой юзер уже существует.
Вот здесь не до конца ясно. Но по моему подходим к решению…
Разбираем по порядку:
Пользователь менят свои данные, а логин менять не хочет. Логин остается старым.
Теперь скрипт обновления. При обновлении он проверяет логин на несовпадение с уже существующими. И вот здесь проблема! Так как логин не был изменен, то он будет найден в базе и изменения не пройдут. Так?

   
 
 автор: s1271tvg   (12.08.2004 в 08:55)   письмо автору
 
   для: glsv (Дизайнер)   (12.08.2004 в 08:27)
 

Ребятыможно я вклинюсь в вашу беседу и выскажу свое мнение.
Собствеено говоря у вас есть база пользователей, у каждого пользователя обычно есть уникальный номер, покрайней мере я обычно нумерую записи в базе autoincrement. Ну так вот и что тогда можно сделать Если пользователь Вася Пупкин зарегистрированный в базе хочет изменить свои данные все вплоть до Вася Пупкин на Ася Пупкина то мы апдейтом меняем все запрошенные данные в записи под помером который имел Вася предварительно конечно проверив не совпадает ли поле логин с такимже полем в записи с другим номером. И если не совпадает то благополучно меняем. А так как мы смотрим по номеру записи то у нас нет нужды сравнивать запись саму с собой.
То есть мы можем получить запрос такого вида.
<?php
$sql
="update table set login=$login and pwd=$pwd and email=$email и т.д.  where id=$id";
?>

Где $id это уникальный номер Васи Пупкина а $login, $pwd, $email и им подобные это те переменные которые записываются в базу.
Если я просто не врубился в тему извиняйте, но мне кажется так все можно решить.

   
 
 автор: glsv (Дизайнер)   (12.08.2004 в 08:34)   письмо автору
 
   для: Адоп Акробат   (12.08.2004 в 04:25)
 

Если я все правильно описан, то:
У вас в скрипте написано

<?
$result 
mysql_query("select * from users where id = $_REQUEST[user_id]"$connection);
?>


Т.е. у каждого пользователя есть user_id – идентификатор пользователя и он не изменяется.
Тогда – нет проблем. Во втором запросе применяйте user_id, что бы исключить этого пользователя из проверки. Вот так


<?
$test 
mysql_query ("select * from users where login='$login1' and user_id!=".$_REQUEST[user_id]." "$connection) ;
?>

   
 
 автор: Адоп Акробат   (12.08.2004 в 15:54)   письмо автору
 
   для: glsv (Дизайнер)   (12.08.2004 в 08:34)
 

Дизайнер большое вам человечиское спасиба!!
Извеняюсь за свою неграмотность.

   
 
 автор: LimP   (12.08.2004 в 20:56)   письмо автору
 
   для: glsv (Дизайнер)   (12.08.2004 в 08:34)
 

доброго времени суток,извините,что вклиниваюсь в вашу беседу,но тем не менее,у меня возникла почти точно такая дилемма,помогите ее решить,она щас обсуждается в соседней ветке,помогите отладить скрипт,он указан в последнем ссобщении...

вот ссылочка

http://softtime.ru/forum/read.php?id_forum=1&id_theme=205&id_post=1443

   
Rambler's Top100
вверх

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