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

Форум MySQL

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

 

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

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

тема: Хранение Логинов и Паролей в БД
 
 автор: 10100100   (09.10.2005 в 14:47)   письмо автору
 
 

это продолжение темы про настройку Мускула...

в общем необходимо создать базу в которой бы хранились логины пароли и другая инфа о зарегиных пользователей и чтоб можно было вписывать туда новых пользователей, так же само собой вывод этой информации по запросу..

в общем есть файл members.sql в нём таблица user:

CREATE TABLE 'user' (

'id_user' INT NOT NULL AUTO_INCREMENT ,
'name' TINYTEXT,
'pass' TINYTEXT,
'email' TINYTEXT,
'homepage' TINYTEXT,
'about' TINYTEXT,
'photo' TINYTEXT,
'time' DATETIME DEFAULT NULL ,
'last_time' DATETIME DEFAULT NULL ,
PRIMARY KEY ( id_user )
) TYPE = MYISAM
Ответ MySQL:

   
 
 автор: cheops   (09.10.2005 в 14:54)   письмо автору
 
   для: 10100100   (09.10.2005 в 14:47)
 

Сразу приведу ссылку на начало http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=8110

Имеется ли phpMyAdmin или вы пользуетесь другим MySQL-клиентом?

   
 
 автор: 10100100   (09.10.2005 в 15:18)   письмо автору
 
   для: 10100100   (09.10.2005 в 14:47)
 

использую phpMyAdmin
сразу вопрос, что может сделать phpMyAdmin чего не могу сделать я в блокноте, тоесть все таблицы я могу и сам создать ведь так? тогда зачем нужен Админ? всмысле я понимаю что он работает как сервер. в общем у мя Денвер2 стоит...

   
 
 автор: cheops   (09.10.2005 в 21:48)   письмо автору
 
   для: 10100100   (09.10.2005 в 15:18)
 

Он позволяет многие операции осуществлять быстрее и без знания SQL - кроме того он позволяет легко просматривать внесённые изменения. Разработчики которые очень хорошо разбираются в SQL всё равно предпочитают его использовать так как он позволяет очень быстро и наглядно выполнять операции например с привилегиями - они выполняются не часто, поэтому редко кто понит полностью ньюансы GRANT, тоже относится и к ALTER и различной статистической информации. А вообще операций которые вы можете выполнить из PHP-кода, не прибегая к услугам phpMyAdmin нет, так как он сам написан на PHP.

   
 
 автор: codexomega   (09.10.2005 в 15:29)   письмо автору
 
   для: 10100100   (09.10.2005 в 14:47)
 

phpMyAdmin упрощает вам жизнь. Это визуальный редактор Баз Данных.
Вместо того чтобы печатать в блокноте вручную, вам предоставлен удобный, пользовательский интерфейс. Там все ясно и понятно. Например хотите вы создать новую Базу Данных, вводите ее название, выбираете настройки и все делают за вас. Надо создать таблицу или изменить данные - тоже самое.
Кроме этого программка может создавать Базы Данных и таблицы из загружаемого файла с расширением .sql Что и является вашим следующим этапом.

   
 
 автор: 10100100   (09.10.2005 в 17:07)   письмо автору
 
   для: codexomega   (09.10.2005 в 15:29)
 

ну это то я понял, и всё чтоли? так мне проще в блокноте печатать :))

   
 
 автор: napTu3aH   (09.10.2005 в 17:43)   письмо автору
 
   для: 10100100   (09.10.2005 в 17:07)
 

Так, а вы в блокноте и печатайте. Быстрее выучите синтаксис SQL. А в phpMyAdmin можете только проверять ваши запросы на правильность :-))

   
 
 автор: 10100100   (09.10.2005 в 18:14)   письмо автору
 
   для: napTu3aH   (09.10.2005 в 17:43)
 

вот можно по подробнее, что значит проверять? как это делается?

   
 
 автор: napTu3aH   (09.10.2005 в 18:45)   письмо автору
 
   для: 10100100   (09.10.2005 в 18:14)
 

Прикрепляю скрин с phpMyAdmin.:-)) Выбераете закладку обведенную красным цветом. Из блокнота копируете запрос в поле обозначенное стрелкой. Если запрос верен, на обновленной странице появятся его результаты. Если нет - сообщение об ошибке.

   
 
 автор: cheops   (09.10.2005 в 21:53)   письмо автору
 
   для: 10100100   (09.10.2005 в 14:47)
 

