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

Форум PHP

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

 

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

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

тема: Не работает include
 
 автор: tonechka   (25.01.2011 в 01:37)   письмо автору
 
 

проблема такая:
есть файл connect1.php, где происходит подключение к одной базе, и файл connect2.php, где, соответственно, подключаюсь к другой базе.
есть файл (пусть function.php), в нем функция. В этой функции, сначала подключаю файл connect1.php, работаю с базой(выбираю оттуда данные), потом закрываю соединение и подключаю второй файл, чтобы работать с другой базой(нужно вставить туда данные). При этом, на подключение второго файла никакой реакции, ничего абсолютно не происходит... В чем может быть ошибка?

  Ответить  
 
 автор: neadekvat   (25.01.2011 в 01:43)   письмо автору
 
   для: tonechka   (25.01.2011 в 01:37)
 

Вам все-таки придется показать код..

  Ответить  
 
 автор: tonechka   (25.01.2011 в 11:42)   письмо автору
 
   для: neadekvat   (25.01.2011 в 01:43)
 

файл connect1.php

<?php
function connect_bd($host$user$base$pass)
         {
            
var_dump($dbconnect=mysql_connect($host,$user,$pass));
            if (!
$dbconnect)
            {
                echo 
"Проверьте правильность ввода логина и/или пароля и повторите попытку !";
                exit();
            }

            if (!@
mysql_select_db($base,$dbconnect))
            {
                echo 
"Проверьте правильность имени базы данных!";
                exit();
        
            }
        
        return 
$dbconnect;
        }
?>


файл connect2.php

<?php

include_once('../config.php');
error_reporting('E_ALL');

echo 
$dbhost=$CFG->dbhost;

echo 
$dbuser=$CFG->dbuser;

echo 
$dbname=$CFG->dbname;

echo 
$dbpass=$CFG->dbpass;


$connectmooodle=@mysql_connect($dbhost,$dbuser,$dbpass);

if (!
$connectmooodle)
{
echo 
"Подключится к серверу не удалось!";
exit();
}
else {echo 
" ";}
if (!@
mysql_select_db($dbname,$connectmooodle))//выбираем базу данных
{
echo 
"Подключиться к базе данных не удалось!";
exit();
}

?>

  Ответить  
 
 автор: Trianon   (25.01.2011 в 12:01)   письмо автору
 
   для: tonechka   (25.01.2011 в 11:42)
 

1. Файл connect2.php при успешном соединении нничего писать не должен. Нет ни одного echo после успешного подключения.
2. в этом файле имеется вызов другого файла - ../config.php - без него логика работы неясна хотя бы потому, что отсутствует определение переменной $CFG.
3. символы @ перед операторами, говорят о том, что автор кода полностью контролирует ситуацию.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:04)   письмо автору
 
   для: Trianon   (25.01.2011 в 12:01)
 

1.в файле config.php прописываются параметры(логин, пароль, имя хоста, имя базы и т.д.). Я этот файл не создавала.
2.Даже если я убираю подавление ошибок, ничего не меняется!
3. И если я пишу сообщение, что успешно подключились, опять же ничего не отображается!!!

  Ответить  
 
 автор: Trianon   (25.01.2011 в 12:17)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:04)
 

1.Какая разница, кто его создавал? Пользуетесь-то им Вы, значит и отвечаете за него Вы.
Если бы Вы показали, что в переменной $CFG наличествует всё необходимое, вопросов бы не было.
3. вот как раз кода вывода этого сообщения мы и не видим.

Проблема в том, что Вы приводите какие-то частные кусочки кода, априори полагая , что в остальном коде всё хорошо, и что все куски корректно скоординированы между собой.
А это, вероятно, совсем не так.
И выяснить проблему, гадая по этим кусочкам, трудно и немотивированно. В том смысле, что мне например неясно, зачем меня заставляют догадываться об остальном, а не предоставят весь минимум кода, который не хочет работать.

Dixi.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:21)   письмо автору
 
   для: Trianon   (25.01.2011 в 12:17)
 

Да есть все в этой переменной, я же говорю, что если я тоже самое делаю не в теле функции, то все нормально работает... Значит косяк не в переменной, а в этой функции какой-то, не так разве???
Но если вам так нужна эта переменная пожалуйста:

unset($CFG);

