|
|
|
| Ребят помогите пожалуйста! почему-то пишет что ваша учетная запись активирована но у поля status остается значение все равно 0 хотя должно менятся на 1
дамп
--
-- Структура таблицы `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(20) NOT NULL default '',
`password` varchar(20) NOT NULL default '',
`email` varchar(20) NOT NULL default '',
`status` int(1) NOT NULL default '0',
`unique_id` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=39 ;
--
-- Дамп данных таблицы `users`
--
INSERT INTO `users` (`id`, `login`, `password`, `email`, `status`, `unique_id`) VALUES
(38, 'qwe', 'd41d8cd98f00b204e980', 'bbbb@mail.ru', 0, 'b04ca5a28595fac77230dd0b21294e6b');
|
вот код
<?php
//Модуль отвечающий за активацию аккаунта
if($_GET['activation'] AND $_GET['activation']!='')
{
$unique_id = $_GET['activation'];
//Создаем запрос
$active = @mysql_query("UPDATE users SET status='1' WHERE unique_id='".$unique_id."' AND status='0'");
if ($active)
{
echo 'Ваша учетная запись активирована. Теперь вы можете войти на сайт используя данные указанные при регистрации';
}
else
{
echo 'Активация невозможна: профиль уже активирован';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(01.08.2009 в 18:43)
| | >Команда UPDATE возвращает количество фактически измененных строк.
нужно вызывать например mysql_result() чтобы проверить сколько замен произошло
и if($_GET['activation'] AND $_GET['activation']!='') в случае с пустой строкой сработают оба
по идее должно быть что-то вроде (isset($_GET['activation']) && !empty($_GET['activation']))
но mysql_escape_string() вроде тоже не помешает
upd //хотя с другой стороны :)
int mysql_affected_rows ( [resource link_identifier] )
mysql_affected_rows() возвращает количество рядов, затронутых последним INSERT, UPDATE, DELETE запросом к серверу, на который ссылается указатель link_identifier. Если ресурс не указан, функция использует последнее, успешное соединение, выполненное с помощью функции | |
|
|
|
|
|
|
|
для: EXP
(01.08.2009 в 19:26)
| | ничего не понял..
можно пример как должно быть | |
|
|
|
|
|
|
|
для: t3ma
(01.08.2009 в 19:38)
| | непроверял :)
<?php
//Модуль отвечающий за активацию аккаунта
if(isset($_GET['activation']) AND $_GET['activation']!='')
{
$unique_id = mysql_escape_string($_GET['activation']);
//Создаем запрос
$active = @mysql_query("UPDATE users SET status='1' WHERE unique_id='".$unique_id."' AND status='0'");
if (mysql_affected_rows() == 1)
{
echo 'Ваша учетная запись активирована. Теперь вы можете войти на сайт используя данные указанные при регистрации'
.' и активирована всего одна запись:)';
}
else
{
echo 'Активация невозможна: профиль уже активирован'
.' или нет такого unique_id
или активировано сразу несколько профилЕй :)';
}
}
?>
|
| |
|
|
|
|
|
|
|
для: EXP
(01.08.2009 в 20:43)
| | Спасибо все работает :)
но не понятно "или активировано сразу несколько профилЕй :)"
как может быть активировано несколько профилей ? )) | |
|
|
|
|
|
|
|
для: t3ma
(01.08.2009 в 20:49)
| | В случаи, если уникальный код оказался не таким уж уникальным) | |
|
|
|