1) Заходите в phpMyAdmin
2) В поле "Создать новую БД" пишите имя базы и нажимайте кнопку "Создать"
3) В левом окошке в выпадающем списке выбирете только что созданную базу данных
4) Выберете пункт меню "SQL"
5) Поместите в текстовое окно ваш запрос на создание таблицы, который вы привели в первом посте и нажмите кнопку "Пошёл"
6) Слева должна появится таблица - выберите её
7) Нажмите пункт меню "Вставить" - добавьте таким образом несколько записей в таблицу.

Этим вы создадите базу данных, таблицу в базе данных и несколько записей в таблице, теперь можно переходить к обращению к базе данных из PHP.

   
 
 автор: 10100100   (10.10.2005 в 09:26)   письмо автору
 
   для: cheops   (09.10.2005 в 21:53)
 

1)при нажатии на "Вставить" мне выдаётся две одинаковых таблицы, но под одной из них написано "игнорировать" и чекбокс... почему таблицы две? их заполнять обе?

2) напротив каждой клетки таблицы есть один выпадающий список, надо ли там чтолибо выставлять в частности пароль, time и last_time?

   
 
 автор: cheops   (10.10.2005 в 14:55)   письмо автору
 
   для: 10100100   (10.10.2005 в 09:26)
 

1) Чтобы удобнее было забивать сразу данные - если не снимать флажок "игнорировать" - вторая строка не добавится. Для time и last_time выберите функцию NOW() - для других ничего не надо выбирать

   
 
 автор: 10100100   (10.10.2005 в 14:19)   письмо автору
 
   для: cheops   (09.10.2005 в 21:53)
 

а где сохраняются все эти данные? в самом файле message.sql али где?

   
 
 автор: cheops   (10.10.2005 в 15:00)   письмо автору
 
   для: 10100100   (10.10.2005 в 14:19)
 

Откройте директорию C:/mysql/data - видете директории - это базы данных - если создадите здесь директорию, то в MySQL появится новая база данных. Теперь найдите C:/mysql/data/имя_вашей_базы_данных/ - внутри будет как минимум три файла
user.frm
user.MYD
user.MYI

Вот в этих-то файлах и хранится таблица user - к ней и будет обращатся ваш PHP-скрипт через СУБД. Файл message.sql предназначен для транспортировки базы данных с одного сервера на другой.

   
 
 автор: 10100100   (10.10.2005 в 15:22)   письмо автору
 
   для: cheops   (10.10.2005 в 15:00)
 

у меня нет Мускула как отдельного сервера, у меня просто Денвер2 стоит... так что файлы я не нашёл... ну в общем с добавлением в таблицу через phpMyAdmin я понял ,а как организовать запись и чтение этой инфы через скрипт php, вот особенно занесение меня интересует, ну и насколько безопасно будет хранить пароли в базе?

   
 
 автор: napTu3aH   (10.10.2005 в 16:04)   письмо автору
 
   для: 10100100   (10.10.2005 в 15:22)
 

Для "Денвера" характерна следующая структура файлов

Папка куда установлен денвер\usr\local\mysql4\data\название вашей БД


Для занесения в БД через php можно ипользовать следующий код

<?
#Задаете в переменную ваш запрос к БД, который вы перед этим написали в блокноте и 
#проверили в phpMyAdmin :-)))
$sql="SELECT * FROM table";
#Отправляем запрос к БД 
$result=mysql_query($sql);
#Теперь у вас в переменной $result массив с результатом выполнения запроса
#Для разбора этого массива есть несколько способов один из них
$r=mysql_fetch_array($result);

>насколько безопасно будет хранить пароли в базе?
Безопасно для чего?

   
 
 автор: 10100100   (10.10.2005 в 17:09)   письмо автору
 
   для: napTu3aH   (10.10.2005 в 16:04)
 

ну, на сколько просто будет забрать пароли с сайта? в смысле можно ли будет скачать весь сайт с инета например Телепортом и открыть папку с паролями?

а по поводу занесения файлов, можете подсказать мне формочку али ещё чаго, тоесть формочку то я и сам сделать могу, но вот дальше...

   
 
 автор: Loki   (10.10.2005 в 17:52)   письмо автору
 
   для: 10100100   (10.10.2005 в 17:09)
 

При правильно настроенном сервере - невозможно. Клиент видит не файлы, к которым обращается, а результат обработки их сервером.

   
 
 автор: napTu3aH   (10.10.2005 в 19:37)   письмо автору
 
   для: 10100100   (10.10.2005 в 17:09)
 

Если вам нужен пример вы можете взять в этом скрипте будет довольно просто для начининающего разобраться что к чему, и узнать некоторые функции работы php+mysql
http://www.softtime.ru/info/gbmysql.phpГостевая книга

   
 
 автор: cheops   (10.10.2005 в 21:27)   письмо автору
 
   для: 10100100   (10.10.2005 в 17:09)
 

