|
|
|
| Народ... Помогите мне пожалуйсто замутить госевуху в SQL. В гостевой книге можно будет добавить запись только зарегестрированным пользователем. Для этого мне нужно замутить register.php. Подскажите, какие типы палей лучше подайдут для (имя, пароль, e-mail, URL) этой цели. | |
|
|
|
|
|
|
|
|
для: cheops
(24.07.2006 в 22:21)
| | Скатал приложение регестрации по последней ссылке. Все работате, регестрирует, но он не делает проверку на наличие имеющегося пользователя с этим же именем. Как мне сделать эту проверку. Пробежаться по всей базе и сверить имя с именем в базе данных, если пользователь есть то выводится соответствующее сообщение. Покажите мне пожалуйсто эту проверку, как ее можно замутить через SQL? | |
|
|
|
|
|
|
|
для: Roo$
(25.07.2006 в 01:08)
| | Хм... таблицу используете какую, вот эту?
CREATE TABLE userlist (
id_user int(11) NOT NULL auto_increment,
name tinytext NOT NULL,
pass tinytext NOT NULL,
PRIMARY KEY (id_user)
) TYPE=MyISAM;
|
| |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 10:05)
| | Да, она самая | |
|
|
|
|
|
|
|
для: Roo$
(25.07.2006 в 20:57)
| | Тогда просто проверяйте имеются ли записи в таблице с таким именем при помощи кода
<?php
$query = "SELECT COUNT(*) FROM tbl WHERE name = '$name'";
$cnt = mysql_query($query);
if($cnt) exit(mysql_error());
if(mysql_result($cnt, 0) > 0) exit("К сожалению, данное имя уже занято, попробуйте выбрать другое");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 23:40)
| | Большое спасибо за код.. работает..
Теперь как мне прописать куки. Т.е. имя и пароль сохранялись в куку... Я делаю так....
$pass = $HTTP_POST_VARS["pass"];
$login = $HTTP_POST_VARS["name"];
setcookie("username");
setcookie("userpassword");
setcookie("username", $login, mktime(0,0,0,01,25,2010));
setcookie("userpassword", $pass, mktime(0,0,0,01,25,2010));
но, ничего не сохраняется? Что я делаю нетак?
И еще один вопрос. При добавлении данных в базу я пароль сохраняю как...
$query = "INSERT INTO userlist VALUES (NULL,'$login','".md5($pass)."')";
А при считывании как его проверять? Так не канает:
$query = "SELECT pass FROM userlist WHERE name='".$_POST['name']."'"; Пароль НЕ ВЕРИН!!! | |
|
|
|
|
|
|
|
для: Roo$
(26.07.2006 в 23:09)
| |
<?php
$pass = $_POST["pass"];
$login = $_POST["name"];
setcookie("username", $login, mktime(0,0,0,01,25,2010));
setcookie("userpassword", $pass, mktime(0,0,0,01,25,2010));
?>
|
<?php
$query = "INSERT INTO userlist VALUES (NULL,'$login','md5($pass)');";
$name = $_POST['name'];
$query = "SELECT pass FROM userlist WHERE name='$name';";
?>
|
может так?
Только я смысла если честно не понимаю, может лучше так действовать?
<?php
$name = $_POST['name'];
$pass = $_POST['pass'];
$query = "SELECT * FROM userlist WHERE name='$name' and pass='md5($pass)';";
?>
|
У меня возник вопрос, могут ли после md5 появиться недопустимые символы? | |
|
|
|
|
автор: cheops (из кафе) (27.07.2006 в 10:18) |
|
|
для: CrazyAngel
(27.07.2006 в 01:11)
| | >У меня возник вопрос, могут ли после md5 появиться недопустимые символы?
Не допустимые для чего? Для cookie? нет не должны. | |
|
|
|
|
|
|
|
для: cheops (из кафе)
(27.07.2006 в 10:18)
| | для занесения в MySQL | |
|
|
|
|
|
|
|
для: CrazyAngel
(27.07.2006 в 19:55)
| | Спасибо большое, с куками разобрался, а вот с md5($password) - нет.
Мне нужно сделать проверку вот какую:
$query = "SELECT pass FROM userlist WHERE name='".$_POST['name']."'"; | |
|
|
|
|
|
|
|
для: Roo$
(27.07.2006 в 22:55)
| | >Спасибо большое, с куками разобрался, а вот с md5($password)
> - нет.
>Мне нужно сделать проверку вот какую:
>$query = "SELECT pass FROM userlist WHERE
>name='".$_POST['name']."'";
Дальше пишите
<?php
$sql = mysql_query($query);
$pas = mysql_fetch_assoc($sql);
$pass = $pas['pass']; // Выбираем пароль из БД.
if($pass != md5($POST['password']))// Сверяем хеш пароля из БД с хешем полученого от юзера пароля.
exit("Пароль не верный");
?>
|
| |
|
|
|
|
|
|
|
для: hell_riser
(27.07.2006 в 23:19)
| | hell_riser, большое спасибо за помощь, все работает. | |
|
|
|
|
|
|
|
для: hell_riser
(27.07.2006 в 23:19)
| | А вообще, зачем нужен этот md5? | |
|
|
|
|
|
|
|
для: Roo$
(28.07.2006 в 22:47)
| | Для необратимого шифрования, чтобы пароль знал только владелец пароля. | |
|
|
|
|
|
|
|
для: cheops
(28.07.2006 в 23:18)
| | Решил, наворотить систему регестрации, добавив туда выбора пола (option value), и прикрепление к регестрации своей фотки. Как мне это замутить (прекрепить фотку). И в каом типе полей мне нужно сохранять результат выбора пола (option value)...
P.S.: У Вас кажется не работает ссылка "Вернуться назад" в списке online пользователей... Или я плохо нажимаю ее??? Но назад у меня она не возращает.... | |
|
|
|
|
|
|
|
для: Roo$
(29.07.2006 в 19:16)
| | 1. Прикрепление фото - это аплоад файлов на сервер http://www.softtime.ru/scripts/upload.php
2. Результат выбора удобнее хранить в поле типа ENUM
3. Спасибо, обязательно поправим. | |
|
|
|
|
|
|
|
для: cheops
(30.07.2006 в 11:14)
| | Объясните как именно можно занести значение в базу данных (если не трудно). И как его потом отуда прочитать. А то я просидел, и нефига так и не понял.
Вот например у меня три значения:
<option value="value1">Мужской</option>
<option value="value2">Средний</option>
<option value="value3">Женский</option>
</select></td>
Вот, мне надо занести в базу данных (по нажатию по кнопке) то значение которое выберит пользователь. | |
|
|
|
|
|
|
|
|
для: cheops
(01.08.2006 в 10:17)
| | Так этоже мая тема, я ее создовал.... Я разобрался, но я не могу разобраться с option...... Как занести нужное value в базу а затем его же прочитать... Создаю поле с типом enum (как вы мне сказали). Там нужно указать какойто формат... Для чего? Указал например 3. И что дальше... | |
|
|
|
|
|
|
|
для: Roo$
(01.08.2006 в 10:29)
| | >Так этоже мая тема, я ее создовал...
Не заметил :)))
>Там нужно указать какойто формат... Для чего? Указал например 3. И что дальше...
Приведите структуру вашей таблицы - как она сейчас выглядит? Получить её можно при помощи оператора SHOW CREATE TABLE имя_таблицы. | |
|
|
|
|
|
|
|
для: cheops
(01.08.2006 в 10:33)
| | Вот структура таблицы
CREATE TABLE 'userlist' (
'id_user' int(11) NOT NULL auto_increment,
'name' tinytext NOT NULL,
'pass' tinytext NOT NULL,
'myname' tinytext NOT NULL,
'pol' enum('3') default NULL,
'ear' int(2) NOT NULL default '0',
'about' longtext NOT NULL,
'myfamiliy' tinytext NOT NULL,
'mail' tinytext NOT NULL,
PRIMARY KEY ('id_user')
) TYPE=MyISAM
Вот в поле pol должно хронится значение выбранное из option (выше описано). | |
|
|
|
|
|
|
|
для: Roo$
(01.08.2006 в 10:53)
| | Нет, в поле enum нужно указать столько значений, сколько их в выпадающем списке
pol enum('male','female','neuter') default NULL,
|
| |
|
|
|
|
|
|
|
для: cheops
(01.08.2006 в 12:23)
| | может все же так?
pol enum('male','female','neuter') default 'neuter',
|
| |
|
|
|
|
|
|
|
для: Loki
(01.08.2006 в 13:02)
| | Ага, default забыл переписать. | |
|
|
|
|
|
|
|
для: cheops
(01.08.2006 в 16:27)
| | Ага, таблицу отредактировал, а дальше как? | |
|
|
|
|
|
|
|
для: Roo$
(01.08.2006 в 23:36)
| | Теперь исправьте HTML-форму
<select name=pol>
<option value="male">Мужской</option>
<option value="neuter">Средний</option>
<option value="female">Женский</option>
</select></td>
|
И записывайте в базу данных значение $_POST['pol']. | |
|
|
|
|
|
|
|
для: cheops
(02.08.2006 в 10:07)
| | Как? Вот так?
$pol = $_POST["pol"];
$query = "INSERT INTO userlist VALUES (NULL,'$login','".md5($pass)."','$myname','$pol','$ear','$about','$myfamiliy','$mail')"; | |
|
|
|
|
|
|
|
для: cheops
(02.08.2006 в 10:07)
| | Roo$
<option value="neuter">Средний</option>
Ну вы приколист =)) | |
|
|
|
|
|
|
|
для: Unkind™
(02.08.2006 в 20:22)
| | Да главное разобраться, а там изменю значения... | |
|
|
|
|
|
|
|
для: Roo$
(03.08.2006 в 00:05)
| | С этим я разобрался.... Теперь как мне лучше будет просмотреть информацию о каждом пользователе?! Например... пользователь добавил сообщение в гостевой книге.... Щелкнув по его имени (в сообщении) открывается окно с его регистрационными данными. | |
|
|
|