$CFG = new stdClass();
$CFG->dbtype    = 'mysql';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'moodlle';
$CFG->dbuser    = 'moodlle';
$CFG->dbpass    = '1111';
$CFG->dbpersist =  false;
$CFG->prefix    = 'mdl_';

  Ответить  
 
 автор: Trianon   (25.01.2011 в 12:25)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:21)
 

>Значит косяк не в переменной, а в этой функции какой-то, не так разве???

Не так.
ни одна переменная, ни одна функция не существует вне контекста выполнения.
Контекст Вы взяли и поменяли. Теперь удивляетесь, что всё развалилось.

>Но если вам так нужна эта переменная пожалуйста:
мне не нужна.
Лично мне пытаться выцарапать из-под Вас ясную картину с кодом надоело.
Может кто другой поможет.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:27)   письмо автору
 
   для: Trianon   (25.01.2011 в 12:25)
 

И что я поменяла? И что с кодом то непонятно? Я выложила весь код, который есть!!!!

  Ответить  
 
 автор: Trianon   (25.01.2011 в 12:31)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:27)
 

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

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:35)   письмо автору
 
   для: Trianon   (25.01.2011 в 12:31)
 

Да е-мое!!!!!
<?php

include_once('../config.php');
error_reporting('E_ALL');

$dbhost=$CFG->dbhost;

 
$dbuser=$CFG->dbuser;
$dbname=$CFG->dbname;

$dbpass=$CFG->dbpass;


$connectmooodle=@mysql_connect($dbhost,$dbuser,$dbpass);

if (!
$connectmooodle)
{
echo 
"Подключится к серверу не удалось!";
exit();
}
else {echo 
"Ура! видите, Trianon!!! Я подключилась! ";}
if (!@
mysql_select_db($dbname,$connectmooodle))//выбираем базу данных
{
echo 
"Подключиться к базе данных не удалось!";
exit();
}
else {echo 
"Ура! видите, Trianon!!! Я соединилась с базой!!!! ";}

?>

  Ответить  
 
 автор: Trianon   (25.01.2011 в 12:37)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:35)
 

Е-мое Вы модератору орать будете.
Он такие крики любит, и реагировать на них умеет.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:39)   письмо автору
 
   для: Trianon   (25.01.2011 в 12:37)
 

Я не ору, если что! Просто откуда у вас такое предвзятое отношение ко мне!!! Я не говорю, что я профессионал, я только учусь. А вы сразу начинает попрекать этим...

  Ответить  
 
 автор: Trianon   (25.01.2011 в 12:52)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:39)
 

берем этот файл и меняем его так:
<?php

 
echo "Шаг 1. Загрузка конфигурации <br>\r\n";
include_once(
'../config.php');
error_reporting('E_ALL');

$dbhost=$CFG->dbhost;

 
$dbuser=$CFG->dbuser;
$dbname=$CFG->dbname;

$dbpass=$CFG->dbpass;

 echo 
"Шаг 2. Проверка $dbhost $dbuser $dbname <br>\r\n";

$connectmooodle=@mysql_connect($dbhost,$dbuser,$dbpass);

 echo 
"Шаг 3. Подключение $connectmooodle <br>\r\n";

if (!
$connectmooodle)
{
echo 
"Подключится к серверу не удалось, потому что:"mysql_error();
exit();
}

echo 
"Шаг 4. Подключение прошло успешно ($connectmooodle) <br>\r\n";

if (!@
mysql_select_db($dbname,$connectmooodle))//выбираем базу данных
{
echo 
"Подключиться к базе данных не удалось, потому что:"mysql_error();
exit();
}

echo 
"Шаг 5. Выбор базы прошел успешно <br>\r\n";

$sql "SELECT VERSION()";
$res mysql_query($sql$connectmooodle); //выполняем запрос
if(!$res)
{
echo 
"Запрос не выполняется, потому что:"mysql_error();
exit();
}
echo 
"Шаг 6. Запрос версии выполнен. Ответ: " .mysql_result($res00);

?> 



PS1. Еще явно не хватает запроса настройки кодовой страницы. (SET NAMES ...)
PS2. Если я вижу фразу после которой стоит два восклицательных знака, то читаю её как крик.
Так меня в школе учили.

PS3. про свистопляску с именами файлов лучше промолчу. Я как-то не готов такие слова женщинам говорить. Опять же школа-с.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:59)   письмо автору
 
   для: Trianon   (25.01.2011 в 12:52)
 

