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

Форум MySQL

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

 

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

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

тема: Проверка на существование в базе записи...
 
 автор: DMN   (02.12.2005 в 23:15)   письмо автору
 
 

Есть форма регистрации, есть проверка на пустые поля, но почему-та не проверяется существование записи...

Код:

if($row['login'] == $login) {   
   echo "Логин уже используется в системе!"; 
}else{


Перед этим проходит коннект к базе mysql и проверяется, есть ли такой логин в базе или нет.Но проверка не проходит и юзер регистрирует любое занятое имя...
Может можно проверить как-то другим способом?

   
 
 автор: Loki   (02.12.2005 в 23:53)   письмо автору
 
   для: DMN   (02.12.2005 в 23:15)
 


<?
$sql
="SELECT * FROM users WHERE login='$login'";
$result=mysql_query($sql);
if (
mysql_num_rows($result))
{
 echo 
"Это имя уже занято";
}
?>

   
 
 автор: DMN   (03.12.2005 в 00:00)   письмо автору
 
   для: Loki   (02.12.2005 в 23:53)
 

нерабоает!!!

   
 
 автор: Евгений Петров   (03.12.2005 в 00:06)   письмо автору
 
   для: DMN   (03.12.2005 в 00:00)
 

<?
  
if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' LIMIT 1"),0) == 1)
    echo 
"Извините такой логин уже есть";
?>

   
 
 автор: DMN   (03.12.2005 в 00:14)   письмо автору
 
   для: Евгений Петров   (03.12.2005 в 00:06)
 

также неработает... :(((

   
 
 автор: Евгений Петров   (03.12.2005 в 00:29)   письмо автору
 
   для: DMN   (03.12.2005 в 00:14)
 

А что значит не работает?

   
 
 автор: DMN   (03.12.2005 в 00:35)   письмо автору
 
   для: Евгений Петров   (03.12.2005 в 00:29)
 

>А что значит не работает?
это значит, что запись в базу всё-равно идёт!

   
 
 автор: Евгений Петров   (03.12.2005 в 00:57)   письмо автору
 
   для: DMN   (03.12.2005 в 00:35)
 

Да исчерпывающий ответ. :) Приведите весь код.

   
 
 автор: DMN   (03.12.2005 в 01:10)   письмо автору
 
   для: Евгений Петров   (03.12.2005 в 00:57)
 

Да что тут непонятного???
Весь код обсалютно не к чему!

Вот ещё нашёл:

$result = mysql_query("SELECT 'id_member' FROM 'members' WHERE login = '$login'");
  if(mysql_num_rows($result) > 0 ) {  
  echo "Извините такой логин уже есть";
}else{


Если кому непонятно, поясняю...
Идёт коннект к базе, далее проверяется, если похожая запись или нет, если есть выводится "Извините такой логин уже есть", если нет, то вводится в базу...

   
 
 автор: Евгений Петров   (03.12.2005 в 01:38)   письмо автору
 
   для: DMN   (03.12.2005 в 01:10)
 

Я все прекрсано понимаю, но проблема не в тех конструкциях что мы вам привели а именно в вашем коде, т.к. все эти конструкции рабочие.

   
 
 автор: DMN   (03.12.2005 в 01:46)   письмо автору
 
   для: DMN   (02.12.2005 в 23:15)
 

Вот код ВСЕЙ страницы:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Регистрация в партнёрской программе.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head><body>
<form action="index.php" method="POST">
Ваш логин: <input name="login" type="text"  value="" maxlength=15/><br><br>
Ваш пароль: <input name="password" type="text"  value="" maxlength=15/><br><br>
Email: <input type="text" name="email" value="" size=28><br><br>
WebMoney кошелёк: <input name="wmz" type="text" value="" maxlength=13/><br><br>
<input type="submit" name="set" value="Регистрация"/>
</form>
</body></html>

<?php
if($_POST[set] == "Регистрация"){

// проверка на пустые поля
if(empty($login)){echo "Вы не ввели логин!"; exit;}
if(empty(
$password)){echo "Вы не ввели пароль!"; exit;}
if(empty(
$email)){echo "Вы не ввели email!"; exit;}
if(empty(
$wmz)){echo "Вы не ввели свой номер кошелька!"; exit;}

require_once(
"part/site_config.php");

$result mysql_query("SELECT 'id_member' FROM 'members' WHERE login = '$login'");
  if(
mysql_num_rows($result) > ) {  
  echo 
"Извините такой логин уже есть";
}else{

function 
safe_term($variable){
  
$variable addslashes(trim($variable));
              return 
$variable;
             }
 
$login safe_term($_POST['login']);
$pas safe_term($_POST['password']);
$email safe_term($_POST['email']);
$wmz safe_term($_POST['wmz']);
    
$date=date("m.d.Y H:i");
$pas=sha1($password);
  
$query="INSERT into members (id_member, created, login, email, wmz, zakaz, z_opl) values (
'',
'
$date',
'"
.$login."',
'"
.$email."',
'"
.$wmz."',
'0',
'0'
)"
;

mysql_query($query);

mysql_query('SELECT * FROM users')
  or die(
mysql_error());

$query1="INSERT into users (username, password) values (
'"
.$login."',
'"
.$pas."'
)"
;

mysql_query($query1);

  echo 
"Получилось!";
  
exit;
}
}
?>

   
 
 автор: Евгений Петров   (03.12.2005 в 02:23)   письмо автору
 
   для: DMN   (03.12.2005 в 01:46)
 

Тю ну так у вас же в конце явно занесение в таблицу идет
<?
  $query1
="INSERT into users (username, password) values (
'"
.$login."',
'"
.$pas."'
)"
;
  
mysql_query($query1);
?>

   
 
 автор: DMN   (03.12.2005 в 02:31)   письмо автору
 
   для: DMN   (02.12.2005 в 23:15)
 

Ладно, изменил до такого:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Регистрация в партнёрской программе.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head><body>
<form action="index.php" method="POST">
Ваш логин: <input name="login" type="text"  value="" maxlength=15/><br><br>
Ваш пароль: <input name="password" type="text"  value="" maxlength=15/><br><br>
Email: <input type="text" name="email" value="" size=28><br><br>
WebMoney кошелёк: <input name="wmz" type="text" value="" maxlength=13/><br><br>
<input type="submit" name="set" value="Регистрация"/>
</form>
</body></html>

<?php
if($_POST[set] == "Регистрация"){

// проверка на пустые поля
if(empty($login)){echo "Вы не ввели логин!"; exit;}
if(empty(
$password)){echo "Вы не ввели пароль!"; exit;}
if(empty(
$email)){echo "Вы не ввели email!"; exit;}
if(empty(
$wmz)){echo "Вы не ввели свой номер кошелька!"; exit;}

require_once(
"part/site_config.php");

$result mysql_query("SELECT 'id_member' FROM 'members' WHERE login = '$login'");
  if(
mysql_num_rows($result) > ) {  
  echo 
"Извините такой логин уже есть";
}else{

function 
safe_term($variable){
  
$variable addslashes(trim($variable));
              return 
$variable;
             }
 
$login safe_term($_POST['login']);
$pas safe_term($_POST['password']);
$email safe_term($_POST['email']);
$wmz safe_term($_POST['wmz']);
    
$date=date("m.d.Y H:i");
$pas=sha1($password);
  
$query="INSERT into members (id_member, created, login, password, email, wmz, zakaz, z_opl) values ('', '$date', '".$login."', '".$password."', '".$email."', '".$wmz."', '0', '0' )";

mysql_query($query);

  echo 
"Получилось!";
  
exit; }
}
?>

   
 
 автор: DMN   (03.12.2005 в 23:58)   письмо автору
 
   для: DMN   (02.12.2005 в 23:15)
 

Смотрите пост ниже...

   
 
 автор: DMN   (03.12.2005 в 23:59)   письмо автору
 
   для: DMN   (02.12.2005 в 23:15)
 

Сократил до такого!!!


<?php
if($_POST[set] == "Регистрация"){

require_once(
"part/site_config.php");

// Здесь сделать проверку...

$date=date("d.m.Y H:i");
$pas=sha1($password);

$query="INSERT into members (id_member, created, login, password, email, wmz, zakaz, z_opl) values (
'', '
$date', '$login', '$pas', '$email', '$wmz', '0', '0')";

mysql_query($query);

  echo 
"Получилось!";
}
?>


Может это глюки от того, что я на "Денвере" тестирую??? Хотя он последней версии...

   
 
 автор: Евгений Петров   (04.12.2005 в 01:52)   письмо автору
 
   для: DMN   (03.12.2005 в 23:59)
 

Попробуйте так:
<?
  
function to_mysql($string)
  {
    if(!
get_magic_quotes_gpc())
      return 
mysql_escape_string($string);
    else
      return 
$string;
  }
  if(
$_POST['set'] == "Регистрация")
  {
    
// проверка на пустые поля
    
if(empty($login))
      exit(
"Вы не ввели логин!");
    else
      
$login to_mysql($login);
    if(empty(
$password))
      exit(
"Вы не ввели пароль!");
    if(empty(
$email))
      exit(
"Вы не ввели email!");
    else
      
$email to_mysql($email);
    if(empty(
$wmz))
      exit(
"Вы не ввели свой номер кошелька!");
    else
      
$wmz to_mysql($wmz);

    require_once(
"part/site_config.php");

    if(
mysql_result(mysql_query("SELECT COUNT(*) FROM members WHERE login = '$login' LIMIT 1"),0) == 1)
      echo 
"Извините такой логин уже есть";
    else
    {
      
$pas sha1($password);
      if(
mysql_query("INSERT INTO members() VALUES
      (
        '',
        '"
.date("m.d.Y H:i")."',
        '
$login',
        '
$pas',
        '
$email',
        '
$wmz',
        '0',
        '0'
      )"
))
        echo 
"Получилось";
      else
        echo 
mysql_error();
    }
  }
?>

   
 
 автор: DMN   (04.12.2005 в 02:30)   письмо автору
 
   для: Евгений Петров   (04.12.2005 в 01:52)
 

Пишет "Column count doesn't match value count at row 1" при любом значении!!!

   
 
 автор: Евгений Петров   (04.12.2005 в 02:57)   письмо автору
 
   для: DMN   (04.12.2005 в 02:30)
 

А какая у вас структура members?

   
 
 автор: DMN   (04.12.2005 в 03:26)   письмо автору
 
   для: Евгений Петров   (04.12.2005 в 02:57)
 

Структура такая:

'id_member'
'created'
'login'
'password'
'email'
'wmz'
'zakaz'
'z_opl'

   
 
 автор: cheops   (04.12.2005 в 14:05)   письмо автору
 
   для: DMN   (04.12.2005 в 03:26)
 

Странно, ошибка "Column count doesn't match value count at row 1" сообщает, что у вас не совпадает число столбцов в таблице members и INSERT-запросе к этой таблице...

   
 
 автор: Евгений Петров   (04.12.2005 в 18:47)   письмо автору
 
   для: DMN   (04.12.2005 в 03:26)
 

А структура точно такая? У вас есть phpMyAdmin или дампер какой нибудь. Выложите дамп таблицы members.

   
Rambler's Top100
вверх

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