Через Web-сервер это сделать нельзя.

   
 
 автор: 10100100   (11.10.2005 в 09:20)   письмо автору
 
   для: cheops   (10.10.2005 в 21:27)
 

понял, спасибо...

Партизан - спасибо, сегодня буду разбирать...

   
 
 автор: cheops   (10.10.2005 в 21:33)   письмо автору
 
   для: 10100100   (10.10.2005 в 15:22)
 

Для добавления новой записи следует выполнить оператор INSERT
<?php 
  
// Устанавливаем соединение с базой данных 
  
include "config.php"
  
// Формируем SQL-запрос 
  
$query "INSERT INTO user VALUES (NULL,'name','pass','me@somewhere.ru','http://www.softtime.ru','обо мне','',NOW(),NOW())"
  
// Выполняем SQL-запрос 
  
if(!mysql_query($query))
  {
    
// Проверяем не возвращает ли MySQL ошибки 
    
exit("Ошибка - ".mysql_error()); 
  }
?> 

Для вывода данных следует воспользоваться скриптом
<?php 
  
// Устанавливаем соединение с базой данных 
  
include "config.php"
  
// Формируем SQL-запрос 
  
$query "SELECT * FROM user WHERE id = 2"
  
// Выполняем SQL-запрос 
  
$usr mysql_query($query); 
  
// Проверяем не возвращает ли MySQL ошибки 
  
if(!$usr) exit("Ошибка - ".mysql_error()); 
  
// Преобразуем ответ MySQL в ассоциативный массив $user 
  
$user mysql_fetch_array($usr); 
  
// Выводим содержимое строки 
  
echo "Имя "$user['name']."<br>" 
  
echo "Пароль "$user['pass']."<br>" 
?>

Для установки соединения с базой данных используется файл config.php, посмотреть содержимое которого можно в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3803

   
 
 автор: 10100100   (11.10.2005 в 09:28)   письмо автору
 
   для: cheops   (10.10.2005 в 21:33)
 


<?php 
  
// Устанавливаем соединение с базой данных 
  
include "config.php"
  
// Формируем SQL-запрос 
  
$query "INSERT INTO user VALUES (
NULL,'name','pass','me@somewhere.ru','http://www.softtime.ru','обо мне','',NOW(),NOW())"

  
// Выполняем SQL-запрос 
  
if(!mysql_query($query)) 
  { 
    
// Проверяем не возвращает ли MySQL ошибки 
    
exit("Ошибка - ".mysql_error()); 
  } 

Я не понял.. это что ? NULL,'name','pass','me@somewhere.ru','http://www.softtime.ru','обо мне','',NOW(),NOW())"; точнее разве поля должны быть уже заполнены??? там вроде бы ж должны быть переменные типа $blablabla ? разве не так?
относительно времени регистрации и времени последнего посещения... как их можно вычеслить?

   
 
 автор: cheops   (11.10.2005 в 15:07)   письмо автору
 
   для: 10100100   (11.10.2005 в 09:28)
 

>а как организовать запись и чтение этой инфы через скрипт php,
Это запись - конечно, вместо полей вы должны подставить значения из HTML-формы или ещё от куда-то, которые будут в ваших переменных.

   
 
 автор: 10100100   (11.10.2005 в 18:07)   письмо автору
 
   для: cheops   (11.10.2005 в 15:07)
 

во, теперь понятно, а вот относительно NULL там тоже переменную подставлять?

   
 
 автор: cheops   (11.10.2005 в 23:43)   письмо автору
 
   для: 10100100   (11.10.2005 в 18:07)
 

Нет NULL оставляйте как есть, дело в том, что первое поле имеет атрибут AUTO_INCREMENT - поэтому оно само будет генерировать уникальное значение равное максимальному значению столбца плюс единица.

   
 
 автор: 10100100   (12.10.2005 в 11:22)   письмо автору
 
   для: cheops   (11.10.2005 в 23:43)
 

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

   
 
 автор: 10100100   (12.10.2005 в 18:44)   письмо автору
 
   для: 10100100   (09.10.2005 в 14:47)
 

господа - а что вот такая вот как означает и как её убрать?

Column count doesn't match value count at row 1

   
 
 автор: cheops   (12.10.2005 в 19:50)   письмо автору
 
   для: 10100100   (12.10.2005 в 18:44)
 

Это означает, что число полей в INSERT-запросе не совпадает с числом полей в таблице

PS Под новые вопросы, лучше заводить новые темы.

   
 
 автор: 10100100   (13.10.2005 в 08:28)   письмо автору
 
   для: cheops   (12.10.2005 в 19:50)
 

спасибо...




Хорошо - я учту!

   
Rambler's Top100
вверх

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