Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP: Почему нормально не работает include?

1.8K
31 мая 2004 года
Nadezda
62 / / 31.05.2004
Когда функциия вызывается в том же файле, где расположена- работает нормально. Но стоит только вынести её в отдельный файл, а потом включить этот файл с include, require и т.п., функция сразу перестаёт работать.

В чём может быть проблема? :???:
291
31 мая 2004 года
gufy
703 / / 08.01.2003
может траблы с глобальными и локальными переменными? такое бывает. вообще опиши подробно как он "не работает" а лучше запости код
1.8K
31 мая 2004 года
Nadezda
62 / / 31.05.2004
Цитата:
Originally posted by gufy
может траблы с глобальными и локальными переменными? такое бывает. вообще опиши подробно как он "не работает" а лучше запости код



Глобальных переменных не использую.

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

запускается, броузер выводит чистый экран.

К примеру:

file1.php :

Код:
<?php
 
function fnc_update($table, $id, $fields, $values){
   if (count($fields)==count($values)){
         $q="UPDATE ".$table." SET ".$fields[0]."='".$values[0]."'";
             for ($i=1; $i<count($fields); $i++){
                 $q=$q.", ".$fields[$i]."='".$values[$i]."'";
                 }//for
            $q=$q." WHERE id='".$id."'";
            $sql=mysql_query($q) or die
               ("<p class=\"error\">Error: ".mysql_error()." : ".$q."

"
);
     } else {
        print "<p class=\"error\">Error</p>";
     }
}
?>

file2.php :
Код:
<?php

include("file1.php");
//include_once("file1.php");

mysql_select_db("timesheet");

//....

if ($condition){
   fnc_update("teacher", $_POST["teacher_id"], array("login","paswd"), array($_POST["login"],md5($_POST["paswd"])));
}

?>

Пока $condition неправильно- всё работает нормально.
291
31 мая 2004 года
gufy
703 / / 08.01.2003
а если функция задекларирована в этом же файле, то все работает /без инклуда/? попробуй в конце кода функции перед последним "}" поставить return 0;
1.8K
31 мая 2004 года
Nadezda
62 / / 31.05.2004
Цитата:
Originally posted by gufy
а если функция задекларирована в этом же файле, то все работает /без инклуда/? попробуй в конце кода функции перед последним "}" поставить return 0;



Если функция определена в том же файле- всё работает.

Вставка return 0; не помогла.

291
31 мая 2004 года
gufy
703 / / 08.01.2003
проверь чтобы включаемый файл был валидным php-скриптом, т.е. в начале его стоял <?php а в конце ?>
а вообще почитай тут http://ru2.php.net/manual/ru/function.include.php
можешь, что увидишь
6.5K
31 мая 2004 года
LD100
29 / / 22.05.2004
то есть ты не понимаешь не работает инклюд или функция?
разрули постепенно
файл инклюдится, ато была бы ошибка
значин не пашет функция
напиши перед кодом функции просто

fnc_update($table, $id, $fields, $values){
echo "OK";exit;

и посмотри вызывается ли она вообще. Если вызывается смотри код если нет смотри вызов :)

fnc_update(1,2,3,4);
если опять ОК не выскочит вырубай комп, отдыхай, а потом со свежими силами ищи по новой)))
1.8K
31 мая 2004 года
Nadezda
62 / / 31.05.2004
Все manual'ы по include давно прочитала. В файле нет синтаксических ошибок.

Пробовала закоментировать содержимое функции- всё равно, когда запускается функция, перестаёт работать весь скрипт.
291
31 мая 2004 года
gufy
703 / / 08.01.2003
чудес-то не бывает:) проверила наличие открывающих/закрывающих тегов в начале и конце файла?
совет: пойди поспи,Ю завтра свежим взглядом найдешь ляп:))
6.5K
31 мая 2004 года
LD100
29 / / 22.05.2004
Цитата:
Originally posted by Nadezda

Пробовала закоментировать содержимое функции- всё равно, когда запускается функция, перестаёт работать весь скрипт.


мистика :)
попробуй развести массив и запрос
то есть не передвай array() прямо в вызове функции
а сначала создай $x = array() а потом уже fnc_update($x)
если понимаешь о чем я... думаю ошибка там(в вызове)
разделяй и влавствуй :)

85K
16 сентября 2012 года
calvinx
1 / / 16.09.2012
всё верно, LD 100.
Вот такой код:

 
Код:
<?php
$db_name = 'testing';
$db_user = 'user1';
$db_pass = 'passwd2';
$db_loc = 'localhost';
mysql_connect ($db_loc, $db_user, $db_pass);
?>
я столкнулся с проблемой. В логах сервера увидел вот это:

 
Код:
PHP Fatal error:  Call to undefined function mysql_connect() in /usr/www/smthg/html/config.php on line 6
в браузере вывод ошибок выключен.

Исправленная версия:

 
Код:
<?php
$db_name = 'testing';
$db_user = 'user1';
$db_pass = 'passwd2';
$db_loc = 'localhost';
$connect = array(mysql_connect);
mysql_connect ($db_loc, $db_user, $db_pass);
?>
необходимо было сначала определить переменную, что бы вывести массив.
Проблем то ли в настройках php то ли в версии php

или правильно оформить unclude

include ( 'config.php');

include 'config.php';
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог