ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

PHP и MySQL, ошибка конекта, которой в принципе быть не должно
  #1  
Старый 06.07.2008, 12:11
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию PHP и MySQL, ошибка конекта, которой в принципе быть не должно

Имеется файл config.php в нем содержаться параметры для соеденения с БД
PHP код:
<?php
//указываем параметры для подключения к БД
$host "localhost";
$login "root";
$password "";
$db_name "cms";
?>
также есть файл get_information.php.
PHP код:
require("config.php");

function 
get_menu()
{
    
$dbcon mysql_connect($host$login$password) or die('База данных не доступна');
    
mysql_select_db($db_name);
    
$qGetMenu 'select * from menu';
    
$rGetMenu mysql_query($qGetMenu) or die('Таблица не доступна');
     if (
mysql_num_rows($rGetMenu) != 0)
     {
         return 
$rGetMenu;
     }
     else
     {
         return 
false;
     }

В index.php есть момент когда функция get_menu() используется. В принципе как видно из примера все должно работать, а именно конект с базой. Но появляется следующая ошибка:

PHP код:
Warningmysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using passwordNOin Z:\home\cms.ru\www\get_information.php on line 6 
В строке 6 содержитсяфункция конекта с БД. Нет доступа, но с какой стати? Почему у меня появляется эта ошибка? Заранее всем благодарен.
 
Ответить с цитированием

  #2  
Старый 06.07.2008, 12:15
Аватар для Shadow_p1raT
Shadow_p1raT
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме:
2140897

Репутация: 267
Отправить сообщение для Shadow_p1raT с помощью ICQ
По умолчанию

Значаит ты неправильно указал логин/пасс.
 
Ответить с цитированием

  #3  
Старый 06.07.2008, 12:16
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Логин пасс указаны правельно.. потому что если, их ввести напрямую в функцию, то все работает.
 
Ответить с цитированием

  #4  
Старый 06.07.2008, 12:20
Аватар для FraiDex
FraiDex
Участник форума
Регистрация: 16.06.2006
Сообщений: 179
Провел на форуме:
515368

Репутация: 135
Отправить сообщение для FraiDex с помощью ICQ
По умолчанию

а ты попробуй
PHP код:
$dbcon mysql_connect($host$login$password) or die('База данных не доступна');
mysql_select_db($db_name); 
записать в файл config.php

Последний раз редактировалось FraiDex; 06.07.2008 в 12:24..
 
Ответить с цитированием

  #5  
Старый 06.07.2008, 12:25
Аватар для etc
etc
Постоянный
Регистрация: 16.02.2008
Сообщений: 724
Провел на форуме:
1025839

Репутация: 581


По умолчанию

А ты не хочешь global добавить в ф-цию? Иначе он просто их не видит
PHP код:
function get_menu() 

    global 
$host$login$password$db_name;
    
$dbcon mysql_connect($host$login$password) or die('База данных не доступна'); 
    
mysql_select_db($db_name); 
    
$qGetMenu 'select * from menu'
    
$rGetMenu mysql_query($qGetMenu) or die('Таблица не доступна'); 
     if (
mysql_num_rows($rGetMenu) != 0
     { 
         return 
$rGetMenu
     } 
     else 
     { 
         return 
false
     } 

Писать в конфиг конект к БД - ацко ппц.
 
Ответить с цитированием

  #6  
Старый 06.07.2008, 12:25
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

to FraiDex Хех, а так работает. Спс. Че то совсем мозги на бикрень, думаю больше об алгоритмической части. Но мне всеравно интересно почему не работало иначе. Так как значения переменных рекварились.

Ну вот с etc фактически одновременно отпостили.. Ок, понял спс.

Последний раз редактировалось 0x22b; 06.07.2008 в 12:27..
 
Ответить с цитированием

  #7  
Старый 06.07.2008, 12:35
Аватар для FraiDex
FraiDex
Участник форума
Регистрация: 16.06.2006
Сообщений: 179
Провел на форуме:
515368

Репутация: 135
Отправить сообщение для FraiDex с помощью ICQ
По умолчанию

потому, что функция не видет переменные $host, $login, $password, $db_name, так как они не глобальные.
как сделать их глобальными те etc написал немного выше. но лучше всего коннект прописывать в конфиге.
 
Ответить с цитированием

  #8  
Старый 06.07.2008, 12:40
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Я зделал немного по другому.. config.php переименовал в db_fns.php
и там внес некоторые изменения.
db_fns.php
PHP код:
<?php
function db_connect()
{
$host "localhost";
$login "root";
$password "";
$db_name "cms";
$dbcon mysql_pconnect($host$login$password) or die('База данных не доступна');
mysql_select_db($db_name);
}
?>
Думаю так будт лучше и удобнее. Всем огромное спасибо!
 
Ответить с цитированием

  #9  
Старый 06.07.2008, 12:44
Аватар для FraiDex
FraiDex
Участник форума
Регистрация: 16.06.2006
Сообщений: 179
Провел на форуме:
515368

Репутация: 135
Отправить сообщение для FraiDex с помощью ICQ
По умолчанию

и зачем ты всё это зафигачил в функцию??? не вижу смысла
 
Ответить с цитированием

  #10  
Старый 06.07.2008, 12:46
Аватар для 0x22b
0x22b
Участник форума
Регистрация: 01.12.2007
Сообщений: 141
Провел на форуме:
1208190

Репутация: 136
Отправить сообщение для 0x22b с помощью ICQ
По умолчанию

Цитата:
Сообщение от FraiDex  
и зачем ты всё это зафигачил в функцию??? не вижу смысла
mysql_pconnect() - откроет постоянный конект к БД, функцию db_connect вызываю всего один раз в get_menu(), а в остальных случая работаю с готовым соеденением.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31
Защищаем MySql. Шаг за шагом k00p3r Чужие Статьи 0 13.06.2005 11:18



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