Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2010, 00:22   #1
vanka_32
Новичок
Джуниор
 
Регистрация: 23.02.2010
Сообщений: 4
По умолчанию Проблема в коде регистрации

PHP код:
<?php
if($_POST['name']=="" || $_POST['pass']=="" || $_POST['email']=="") { header ("Location: ../reg.php?error=empty"); exit();}




$name $_POST['name'];
$email $_POST['email'];
$pass  $_POST['pass'];

      
$hostname "localhost";
      
$username "*****";
      
$password "*****";
      
$dbName "*****";
      
$userstable "ajax_chat_users";
      
// подключаемся к базе данных

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());


// кол-во строк

$res mysql_query("SELECT name
                    FROM `ajax_chat_users`
                    WHERE `name` = '
$name'
                    "
);
// поиск совпадений                     
    
if (mysql_result($res)>0)
    {
    echo 
'Есть у нас уже один '$name .'. Попробуйте выбрать другой логин.'
    } else { 
             
$query "INSERT INTO `ajax_chat_users` VALUES (NULL, '$name', '$email', '$pass', '1', '123')";
    
mysql_query($query) or die(mysql_error());
        echo 
'Все в порядке'
        
    } 
    

        
mysql_close();




?>
вот весь код проблема, в том, что в любом случае всегда проходит регистрация,
PHP код:
$res mysql_query("SELECT name
                    FROM `ajax_chat_users`
                    WHERE `name` = '
$name'
                    "
); 
данный запрос работает отлично. но почему то всегда выполняется команда после else.
vanka_32 вне форума Ответить с цитированием
Старый 23.02.2010, 02:07   #2
ilma55
webber
Форумчанин
 
Аватар для ilma55
 
Регистрация: 28.01.2010
Сообщений: 103
По умолчанию

вроде у тебя все правильно... не запускал... ну это так на вскидку.
может попробуй так:

$res = mysql_query("SELECT name FROM `ajax_chat_users` WHERE `name` = '$name' ");

// поиск совпадений
if ($res)
{
echo 'Есть у нас уже один '. $name .'. Попробуйте выбрать другой логин.';
}
else
{
$query = "INSERT INTO `ajax_chat_users` VALUES (NULL, '$name', '$email', '$pass', '1', '123')";
mysql_query($query) or die(mysql_error());
echo 'Все в порядке';

}
mysql_close();
Компьютерные вирусы - это такие маленькие программульки, которые пишут большие говнюки.
ilma55 вне форума Ответить с цитированием
Старый 23.02.2010, 02:20   #3
vanka_32
Новичок
Джуниор
 
Регистрация: 23.02.2010
Сообщений: 4
По умолчанию

так записать нельзя по той причине что тогда он переменную res не будет сравнивать а при проверке мне в любом случае нужна проверка, как у меня написано там сравнение с 0 если result больше 0 то он должен выполнять первое действие но почемуто он не реагирует.
vanka_32 вне форума Ответить с цитированием
Старый 23.02.2010, 03:50   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

mysql_result() требует второй параметр - номер выбранной записи. Да и что он возвратит в случае, если записи не найдены, тоже непонятно. Так что используйте лучше что-нибудь вроде mysql_fetch_row(), они и работают быстрее, и удобнее
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 23.02.2010, 11:17   #5
vanka_32
Новичок
Джуниор
 
Регистрация: 23.02.2010
Сообщений: 4
По умолчанию

а можете написать как это сделать? просто понять не могу, mysql_result() возвращает значение 1 или 0, по этому принципу я сравниваю с 0, после поиска в массиве, так что у mysql_result() выходит сравнение с 0 больше или меньше.
vanka_32 вне форума Ответить с цитированием
Старый 24.02.2010, 01:01   #6
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
mysql_result() возвращает значение 1 или 0
С чего Вы взяли? Вообще-то она возвращает значение одной ячейки результата запроса
Код:
$res = mysql_query("SELECT name FROM `ajax_chat_users` WHERE `name` = '$name'");
// поиск совпадений                     
if ($row = mysql_fetch_assoc($res)) {
    echo 'Есть у нас уже один '. $name .'. Попробуйте выбрать другой логин.'; 
} 
else { 
    $query = "INSERT INTO `ajax_chat_users` VALUES (NULL, '$name', '$email', '$pass', '1', '123')";
    mysql_query($query) or die(mysql_error());
    echo 'Все в порядке';    
}
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 24.02.2010, 01:52   #7
vanka_32
Новичок
Джуниор
 
Регистрация: 23.02.2010
Сообщений: 4
По умолчанию

не хочет работать функция, так же как и с mysql_result()
vanka_32 вне форума Ответить с цитированием
Старый 24.02.2010, 02:12   #8
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Тогда ставьте в начале скрипта error_reporting(E_ALL) и смотрите, где ещё может быть ошибка. У меня этот код отработал на ура. Может, пароль к базе не тот или ещё что
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема в коде GPSS Crazy D0G Помощь студентам 0 23.01.2010 16:00
Математические расчеты. Проблема в коде. Розочка Паскаль, Turbo Pascal, PascalABC.NET 2 15.09.2009 15:01
Скрипт регистрации Sounds PHP 7 09.03.2009 23:17
Реализация регистрации Sanek777 Безопасность, Шифрование 1 08.11.2008 17:46
Форма регистрации Esenin Фриланс 8 31.05.2008 18:16