Спасибо! если подключаю файл в функции, то выводит
Шаг 1. Загрузка конфигурации

если не в теле функции, то все нормально выводится:
Шаг 1. Загрузка конфигурации
Шаг 2. Проверка localhost moodlle moodlle
Шаг 3. Подключение Resource id #11
Шаг 4. Подключение прошло успешно (Resource id #11)
Шаг 5. Выбор базы прошел успешно
Шаг 6. Запрос версии выполнен. Ответ: 5.1.40-community

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:02)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:59)
 

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

Достаточно в этом include написать какой -нибудь exit() или die() по условию и назад управление уже не вернется.
Или даже @ замаскировать оператор с фатальной ошибкой - скрипт встанет молча.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 13:15)   письмо автору
 
   для: Trianon   (25.01.2011 в 13:02)
 

Ну смотрите, убрала я @, но он же мне даже никакие ошибки не выводит... Вообще ничего же....

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:17)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:15)
 

куда смотреть?
кто не выводит? ../config.php?
Я его так и не увидел.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 13:29)   письмо автору
 
   для: Trianon   (25.01.2011 в 13:17)
 

Как не увидели, я же выложила уже давно, выше

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:35)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:29)
 

и с чего я должен был догадаться, что этот текст в этом файле лежит?
Вы над ним название написали?

окей.
Строчку error_reporting(E_ALL); переместите, пожалуйста, перед строкой Шаг 1, сразу после <?php

  Ответить  
 
 автор: tonechka   (25.01.2011 в 13:38)   письмо автору
 
   для: Trianon   (25.01.2011 в 13:35)
 

Все тоже самое((((( Выводит только шаг 1 и все.

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:39)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:38)
 

не верю.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 13:41)   письмо автору
 
   для: Trianon   (25.01.2011 в 13:39)
 

Ну что ж теперь, мне врать не зачем!!! Меня уже доконал этот косяк, и выдумывать что-то нет смысла!

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:43)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:41)
 

и кстати, посмотрев более детально тред, я понял, что точного текста ../config.php Вы так и не привели.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 13:46)   письмо автору
 
   для: Trianon   (25.01.2011 в 13:43)
 

Вот, пожалуйста, ну куда ж еще детальней?
<?php  ///Configuration File 

unset($CFG);

$CFG = new stdClass();
$CFG->dbtype    'mysql';
$CFG->dbhost    'localhost';
$CFG->dbname    'moodlle';
$CFG->dbuser    'moodlle';
$CFG->dbpass    '1111';
$CFG->dbpersist =  false;
$CFG->prefix    'mdl_';

// MAKE SURE WHEN YOU EDIT THIS FILE THAT THERE ARE NO SPACES, BLANK LINES,
// RETURNS, OR ANYTHING ELSE AFTER THE TWO CHARACTERS ON THE NEXT LINE.
?>

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:47)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:46)
 

вот сюда тоже error_reporting(E_ALL); пожалуйста.

Может я совсем тупой, но я не вижу определения этого stdClass . Не вижу и всё.

  Ответить  
 
 автор: Trianon   (25.01.2011 в 13:51)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:46)
 

И еще такой вопрос.
Вот эта строка
include_once('../config.php'); 

Она у Вас написана в точности так, как здесь?
Или может быть как-то иначе?

  Ответить  
 
 автор: tonechka   (25.01.2011 в 13:53)   письмо автору
 
   для: Trianon   (25.01.2011 в 13:51)
 

Ну да, также! Я же копирую от себя - сюда! A stdClass - я так поняла это встроенный класс php...Я просто не могу понять, почему вне функции все нормально работает, а в ней- нет...

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 14:00)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:53)
 

вызов этой функции где происходит? (convert_five)

  Ответить  
 
 автор: tonechka   (25.01.2011 в 14:02)   письмо автору
 
   для: lightning.say   (25.01.2011 в 14:00)
 

Сейчас там же, где и написана функция.

convert_five('85-12', 95, 226, 2473);

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 14:17)   письмо автору
 
   для: tonechka   (25.01.2011 в 14:02)
 

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

  Ответить  
 
 автор: tonechka   (25.01.2011 в 14:22)   письмо автору
 
   для: lightning.say   (25.01.2011 в 14:17)
 

