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

Форум MySQL

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

 

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

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

тема: Гостевая на SQL...
 
 автор: Roo$   (24.07.2006 в 21:55)   письмо автору
 
 

Народ... Помогите мне пожалуйсто замутить госевуху в SQL. В гостевой книге можно будет добавить запись только зарегестрированным пользователем. Для этого мне нужно замутить register.php. Подскажите, какие типы палей лучше подайдут для (имя, пароль, e-mail, URL) этой цели.

   
 
 автор: cheops   (24.07.2006 в 22:21)   письмо автору
 
   для: Roo$   (24.07.2006 в 21:55)
 

Возможно вам будут интересны статьи
http://www.softtime.ru/info/articlephp.php?id_article=34
http://www.softtime.ru/info/articlephp.php?id_article=27
темы форума
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=8481
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=80
и приложение
http://www.softtime.ru/info/authorization.php

   
 
 автор: Roo$   (25.07.2006 в 01:08)   письмо автору
 
   для: cheops   (24.07.2006 в 22:21)
 

Скатал приложение регестрации по последней ссылке. Все работате, регестрирует, но он не делает проверку на наличие имеющегося пользователя с этим же именем. Как мне сделать эту проверку. Пробежаться по всей базе и сверить имя с именем в базе данных, если пользователь есть то выводится соответствующее сообщение. Покажите мне пожалуйсто эту проверку, как ее можно замутить через SQL?

   
 
 автор: cheops   (25.07.2006 в 10:05)   письмо автору
 
   для: 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;

   
 
 автор: Roo$   (25.07.2006 в 20:57)   письмо автору
 
   для: cheops   (25.07.2006 в 10:05)
 

Да, она самая

   
 
 автор: cheops   (25.07.2006 в 23:40)   письмо автору
 
   для: 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($cnt0) > 0) exit("К сожалению, данное имя уже занято, попробуйте выбрать другое");
?>

   
 
 автор: Roo$   (26.07.2006 в 23:09)   письмо автору
 
   для: 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']."'"; Пароль НЕ ВЕРИН!!!

   
 
 автор: CrazyAngel   (27.07.2006 в 01:11)   письмо автору
 
   для: Roo$   (26.07.2006 в 23:09)
 


<?php
$pass 
$_POST["pass"];
$login $_POST["name"];

