[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: include не работает
Отторжение
Вообщем, решил привести в порядок проект. HTML форма, куски php кода. И тут вышла проблема с инклудом. Есть файл main.php, в нём функции подключения к БД и пр.

main.php
<?php
/*define("dblocation","127.0.0.1",TRUE);
define("dbpassword","s6evjfgy",TRUE);
define("dbname","blacklist",TRUE);
define("dbuser","root",TRUE);*/


$dblocation = "127.0.0.1";
$dbname = "blacklist";
$dbuser = "root";
$dbpassword = "s6evjfgy";

//Подключение к базе
function ConnectToDB()
{
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpassword) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
}
...
?>


index.php
<?php
include ("main.php");
connectToDB();
?>

Ну и дальше HTML код.



Но мне постоянно выдаёт ошибку: Access denied for user 'www-data'@'localhost' (using password: NO)
Хотя логин, пароль - 100% верный, даже скопирован из другого файла для надёжности.

В чём загвоздка?(



Спустя 16 минут, 38 секунд (24.10.2010 - 00:22) Romms написал(а):

Спустя 21 минута, 58 секунд (24.10.2010 - 00:44) Отторжение написал(а):
Права и пользователя выставил - не помогло.
Просто ведь раньше работало, когда всё было в одном файле, а с инклудом не хочет %)

Спустя 16 минут, 20 секунд (24.10.2010 - 01:00) inpost написал(а):
А ты этот код скопируй в index вместо инклюда и проверь. Скорее всего где-то в символе ошибся.
Так же меня смутило, что функции по разному называются, они ведь зависимы от регистра.

Спустя 8 минут, 9 секунд (24.10.2010 - 01:08) Отторжение написал(а):
Ну скопировал, тоже самое %)

Спустя 7 минут, 4 секунды (24.10.2010 - 01:15) inpost написал(а):
Ой я туплю... =)))
Смотри, функция полностью независимая, она не берёт переменные из-вне, и не возвращает значения обратно! Единственный способ передать параметры в функцию - это писать так:

function connectToDB($dblocation,$dbuser,$dbpassword)
{
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpassword) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
}

connectToDB($dblocation,$dbuser,$dbpassword);



Собственно я показал, как передавать переменные в функцию. Записал их 3, но используется 4, добавишь последнюю сам. - в образовательных целях

Спустя 3 минуты, 52 секунды (24.10.2010 - 01:19) Отторжение написал(а):
inpost да дело в том, что я убрал параметры из функции уже после того как отписался на форуме. полнейшее трололо %)

Спустя 2 минуты, 21 секунда (24.10.2010 - 01:21) inpost написал(а):
Отторжение
Всё? Проблем больше нет?!

Спустя 9 минут, 3 секунды (24.10.2010 - 01:30) Отторжение написал(а):
Проблемы те же =) С параметрами функция или без, меня не пускает mysql.
Попробую перегрузится.

Спустя 56 минут, 36 секунд (24.10.2010 - 02:27) kirik написал(а):
Цитата (Отторжение @ 23.10.2010 - 17:30)
Проблемы те же =) С параметрами функция или без, меня не пускает mysql.

У тебя же в конфиге $dbuser = "root";, а в ошибке "Access denied for user 'www-data'@'localhost' (using password: NO)" значит в функцию данные конфига не проходят. Покажи еще раз код обоих файлов (где в функцию передаются параметры).

Спустя 10 минут, 14 секунд (24.10.2010 - 02:37) Отторжение написал(а):
kirik, я убрал параметры в функции.

Вообщем, файл с объявленными функциями:


<?
$dblocation = "127.0.0.1";
$dbname = "blacklist";
$dbuser = "root";
$dbpassword = "s6evjfgy";

//Подключение к базе
function ConnectToDB()
{
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpassword) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
}
?>


Файл в котором используются функции:

<?php
include ("main.php");

ConnectToDB();
$num_inlist = 20;
$auth = false;
?>

Спустя 6 минут, 36 секунд (24.10.2010 - 02:44) Self написал(а):
function ConnectToDB($dblocation="127.0.0.1", $dbuser="root", $dbpassword="s6evjfgy", $dbname="blacklist")
{
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpassword) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
}