Указала, все тоже самое. Первый include нормально срабатывает, а второй нет...

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 14:28)   письмо автору
 
   для: tonechka   (25.01.2011 в 14:22)
 

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

  Ответить  
 
 автор: tonechka   (25.01.2011 в 14:44)   письмо автору
 
   для: lightning.say   (25.01.2011 в 14:28)
 

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

2. если я перед функцией пишу не include_once, а
include('configmoodlle.php');//подключаемся к мудлу
, и потом в функции
include('configmoodlle.php');//подключаемся к мудлу
(опять же при первом закомменченном), и еще в configmoodlle.php вместо include_once
include('../config.php');
, то нормально срабатывает!

3. если писать п.2, но include_once везде, то не работает.
4. и если не писать перед функцией инклюд, то тоже не работает!

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 15:54)   письмо автору
 
   для: tonechka   (25.01.2011 в 14:44)
 

мож я конечно фигню скажу, а переменные в запросе Insert Into ....

'$name','$text', '$image'

зачем в кавычки взяты, по-моему вы передаете не их значения в запрос а имена

  Ответить  
 
 автор: Trianon   (25.01.2011 в 15:57)   письмо автору
 
   для: lightning.say   (25.01.2011 в 15:54)
 

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

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:07)   письмо автору
 
   для: Trianon   (25.01.2011 в 15:57)
 

Ну так как проблему то решить.....??????

  Ответить  
 
 автор: Trianon   (25.01.2011 в 16:13)   письмо автору
 
   для: tonechka   (25.01.2011 в 16:07)
 

убрать эти файлы из функции.
Пусть работают отдельно.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:36)   письмо автору
 
   для: Trianon   (25.01.2011 в 16:13)
 

И как же тогда в самой функции соединяться с базами?

  Ответить  
 
 автор: sim5   (25.01.2011 в 16:16)   письмо автору
 
   для: tonechka   (25.01.2011 в 14:44)
 

А разницу между include_once и include знаете?

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:38)   письмо автору
 
   для: sim5   (25.01.2011 в 16:16)
 

include_once позволяет проверить, был ли файл ранее включен, и если был то не подключает его...нет разве?

  Ответить  
 
 автор: sim5   (25.01.2011 в 16:42)   письмо автору
 
   для: tonechka   (25.01.2011 в 16:38)
 

Это означает, что данный оператор подключит ваш скрипт только один раз. Чему вы тогда удивляетесь, что при include все работает?
А может вам стоит подумать о структуре? Что-то уж больно жирно:

>если я перед функцией пишу не include_once
>.....include
>и потом в функции include

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:44)   письмо автору
 
   для: sim5   (25.01.2011 в 16:42)
 

Ну так в том то и дело, если я один раз в функции подключаю файл(include или include_once), то ничего не работает...

  Ответить  
 
 автор: sim5   (25.01.2011 в 16:46)   письмо автору
 
   для: tonechka   (25.01.2011 в 16:44)
 

Вы писали ровно наоборот: если вы пишите include_once, то не работает, а если include, то все работает.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:48)   письмо автору
 
   для: sim5   (25.01.2011 в 16:46)
 

Да, но это притом, что сначала до функции подключаю!

  Ответить  
 
 автор: sim5   (25.01.2011 в 16:51)   письмо автору
 
   для: tonechka   (25.01.2011 в 16:48)
 

Надо полагать, что структура вашего кода не ахти, если вы так запутались, запутав и интерпретатор. )

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:53)   письмо автору
 
   для: sim5   (25.01.2011 в 16:51)
 

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

  Ответить  
 
 автор: sim5   (25.01.2011 в 16:59)   письмо автору
 
   для: tonechka   (25.01.2011 в 16:53)
 

А на что нужно обращать внимание при подключениях? Вот садитесь и разбирайтесть почему у вас так выходит, при первоначальном вашем варианте.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 17:03)   письмо автору
 
   для: sim5   (25.01.2011 в 16:59)
 

В смысле на что нужно обращать внимание при подключениях!!! И я уже второй день сижу!!!!

  Ответить  
 
 автор: sim5   (25.01.2011 в 17:07)   письмо автору
 
   для: tonechka   (25.01.2011 в 17:03)
 

На область видимости. Одно дело подключить в теле, другое в функции. Чудес то не бывает, бывает невнимательность, результат которой кажется чудом. Так и у вас.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 17:12)   письмо автору
 
   для: sim5   (25.01.2011 в 17:07)
 

