PHP: Почему нормально не работает include?
В чём может быть проблема? :???:
может траблы с глобальными и локальными переменными? такое бывает. вообще опиши подробно как он "не работает" а лучше запости код
Цитата:
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>";
}
}
?>
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"])));
}
?>
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 неправильно- всё работает нормально.
а если функция задекларирована в этом же файле, то все работает /без инклуда/? попробуй в конце кода функции перед последним "}" поставить return 0;
Цитата:
Originally posted by gufy
а если функция задекларирована в этом же файле, то все работает /без инклуда/? попробуй в конце кода функции перед последним "}" поставить return 0;
а если функция задекларирована в этом же файле, то все работает /без инклуда/? попробуй в конце кода функции перед последним "}" поставить return 0;
Если функция определена в том же файле- всё работает.
Вставка return 0; не помогла.
проверь чтобы включаемый файл был валидным php-скриптом, т.е. в начале его стоял <?php а в конце ?>
разрули постепенно
файл инклюдится, ато была бы ошибка
значин не пашет функция
напиши перед кодом функции просто
fnc_update($table, $id, $fields, $values){
echo "OK";exit;
и посмотри вызывается ли она вообще. Если вызывается смотри код если нет смотри вызов :)
fnc_update(1,2,3,4);
если опять ОК не выскочит вырубай комп, отдыхай, а потом со свежими силами ищи по новой)))
Пробовала закоментировать содержимое функции- всё равно, когда запускается функция, перестаёт работать весь скрипт.
совет: пойди поспи,Ю завтра свежим взглядом найдешь ляп:))
Цитата:
Originally posted by Nadezda
Пробовала закоментировать содержимое функции- всё равно, когда запускается функция, перестаёт работать весь скрипт.
Пробовала закоментировать содержимое функции- всё равно, когда запускается функция, перестаёт работать весь скрипт.
мистика :)
попробуй развести массив и запрос
то есть не передвай array() прямо в вызове функции
а сначала создай $x = array() а потом уже fnc_update($x)
если понимаешь о чем я... думаю ошибка там(в вызове)
разделяй и влавствуй :)
Вот такой код:
Код:
<?php
$db_name = 'testing';
$db_user = 'user1';
$db_pass = 'passwd2';
$db_loc = 'localhost';
mysql_connect ($db_loc, $db_user, $db_pass);
?>
$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);
?>
$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';