setcookie("username"$loginmktime(0,0,0,01,25,2010));
setcookie("userpassword"$passmktime(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? нет не должны.

   
 
 автор: CrazyAngel   (27.07.2006 в 19:55)   письмо автору
 
   для: cheops (из кафе)   (27.07.2006 в 10:18)
 

для занесения в MySQL

   
 
 автор: Roo$   (27.07.2006 в 22:55)   письмо автору
 
   для: CrazyAngel   (27.07.2006 в 19:55)
 

Спасибо большое, с куками разобрался, а вот с md5($password) - нет.
Мне нужно сделать проверку вот какую:
$query = "SELECT pass FROM userlist WHERE name='".$_POST['name']."'";

   
 
 автор: hell_riser   (27.07.2006 в 23:19)   письмо автору
 
   для: 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("Пароль не верный");
?>

   
 
 автор: Roo$   (28.07.2006 в 00:02)   письмо автору
 
   для: hell_riser   (27.07.2006 в 23:19)
 

hell_riser, большое спасибо за помощь, все работает.

   
 
 автор: Roo$   (28.07.2006 в 22:47)   письмо автору
 
   для: hell_riser   (27.07.2006 в 23:19)
 

А вообще, зачем нужен этот md5?

   
 
 автор: cheops   (28.07.2006 в 23:18)   письмо автору
 
   для: Roo$   (28.07.2006 в 22:47)
 

Для необратимого шифрования, чтобы пароль знал только владелец пароля.

   
 
 автор: Roo$   (29.07.2006 в 19:16)   письмо автору
 
   для: cheops   (28.07.2006 в 23:18)
 

Решил, наворотить систему регестрации, добавив туда выбора пола (option value), и прикрепление к регестрации своей фотки. Как мне это замутить (прекрепить фотку). И в каом типе полей мне нужно сохранять результат выбора пола (option value)...

P.S.: У Вас кажется не работает ссылка "Вернуться назад" в списке online пользователей... Или я плохо нажимаю ее??? Но назад у меня она не возращает....

   
 
 автор: cheops   (30.07.2006 в 11:14)   письмо автору
 
   для: Roo$   (29.07.2006 в 19:16)
 

1. Прикрепление фото - это аплоад файлов на сервер http://www.softtime.ru/scripts/upload.php
2. Результат выбора удобнее хранить в поле типа ENUM
3. Спасибо, обязательно поправим.

   
 
 автор: Roo$   (31.07.2006 в 21:37)   письмо автору
 
   для: 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)   письмо автору
 
   для: Roo$   (31.07.2006 в 21:37)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=19122.

   
 
 автор: Roo$   (01.08.2006 в 10:29)   письмо автору
 
   для: cheops   (01.08.2006 в 10:17)
 

Так этоже мая тема, я ее создовал.... Я разобрался, но я не могу разобраться с option...... Как занести нужное value в базу а затем его же прочитать... Создаю поле с типом enum (как вы мне сказали). Там нужно указать какойто формат... Для чего? Указал например 3. И что дальше...

   
 
 автор: cheops   (01.08.2006 в 10:33)   письмо автору
 
   для: Roo$   (01.08.2006 в 10:29)
 

>Так этоже мая тема, я ее создовал...
Не заметил :)))
>Там нужно указать какойто формат... Для чего? Указал например 3. И что дальше...
Приведите структуру вашей таблицы - как она сейчас выглядит? Получить её можно при помощи оператора SHOW CREATE TABLE имя_таблицы.

   
 
 автор: Roo$   (01.08.2006 в 10:53)   письмо автору
 
   для: 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 (выше описано).

   
 
 автор: cheops   (01.08.2006 в 12:23)   письмо автору
 
   для: Roo$   (01.08.2006 в 10:53)
 

Нет, в поле enum нужно указать столько значений, сколько их в выпадающем списке
pol enum('male','female','neuter') default NULL,

   
 
 автор: Loki   (01.08.2006 в 13:02)   письмо автору
 
   для: cheops   (01.08.2006 в 12:23)
 

может все же так?

pol enum('male','female','neuter') default 'neuter',

   
 
 автор: cheops   (01.08.2006 в 16:27)   письмо автору
 
   для: Loki   (01.08.2006 в 13:02)
 

Ага, default забыл переписать.

   
 
 автор: Roo$   (01.08.2006 в 23:36)   письмо автору
 
   для: cheops   (01.08.2006 в 16:27)
 

Ага, таблицу отредактировал, а дальше как?

   
 
 автор: cheops   (02.08.2006 в 10:07)   письмо автору
 
   для: 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'].

   
 
 автор: Roo$   (02.08.2006 в 19:58)   письмо автору
 
   для: cheops   (02.08.2006 в 10:07)
 

Как? Вот так?
$pol = $_POST["pol"];

$query = "INSERT INTO userlist VALUES (NULL,'$login','".md5($pass)."','$myname','$pol','$ear','$about','$myfamiliy','$mail')";

   
 
 автор: Unkind™   (02.08.2006 в 20:22)   письмо автору
 
   для: cheops   (02.08.2006 в 10:07)
 

Roo$
<option value="neuter">Средний</option>
Ну вы приколист =))

   
 
 автор: Roo$   (03.08.2006 в 00:05)   письмо автору
 
   для: Unkind™   (02.08.2006 в 20:22)
 

Да главное разобраться, а там изменю значения...

   
 
 автор: Roo$   (03.08.2006 в 22:33)   письмо автору
 
   для: Roo$   (03.08.2006 в 00:05)
 

С этим я разобрался.... Теперь как мне лучше будет просмотреть информацию о каждом пользователе?! Например... пользователь добавил сообщение в гостевой книге.... Щелкнув по его имени (в сообщении) открывается окно с его регистрационными данными.

   
Rambler's Top100
вверх

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