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

Форум MySQL

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

 

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

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

тема: Надоевшая авторизация.
 
 автор: Николай2357   (16.07.2008 в 12:59)   письмо автору
 
 

Здравствуйте.
Надоел уже всем вопрос авторизации, но мне некуда больше обратиться за помощью.
Взял пример отсюда:
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=42730
Со скриптом все более менее понятно, а в MySQL я полный дуб.
Создал базу, как прописано, а у меня вылезла ошибка
mysql_result(): supplied argument is not a valid MySQL result resource
Что это за зверь, и как с ним бороться? Мне бы только принцип понять этих баз, дальше разберусь...
Спасибо.

   
 
 автор: cheops   (16.07.2008 в 13:14)   письмо автору
 
   для: Николай2357   (16.07.2008 в 12:59)
 

Это связано с тем, что выполнение SQL-запроса не обрабатывается на предмет ошибок, после каждого запроса mysql_query() необходимо проверять правильность выполнения запроса
<?php
  $res 
mysql_query($query);
  if(!
$res) exit("Ошибка - ".mysql_error());
?>

   
 
 автор: Николай2357   (16.07.2008 в 13:44)   письмо автору
 
   для: cheops   (16.07.2008 в 13:14)
 

Ну то, что в базе пусто, я уже и сам догодался. Это нетрудно, просто проверил базу и все. Непонятно почему...
Там наверное должно чтото быть для сравнения. Забить руками туда чего-нибудь?
Не помогает. Что это значит:Query was empty? Что там пусто? Никак принцип понять не могу. Этот скрипт для того и нужен, чтобы в базу данные занести, а он даже не пытается, пишет, что пусто. Понятно что пусто.

   
 
 автор: Николай2357   (16.07.2008 в 14:25)   письмо автору
 
   для: Николай2357   (16.07.2008 в 13:44)
 

Подскажите что нибудь,я готов головой об стену биться!
Вот начало:
<?
mysql_connect
("localhost""users""2357"); 
mysql_select_db("testtable");
?>

С базой он соединяется, ошибки ведь нет. Что такое testtable? Другая база или что?
Я и такую сделал. Наколотил в обе записей. Почему пустой запрос? Данные из формы передаются, я проверил. Что не так тут?

   
 
 автор: Trianon   (16.07.2008 в 14:39)   письмо автору
 
   для: Николай2357   (16.07.2008 в 14:25)
 

Напишите весь текст, относящийся к. Какой смысл цедить по паре строк?
Кстати, начало Вас ничему не научило.
if(!mysql_connect("localhost", "users", "2357")) 
    exit("Connect  error " . mysql_error());
if(!mysql_select_db("testtable"))
    exit("Select database error " . mysql_error());

Если Вы не знаете, что такое testtable - ЗАЧЕМ Вы его пишете?

   
 
 автор: Николай2357   (16.07.2008 в 14:50)   письмо автору
 
   для: Trianon   (16.07.2008 в 14:39)
 

Ну я ведь написал, что взял готовый код и хочу на его основе понять принцип работы с базами. Весь код писать не стал, он уже есть на этом форуме, написал ссылку в первом почте. А насчет
>Если Вы не знаете, что такое testtable - ЗАЧЕМ Вы его пишете?
Это ведь не я написал. А там про базу "users" написано, а про "testtable" ни строчки.

   
 
 автор: Trianon   (16.07.2008 в 15:24)   письмо автору
 
   для: Николай2357   (16.07.2008 в 14:50)
 

>Это ведь не я написал. А там про базу "users" написано, а про "testtable" ни строчки.
Там написано про таблицу users, а не про базу.
Как у Вас называется база, автору скрипта неведомо.

   
 
 автор: sms-send   (16.07.2008 в 15:25)   письмо автору
 
   для: Николай2357   (16.07.2008 в 14:50)
 

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

   
 
 автор: Николай2357   (16.07.2008 в 15:47)   письмо автору
 
   для: sms-send   (16.07.2008 в 15:25)
 

Да это издевательство какое то над организмом. Пока я так ничего и не понял. Простите за тупость, но куда написать? Я во все дыры уже писал, и баз наделал гору, и таблиц. Напишите пожалуйста, если не трудно, где там что. Где пользователь, где пароль, где база, где таблица. Пользователь это что такое, то, что при создании базы писал? Имя базы такое же? Можно по порядку, я структуры понять не могу.
Спасибо.

   
 
 автор: Николай2357   (16.07.2008 в 16:01)   письмо автору
 
   для: Trianon   (16.07.2008 в 14:39)
 

Вот в книжке написано:
mysql_connect(имя хоста, имя пользователя, пароль)
mysql_select_db(имя базы данных)
Когда я базу создаю, там есть логин (я так понимаю, что имя пользователя), название базы
(тоже самое), пароль. Если я все это делаю, ничего не получается.

   
 
 автор: Trianon   (16.07.2008 в 16:45)   письмо автору
 
   для: Николай2357   (16.07.2008 в 16:01)
 

Есть сервер MySQL . Определяется он своим адресом (имя хоста, обычно localhost ) и номером порта (обычно 3306)
На сервере создаются базы данных и заводятся пользователи.
Базы данных определяются именем БД, пользователи определяются логинами (или username) Для аутентификации логинов используются пароли пользователей. Кроме того, пользователям выдаются права на доступ к серверу, к БД, к таблицам в нужном объеме.
В пределах БД пользователи могут создавать таблицы и работать с ними.

   
 
 автор: Николай2357   (16.07.2008 в 17:33)   письмо автору
 
   для: Trianon   (16.07.2008 в 16:45)
 