спасибо! Как обычно, некоторые участники-"долгожители" форума , как обычно добры! Дедовщина прям какая-то.

  Ответить  
 
 автор: sim5   (25.01.2011 в 17:40)   письмо автору
 
   для: tonechka   (25.01.2011 в 17:12)
 

Ну при чем тут это. Я вообще сейчас занят другим, очень далеким от РНР, и в тему заглянул ради любопытства. Очень много написано, аж в галазах рябит. А обратил внимание именно на тот пост, по которому и написал комментарий. Во первых - удивляться не чему, да и это уже должно было вас заставить задуматься. Второе, а не много ли подключений? Вот основных два момнета, все.

Что касается, что делать, могу только сказать следующее - если бы я разбирался, то в проблемных местах просто бы проверял то, чего ожидаю, есть ли оно. В таких вещах даже элементарный echo в помощь. И 100%-но нашел бы причину.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 17:45)   письмо автору
 
   для: sim5   (25.01.2011 в 17:40)
 

Да я уже все делала, что только, и элементарным echo тоже.Уже все перепробовала, в надежде что хоть что выдаст скрипт, что хоть какое-нибудь сообщение об ошибке, ну хоть что-то от чего можно уже плясать ... Так ничего не выдает, вообще ничего...Вот это меня больше всего бесит((((

  Ответить  
 
 автор: cheops   (25.01.2011 в 17:56)   письмо автору
 
   для: tonechka   (25.01.2011 в 17:45)
 

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

PS Просто действительно сложно включиться в дискуссию в которой уже 70 постов. Многих отпугивает необходимость проработки всех этих сообщений перед ответом. Поэтому, если есть возможность заводите новые темы с новыми вопросами - будет больше конструктивных ответов.

  Ответить  
 
 автор: sim5   (25.01.2011 в 17:56)   письмо автору
 
   для: tonechka   (25.01.2011 в 17:45)
 

Значит не все проверили, как то статус сервера, например, после запроса вашего, и т.п...

  Ответить  
 
 автор: Trianon   (25.01.2011 в 14:03)   письмо автору
 
   для: tonechka   (25.01.2011 в 13:53)
 

Про stdClass готов признать, что ступил.

Почему внутри не работает? Наверное потому, что include вообще применяются внутри функций на свой страх и риск.

Кстати Ваша функция (если это тот огромный текст с перепутанными кавычками) обращается к последнему установленному соединению.
вот в этой строке.
$insert_question=mysql_query("insert into ... 2)");

И если у Вас соединений два - стоило бы указывать, к какому именно отностится запрос.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 14:06)   письмо автору
 
   для: Trianon   (25.01.2011 в 14:03)
 

< Кстати Ваша функция (если это тот огромный текст с перепутанными кавычками)

Здесь просто одну кавычку я забыла убрать,когда выкладывала!!!

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

<Почему внутри не работает? Наверное потому, что include вообще применяются внутри функций на свой страх и риск.

Ну так первый include нормально же работает.

  Ответить  
 
 автор: Гость   (26.01.2011 в 07:36)   письмо автору
 
   для: tonechka   (25.01.2011 в 14:06)
 

Вставьте перед вторым инклудом примерно такой код:


<?php
echo $inlc_path realpath(dirname(__FILE__)).'тут_то_что_вы_инклудите.расширение';


И сравните пути.

UPD: вернее не верно, пути вероятно будут верными. Теперь измените подключаемый фаил на значение из $inlc_path
UPD2: кажется промахнулся с веткой ответа

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 12:37)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:21)
 

.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:40)   письмо автору
 
   для: lightning.say   (25.01.2011 в 12:37)
 

Пыталась, все работает!!
И если я тоже самое делаю не в теле функции,но в том же файле (function.php), то все нормально работает...

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 12:47)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:40)
 

вы говорите об этом?
include_once('configmoodlle.php');//подключаемся к мудлу
а файл с таким именем существует и в нем написано то что вы писали в connect2.php? и он лежит в той же директории что и function.php?

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:51)   письмо автору
 
   для: lightning.say   (25.01.2011 в 12:47)
 

Ну конечно существует. connect2.php это и есть configmoodlle.php Просто я сначала так написала здесь. Извините, если названия вызвали неразбериху!!! connect1.php - function.php , а то что здесь названо function.php (куда подключаются два файла) - 'это на самом деле type_five.php Еще раз извините за такой каламбур

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 12:06)   письмо автору
 
   для: tonechka   (25.01.2011 в 11:42)
 

