Forum Webscript.Ru
Программирование => PHP => Тема начата: MXM от 13 Ноября 2003, 16:48:01
-
Ситуация: два скрипта (1-ый верхний и 2-ой нижний), размещены в html-страницу как вставки, оба работающих на 100%, проверял каждый отдельно. Но как только они оказываются вместе на одной странице, один из них (2-ой) не работает. Делаю еще вот так: полностью комментирую 1-ый, после этого 2-ой с легкостью начинает работать. Что это может быть? В чем ошибка?
-
это один скрипт а не два
-
AliMamed, он забыл указать подробности (http://phpclub.net/talk/showthread.php?threadid=42798) .
MXM, так, имхо, честнее.
-
AliMamed, может я и не прав, пусть будет один скрипт, хотя все равно: объясни почему один скрипт, ведь в моем случае у каждого скрипта своя логика. Хочу также сказать, что ошибки на экран не выскакивают.
Теперь о логике скриптов:
<<<Первый скрипт>>>, открывает файл (текстовую базу данных, далее ТБД), сверяет там между собой пару значений элементов массива, и затем выводит тот или иной файл... первый файл, скрипт, выводит на экран определенную по условию строку из ТБД; второй файл, скрипт, также по некоторому условию, выводит на экран информацию из ТБД путем функции rand.
<<<Второй скрипт>>>получает выбранную переменную из формы, при совпадении этой переменной со значением элемента массива одной из строк ТБД, выводит информацию.
Вот вроде и всё.
-
фраза "не работает" - не несет никакой информации которая помогла бы нам найти решение.
Судя по топику на ПХПклубе у тебя переменные имеют одинаковое значение и в первом и во втором скрипте. Исправь это. Либо принудительно инициализируй их и в верхней части и в нижней.
-
tserbis ,
Первый код:
$fp=fopen("text/cmax.txt","r");
$fl=0;
$i=0;
while(!feof($fp))
{$cars[$i]=fgets($fp,10000);
$pt=explode(";",$cars[$i]);
if($pt[17]==1&&$pt[14]==1) $fl=1;
$i++;}
fclose($fp);
if($fl>0) {include("l.php");}// 2-ой раз комментирую
else {include("lr.php");} // 1-ый раз комментирую
Пробывал комментировать не полностью.
Первый раз комментирую (последнюю строку), результат:
1 скрипт работает, 2-ой нет.
Второй раз комментирую (только предпоследнюю строку), результат:
бело-чистый экран, без вывода ошибок
Третий раз комментирую, обе строки, результат:
1 скрипт не работает, ошибки не пишет... 2-ой скрипт работает
-
Макс, подскажи как? я просто не могу понять где это происходит...
-
> Второй раз комментирую (только предпоследнюю строку), результат:
в этом случае будет ошибка синтаксиса.
Значит у тебя вывод ошибок отключен. Вставь в скрипт
error_reporting(E_ALL);
ini_set("display_errors", "On");
-
дело в том, что оба кода - и тот который внизу страницы и тот который вверху страницы отрабатываются на сервере последовательно, но до отдачи ответа клиенту. поэтому по сути это один скрипт.
причины поведения наверняка кроются в том - что в первом куске кода есть переменная с таким же названием как у второго. а так как "логика у них у каждого своя" наличие в этой переменной значения, присвоенного первым куском кода, не позволяет второму правильно отработать.
-
Макс
Вставил его в самое начало кода... Макс, прости, в php я новичок.
Ошибка не выскочила, в логе ничего...(((
-
что делает файл l.php ?
-
Макс:
что делает файл l.php ?
этот файл, скрипт, в цикле ищет строку в ТБД, у которой, по условию, должны совпасть определенные значения элементов массива, если такая строка найдена, то скрипт выводит её на экран в определенном html-формате.
-
AliMamed:
дело в том, что оба кода - и тот который внизу страницы и тот который вверху страницы отрабатываются на сервере последовательно, но до отдачи ответа клиенту. поэтому по сути это один скрипт.
понял...
причины поведения наверняка кроются в том - что в первом куске кода есть переменная с таким же названием как у второго. а так как "логика у них у каждого своя" наличие в этой переменной значения, присвоенного первым куском кода, не позволяет второму правильно отработать.
вот мне бы ее найти...
-
попробуй в нем строки комментировать
-
Макс:
попробуй в нем строки комментировать
где именно, в первом скрипте или во втором...
-
он в обоих скриптах используется ?
-
если небольшой файл - покажи его.
-
ВСЁ... я разобрался... Хочу, для начала, сказать спасибо всем! Но большой кусочек спасибо преподношу Макс\'у и AliMamed\'у. Итак, в чём суть, из некой формы, передовалась переменная с определенным значением, 2-му скрипту (который нижний), а как сказал:
AliMamed:
дело в том, что оба кода - и тот который внизу страницы и тот который вверху страницы отрабатываются на сервере последовательно
соответсвенно, в 1-ом скрипте, после выполнения условия, инклюдился l.php файл, в котором и содержалась индиетичная переменная с таким же названием, как и у той, которая передовалась из формы 2-му скрипту. Об этом упоменал:
AliMamed:
причины поведения наверняка кроются в том - что в первом куске кода есть переменная с таким же названием как у второго. а так как "логика у них у каждого своя" наличие в этой переменной значения, присвоенного первым куском кода, не позволяет второму правильно отработать.
Считаю, что тема закрыта, а я узнал много нового. Спасибо.