Спасибо за разъяснение, вроде бы получилось...

   
 
 автор: GeorgeIV   (16.07.2008 в 16:45)   письмо автору
 
   для: Николай2357   (16.07.2008 в 16:01)
 

Как базу создаешь? приведи запрос на создание

   
 
 автор: Николай2357   (16.07.2008 в 16:54)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 16:45)
 

Какой запрос? Я в phpMyAdmin ее создавал... А что, еще на создание запрос писать надо?

   
 
 автор: GeorgeIV   (16.07.2008 в 16:58)   письмо автору
 
   для: Николай2357   (16.07.2008 в 16:54)
 

ну тут просто за тебя phpMyAdmin написал запрос. Проверяй, как уже сказали, юзера и пароль.

   
 
 автор: Николай2357   (16.07.2008 в 16:09)   письмо автору
 
   для: Trianon   (16.07.2008 в 14:39)
 

>Кстати, начало Вас ничему не научило.


Скажите, а что это дает? Oшибки и так выводятся, может не все?

   
 
 автор: BinLaden   (16.07.2008 в 16:36)   письмо автору
 
   для: Николай2357   (16.07.2008 в 16:09)
 

> Скажите, а что это дает?

Выводятся ошибки.

> Oшибки и так выводятся, может не все?

Да, не все.

P.S. Вы сначала бы попробовали, прежде чем спрашивать. А то как-то не по-людски...

   
 
 автор: Николай2357   (16.07.2008 в 16:45)   письмо автору
 
   для: BinLaden   (16.07.2008 в 16:36)
 

Зря Вы так, конечно попробовал.
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'inkz.ru'@'localhost' (using password: YES) in Z:\home\localhost\www\inkz.ru\register.php on line 7
Вот это выдается по умолчанию, а вот это
Ошибка Access denied for user 'inkz.ru'@'localhost' (using password: YES)
с Вашим вариантом. В первом случае есть строка - источник ошибки, во втором нет. Вот я и спросил, чем Ваш вариант предпочтительней.

А по существу Вам добавить конечно же нечего...

   
 
 автор: BinLaden   (16.07.2008 в 16:54)   письмо автору
 
   для: Николай2357   (16.07.2008 в 16:45)
 

Вы либо указали несуществующего пользователя, либо ввели неверный для него пароль.

   
 
 автор: Николай2357   (16.07.2008 в 17:29)   письмо автору
 
   для: BinLaden   (16.07.2008 в 16:54)
 

Слава Аллаху, с этим вроде разобрался. Теперь
...your MySQL server version for the right syntax to use near 'Resource id #3' at line 1
появилось. Скажите, это версия у меня не та или в коде ошибка?
CREATE TABLE `users` ( 
  `user_id` int(11) unsigned NOT NULL auto_increment, 
  `user_login` varchar(30) NOT NULL, 
  `user_password` varchar(32) NOT NULL, 
  `user_hash` varchar(32) NOT NULL, 
  `user_ip` int(10) unsigned NOT NULL default '0', 
  PRIMARY KEY  (`user_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 

Спасибо.

   
 
 автор: ronin   (16.07.2008 в 17:34)   письмо автору
 
   для: Николай2357   (16.07.2008 в 16:45)
 

-

   
 
 автор: Николай2357   (16.07.2008 в 17:46)   письмо автору
 
   для: ronin   (16.07.2008 в 17:34)
 

>-
Это что значит, просветите глупого...

   
 
 автор: GeorgeIV   (16.07.2008 в 17:53)   письмо автору
 
   для: Николай2357   (16.07.2008 в 17:46)
 

Это то, что на форуме нельзя удалить свое сообщение, только править :-)

   
 
 автор: Николай2357   (16.07.2008 в 18:17)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 17:53)
 

Спасибо, не знал. А по коду все таки непонятно, когда в MySQL вставлял, претензий не было, а скрипт пишет, что синтаксическая ошибка... Или это мой "вольный" перевод?

   
 
 автор: GeorgeIV   (16.07.2008 в 18:22)   письмо автору
 
   для: Николай2357   (16.07.2008 в 18:17)
 

попробуй убрать AUTO_INCREMENT=1

   
 
 автор: Николай2357   (16.07.2008 в 18:41)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 18:22)
 

Неа, не помогает. Обидно, остальное все работает.

   
 
 автор: ronin   (16.07.2008 в 19:19)   письмо автору
 
   для: Николай2357   (16.07.2008 в 18:41)
 

Я просто написал, что по умолчанию пользователь "root" а пароль "" (пробел),но смотрю, что с тем какой пароль и пользователь Вы разобрались, и стер свое сообщение:). Помойму то сообщение, что Вы приводите не про дамп инфы в базу, а про обращение к ней. Лучше привести все сообщение про ошибку и строчку кода там где $query = mysql_query("SELECT .."

   
 
 автор: Николай2357   (16.07.2008 в 19:23)   письмо автору
 
   для: Николай2357   (16.07.2008 в 18:41)
 

Все. Домучал я его. Незнаю как, одной наглостью и настырностью. Зато узнал массу нового, а главное, теперь MySQL для меня не такой темный лес.
Большое спасибо всем, кто не бросил в трудную минуту!!!

   
 
 автор: Trianon   (16.07.2008 в 13:15)   письмо автору
 
   для: Николай2357   (16.07.2008 в 12:59)
 

Принцип (и не только в БД, но и вообще в программировании) очень простой.
Нельзя запрещать вывод любых диагностических сообщений, пока Вы на 100% не уверены в том, как будет работать код.
В противном случае Вы просто будете тыкаться вслепую.

   
 
 автор: Николай2357   (16.07.2008 в 13:45)   письмо автору
 
   для: Trianon   (16.07.2008 в 13:15)
 

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

   
Rambler's Top100
вверх

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