-> есть файл (пусть function.php), в нем функция.
где он есть? не видно... вы привели подключаемые файлы а саму функцию которая косячит?

  Ответить  
 
 автор: tonechka   (25.01.2011 в 12:10)   письмо автору
 
   для: lightning.say   (25.01.2011 в 12:06)
 

<?php
session_start
();
error_reporting('E_ALL');

function 
convert_five($kod$id_categ$id_course$id_mod_test)
{
$host=$_SESSION['host'];
$user=$_SESSION['user'];
$base=$_SESSION['base'];
$pass=$_SESSION['password'];

include_once(
'function.php');

    
$p=connect_bd($host$user$base,$pass");
    
$sel=mysql_fetch_array(mysql_query("select from list where kod='$kod'"));
    
$sel_image=mysql_fetch_array(mysql_query("select from file where kod='$kod'"));
    
$fname=$sel_image['fname'];//имя картинки
    
$fname=substr($fname, 0, strlen($fname)-4);
    
$content=$sel_image['fdata'];//сама картинка
    
    
$data=explode("~ ~",trim($sel['qdata']));
    
$text=iconv("cp1251","UTF-8",trim($data[0]));//вопрос
    
$answer=iconv("cp1251","UTF-8",trim($data[2]));//ответ
    
$name=iconv("cp1251","UTF-8",$sel['qtema']);
    
$balmax=$sel['balmax'];//максимальный балл
    file_put_contents("
../../moodledata/$id_course/$id_mod_test/$fname.jpg", $content);
    
$image=$id_mod_test."/".$fname;
    
$image=iconv("cp1251","UTF-8","$image");

include_once('configmoodlle.php');//подключаемся к мудлу

$insert_question=mysql_query("insert into {$prefix}question
 
(categorynamequestiontextquestiontextformatimage
defaultgradepenaltyqtypecreatedby values 
($id_categ,'$name','$text'1'$image'$balmax0.1
'shortanswer'2)");

$id_question=mysql_insert_id();


$insert_answer="insert into {$prefix}question_answers 
(questionanswerfractionvalues ($id_question
'$answer'1)";

$xxx=mysql_query($insert_answer);
$id_answers=iconv("cp1251","UTF-8",mysql_insert_id());
$insert_table_type=mysql_query("insert into {$prefix}question_shortanswer (questionanswersvalues ($id_question$id_answers)");
}


?>


Вот этот файл

  Ответить  
 
 автор: lightning.say   (25.01.2011 в 13:47)   письмо автору
 
   для: tonechka   (25.01.2011 в 12:10)
 

...

  Ответить  
 
 автор: Красная_шляпа   (27.01.2011 в 20:02)   письмо автору
 
   для: tonechka   (25.01.2011 в 11:42)
 

.

  Ответить  
 
 автор: tonechka   (27.01.2011 в 20:26)   письмо автору
 
   для: Красная_шляпа   (27.01.2011 в 20:02)
 

Что значат три точки и точка????

  Ответить  
 
 автор: Trianon   (27.01.2011 в 20:37)   письмо автору
 
   для: tonechka   (27.01.2011 в 20:26)
 

>Что значат три точки и точка????
что человек передумал.

А что значит четыре знака вопроса?

  Ответить  
 
 автор: sim5   (27.01.2011 в 20:42)   письмо автору
 
   для: tonechka   (27.01.2011 в 20:26)
 

...

  Ответить  
 
 автор: tonechka   (27.01.2011 в 20:51)   письмо автору
 
   для: sim5   (27.01.2011 в 20:42)
 

You don't have permission to access /ptools/images/morse-codes.gif on this server.

  Ответить  
 
 автор: sim5   (28.01.2011 в 06:57)   письмо автору
38.3 Кб
 
   для: tonechka   (27.01.2011 в 20:51)
 

Значит вы еще несовершеннолетняя (дедовщина она во всем). Нарушаю, но показываю -->
Приинклюдилось? :)

  Ответить  
 
 автор: tonechka   (28.01.2011 в 12:34)   письмо автору
 
   для: sim5   (28.01.2011 в 06:57)
 

Да))) то бишь, мне тут пишут S и E )))))))

  Ответить  
 
 автор: sim5   (28.01.2011 в 12:41)   письмо автору
 
   для: tonechka   (28.01.2011 в 12:34)
 