Спустя 5 минут, 46 секунд (24.10.2010 - 02:50) kirik написал(а):
Цитата (Отторжение @ 23.10.2010 - 18:37)
я убрал параметры в функции.

А как они тогда должны в функцию попадать? Почитай тут.
Нужно вызывать так как inpost написал.
Еще для теста допиши в начало функции:
echo var_dump($dblocation,$dbuser,$dbpassword);

Должен вывести че-нить..


PS. и да, в функции тож параметры указать надо

Спустя 2 минуты, 25 секунд (24.10.2010 - 02:52) kirik написал(а):
Кароч, в сумме должно получиться так:
//Подключение к базе
function ConnectToDB($dblocation,$dbuser,$dbpassword,$dbname)
{
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpassword) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
}

и
ConnectToDB($dblocation,$dbuser,$dbpassword,$dbname);

Спустя 11 минут, 48 секунд (24.10.2010 - 03:04) Отторжение написал(а):
Вообщем, вприсал вручную в функцию mysql_connect адрес, пароль и т.п. - завелось, а через переменные не хочет.

Спустя 2 минуты, 22 секунды (24.10.2010 - 03:06) Отторжение написал(а):
Цитата (kirik @ 23.10.2010 - 23:50)
Цитата (Отторжение @ 23.10.2010 - 18:37)
я убрал параметры в функции.

А как они тогда должны в функцию попадать?



Да не надо мне переменных в параметрах. В функцию будут попадать из того же main.php где содержаться переменные с логином,паролем, адресом БД и т.п.

Спустя 9 минут, 55 секунд (24.10.2010 - 03:16) kirik написал(а):
Цитата (Отторжение @ 23.10.2010 - 19:06)
В функцию будут попадать из того же main.php где содержаться переменные с логином,паролем, адресом БД и т.п.

Ты прочитал что я дал?

Спустя 10 часов, 27 минут, 52 секунды (24.10.2010 - 13:44) inpost написал(а):
Отторжение
Покажи последний код, где не работал, но с правильно использованной функцией!!!

Спустя 2 часа, 35 минут, 39 секунд (24.10.2010 - 16:20) Отторжение написал(а):
kirik да вот прочитал, теперь понятно, спасибо.


inpost
этот не работал, переменные не поступали к функции %)

function ConnectToDB($dblocation,$dbuser,$dbpassword,$dbname)
{
$dbconnect = mysql_connect($dblocation,$dbuser,$dbpassword) or die(mysql_error());
mysql_select_db($dbname,$dbconnect) or die(mysql_error());
}


Теперь функции с параметром я не могу передать то что в $_GET[''];
$remove = $_GET['id_remove'];
DeleteByID($remove);(или просто DeleteByID($_GET['id_remove'])wink.gif



function DeleteByID($currentID)
{
if(isset($currenID))
mysql_query("DELETE FROM `badlist` WHERE `id` = '".mysql_real_escape_string($currentID)."'") or die(mysql_error());
else
echo "ID пуст";
}


Мне возвращает: ID пуст %)

Спустя 6 минут, 3 секунды (24.10.2010 - 16:26) inpost написал(а):
Отторжение
Тебя не смущает, что приходит переменная и назначается имя currentID, а проверяешь ты currenID??

Я по поводу твоего второго.

Спустя 3 минуты, 24 секунды (24.10.2010 - 16:29) Отторжение написал(а):
Да ё-маё, слепые глаза, заработало, спасибо.

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

//Фильтр поиска по нику/клану
function SetFilter($filter_type,$text)
{
if(($filter_type == 'bylogin') && !empty($text))
$filter = "WHERE `nickname` = '".mysql_real_escape_string($text)."'";
else
$filter = '';
if(($filter_type == 'byclan') && !empty($text))
$filter = "WHERE `clan` = '".mysql_real_escape_string($text)."'";
else
$filter = '';
return $filter;
}


$filter = SetFilter($_GET['changefilter'],$_GET['name']);


Вообщем, если $filter_type = "bylogin" то поиск не происходит совсем.


Всё, разобрался, натупил с условиями =/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.