Нет, одна точка, это указание на корневой каталог, а полный перевод ребуса будет - "Зри в корень S..." ;-)

  Ответить  
 
 автор: Trianon   (28.01.2011 в 12:54)   письмо автору
 
   для: sim5   (28.01.2011 в 12:41)
 

Sim5, у меня сильное подозрение, что Вы только что с Канадчины, непосредственно со спасательной операции :)

  Ответить  
 
 автор: sim5   (28.01.2011 в 12:59)   письмо автору
 
   для: Trianon   (28.01.2011 в 12:54)
 

Нет, я только что с кухни, чай ел. :)

  Ответить  
 
 автор: Trianon   (28.01.2011 в 13:08)   письмо автору
 
   для: sim5   (28.01.2011 в 12:59)
 

чай с плантации? :)

  Ответить  
 
 автор: sim5   (28.01.2011 в 13:36)   письмо автору
 
   для: Trianon   (28.01.2011 в 13:08)
 

Нет, с заварницы.

  Ответить  
 
 автор: Trianon   (25.01.2011 в 01:44)   письмо автору
 
   для: tonechka   (25.01.2011 в 01:37)
 

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

и непонятно, какая реакция ожидается.

  Ответить  
 
 автор: tonechka   (25.01.2011 в 11:43)   письмо автору
 
   для: Trianon   (25.01.2011 в 01:44)
 

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

  Ответить  
 
 автор: Косорылый   (25.01.2011 в 15:59)   письмо автору
 
   для: tonechka   (25.01.2011 в 11:43)
 

у вас в строке
<?
$p
=connect_bd($host$user$base,$pass");

ошибка с кавычками:))

  Ответить  
 
 автор: tonechka   (25.01.2011 в 16:05)   письмо автору
 
   для: Косорылый   (25.01.2011 в 15:59)
 

Это уже часа 3 назад поняли, и это не ошибка, а просто невнимательно я сюда код вставляла!!!!!!!!!!!!!!!!!!!

  Ответить  
 
 автор: Косорылый   (25.01.2011 в 16:08)   письмо автору
 
   для: tonechka   (25.01.2011 в 16:05)
 

Про :
is_numeric( ),
intval( ) ,
mysql_real escape string( ),
magic_quotes_qpc
вы, наверно ,просто забыли или тоже невнимательность?

  Ответить  
 
 автор: neadekvat   (25.01.2011 в 18:53)   письмо автору
 
   для: Косорылый   (25.01.2011 в 16:08)
 

Из перечисленного в моем коде только один раз встречается mysql_real_escape_string() - в функции-обертке, все остальное ни разу.
Это я к тому, что не стоит приводить список функций как обязательный.

  Ответить  
 
 автор: Косорылый   (25.01.2011 в 19:28)   письмо автору
 
   для: neadekvat   (25.01.2011 в 18:53)
 

О каком вашем коде идёт речь?
Вопрос был к tonechka
Это не список функций ,а ОБЯЗАТЕЛЬНОЕ правило обработки входных данных ( конечно ,указанны не все ) для безопасной и безглючной работы .

  Ответить  
 
 автор: neadekvat   (25.01.2011 в 19:32)   письмо автору
 
   для: Косорылый   (25.01.2011 в 19:28)
 

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

  Ответить  
 
 автор: Косорылый   (25.01.2011 в 19:35)   письмо автору
 
   для: neadekvat   (25.01.2011 в 19:32)
 

Sorry ,может я что-то пропустил, но где же сам код этого движка ?

  Ответить  
 
 автор: neadekvat   (25.01.2011 в 19:47)   письмо автору
 
   для: Косорылый   (25.01.2011 в 19:35)
 

Да зачем он вам. Просто поймите, что есть альтернативы. Например, вместо intval() можно использовать (int), магические кавычки выключать на уровне сервера и на всякий случай фильтровать все входные данные, а уж о том, что без is_* можно жить даже без альтернатив (кроме отдельных ситуаций, коих у меня возникали пару штук), я молчу.

  Ответить  
 
 автор: Косорылый   (25.01.2011 в 19:51)   письмо автору
 
   для: neadekvat   (25.01.2011 в 19:47)
 

Да , дискуссия ушла в сторону от include ,пора притормозить:))))

  Ответить  
Rambler's Top100
вверх

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