nikedeforest
|
|
« Ответ #30 : 21-07-2005 22:55 » |
|
Пишу этот пост дабы мсключить взаимонепонимание. 1) мне необходимо подгружать файл используя относительный адрес, т.к. в случае использования абсолютного адреса в подключаемом файле глобальные переменные не видны (если есть по этому пункту разногласия обязательно пишите) 2)я не могу подключать файл через include() и reqiure() используя относительный адрес, т.к. я в адресе еще хочу передать переменную (выглядит примерно так include("sp_csv.php?product=special"); но это не работает, т.к. адрес должен быть абсолютным судя по мануала с php.net). (если есть по этому пункту разногласия обязательно пишите). 3)Всвязи с тем, что я не знаю других способов подключения файлов я в замешательстве. Может есть другие способы подключения, например я попробовал делать так <script language="JavaScript"> document.write("<iframe src='sp_csv.php?product=special' name='medbaza' width='150' height='170' frameborder='no' scrolling='no'></iframe>"); </script>
Значение переменной передается, ошибки не выскакиваюм, но в этом случае я не вижу глобальных переменных, т.е. способ опят таки не подходит. Я уже много что попробовал, идеи пока кончились.
|
|
« Последнее редактирование: 15-12-2007 20:26 от Алексей1153++ »
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #31 : 22-07-2005 06:01 » |
|
Прошу прощения за то что вклинюсь немного в вашу дискуссию. nikedeforest, как говорится, "нахрена козе баян ?" Что то я тебя не пойму. Запарил ты со своими инклудами. Почему бы не сделать всё по другому ? Например функциями ? Что вообще делает такого твой sp_csv.php что его необходиме инклудить множество раз (ты через пару месяцев сам в своих же инклудах заблудишся) ? Изложи нормально задачу, а мы подумаем как это проще всего реализовать. ЗЫ : Я подключаю файл, при этом передаю ему параметр вот как я делаю include ("www.что-нибудь.com/sp_csv.php?product=special"); А вот так делать вообще не рекомендую. А также всякие там fopen(" http://www.bla.bla").
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #32 : 22-07-2005 07:36 » |
|
Что вообще делает такого твой sp_csv.php что его необходиме инклудить множество раз (ты через пару месяцев сам в своих же инклудах заблудишся) ? Изложи нормально задачу, а мы подумаем как это проще всего реализовать.
Множесчтво раз он инклудиться, по той простой причине, что этот файл выводит фотографию и кратакое описание товара, плюсь ссылка "подробнее" (сами понимаете для чего). В файле происходит работа с БД типа csv. Инклудиться множество раз, по той причине, что на главной странице располагаются фотографии товаров (не всех, выборочно). Вот и все, и ничего особенного. Запарил ты со своими инклудами. Почему бы не сделать всё по другому ? Например функциями ?
Да откуда я знал, что это предоставит такие трудности. Сначала вообще был гемор с глобальными переменнными и очень долго я не мог врубиться в чем дело, как врубился, так появился другой гемор. На счет функции у меня мельтишила идея, но я ее старательно отгонял, пытаясь найти выход через инклуд (интерес такой поганый взник, к тому же, работая над этим сайтом, я пытаюсь повысить свои маленькие знания по РНР). Попробую через функцию, посмотрим. Я подключаю файл, при этом передаю ему параметр вот как я делаю Код: include ("www.что-нибудь.com/sp_csv.php?product=special"); А вот так делать вообще не рекомендую. А также всякие там fopen(" http://www.bla.bla"). Почему? Вроде это документированная возможность.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #33 : 22-07-2005 08:33 » |
|
Множесчтво раз он инклудиться, по той простой причине, что этот файл выводит фотографию и кратакое описание товара, плюсь ссылка "подробнее" (сами понимаете для чего). В файле происходит работа с БД типа csv. Инклудиться множество раз, по той причине, что на главной странице располагаются фотографии товаров (не всех, выборочно). Вот и все, и ничего особенного.
Да откуда я знал, что это предоставит такие трудности. Сначала вообще был гемор с глобальными переменнными и очень долго я не мог врубиться в чем дело, как врубился, так появился другой гемор. На счет функции у меня мельтишила идея, но я ее старательно отгонял, пытаясь найти выход через инклуд (интерес такой поганый взник, к тому же, работая над этим сайтом, я пытаюсь повысить свои маленькие знания по РНР). Попробую через функцию, посмотрим. Да тут я только функцию и вижу Почему? Вроде это документированная возможность.
Да, документированая, но админы в компании в которой я работаю, такую возможность как fopen(url) запретили. Сказали что это дыра в безопасности и открытая дорога для эксплойтов различных
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #34 : 22-07-2005 08:34 » |
|
Кстати, насчёт твоих глобальных переменных, а почему бы не хранить эти значения например в сессии ?
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #35 : 22-07-2005 11:37 » |
|
Кстати, насчёт твоих глобальных переменных, а почему бы не хранить эти значения например в сессии ?
если ты емеешь ввиду массив $_SESSION[], то я по началу там и пытался хранить, но столкнулся с тем, что не вижу переменных и перешел на $GLOBALS[], потом и с $GLOBALS я столкнулся с тем же самым, но стал уже копать в эту сторону. По поводу $_SESSION[] меня еще смутило, что как я понял из мануала если я занес туда значение в скрипте, то сразу же не могу пользоваться этими значениями, пока странмица не будет перезагружена (т.е. по сути F5 надо нажать). Я не знаю правильно я понял или нет, просвяти меня в этом вопросе. Да тут я только функцию и вижу
Ну раз другого выхода нет и раз уж я так всех здесь задолбал с этими инклудами , то буду делать через функцию, посмотрим, что получиться.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #36 : 22-07-2005 15:21 » |
|
$_SESSION - обычный суперглобальный массив - никаких шаманских штучек не предусмотрено, разве что одна: автоматическое сохранение и востановление при запуске и заершении скрипта. Не забудь в начале скрипта поставить session_start().
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
nikedeforest
|
|
« Ответ #37 : 22-07-2005 21:00 » |
|
Как правильно написать следующее print $GLOBALS['splist'][$i]."|";
Так не выводится, хотя значение там есть, проверено. зы:Ребята, подождите часов 20 (для поспать, поесть и потестировать) и я вам кажется напишу, что я недавно крупно облажался. Но пока все не проверю не напишу .
|
|
« Последнее редактирование: 15-12-2007 20:27 от Алексей1153++ »
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #38 : 23-07-2005 10:15 » |
|
Как правильно написать следующее print $GLOBALS['splist'][$i]."|";
Так не выводится, хотя значение там есть, проверено. Ты уверен что там значение еть ? Сделай так : print_r($GLOBALS); print "<hr>"; print_r($GLOBALS['splist']); //Особенно интересует что ты здесь на выводе получиш print "<hr>"; print "\$i variable is : " . $i; print "<hr>"; print $GLOBALS['splist'][$i]."|";
Тогда и станет понятно тебе (я надеюсь), в чём твоя ошибка.
|
|
« Последнее редактирование: 15-12-2007 20:28 от Алексей1153++ »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #39 : 23-07-2005 18:10 » |
|
Когда я пишу так for($i=0;$i<count($GLOBALS['splist']);$i++) { $temp=$GLOBALS['splist'][$i]; print $temp."|"; }
то выводиться то что и должно выводиться, когда делаю так for($i=0;$i<count($GLOBALS['splist']);$i++) print $GLOBALS['splist'][$i]."|";
то кроме "|" ничего не выводиться. зы: По поводу ошибки пока молчу, до тех пор, пока во всем не удостоверюсь, но кажется будет смешно. Твой способ попробую, о результате напишу
|
|
« Последнее редактирование: 15-12-2007 20:29 от Алексей1153++ »
|
Записан
|
ещё один вопрос ...
|
|
|
nikedeforest
|
|
« Ответ #40 : 26-07-2005 09:16 » |
|
По поводу ошибки, проведено исследование и вынесен (мною ) вердикт, что проблема сложившаяся здесь, была следствием совокупности ошибок (а не одной глупой, как я сначала думал). Все эти ошибки вызваны, моей неграмотнотью в РНР, о чем я дико сожалею, но этого и следовало ожидать.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #41 : 26-07-2005 11:13 » |
|
Ну вот и чудненько что разобрался А по оводу неграмотности, так это дело наживное. Самая распространённая ошибка - это элементарная НЕВНИМАТЕЛЬНОСТЬ
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #42 : 11-08-2005 14:05 » |
|
Все таки не избежать этого вопроса. Когда я пишу так include("http://www.blabla.ru");
То в итоге, в файле в котором я так сделаль я не могу обратиться нормально к переменным ("нормально"-это в смысле если бы я этот файл подключал бы используя относительный адрес). Я пробовал обратиться к переменным таким образом $GLOBALS['<имя переменной>'];
Но и так у меня ничего не вышло. Внимание вопрос : можно ли ввобще обратиться к переменным файла, который подключается с использованием абсолютной адресации. Если можно, то как? зы: предчувствую вопрос, типа : "А зачем через абсолютную?". Я бы и не загонялся, но это требование суппорта хостинга, для того, чтобы скрипт запускался автоматически по таймеру.
|
|
« Последнее редактирование: 15-12-2007 20:30 от Алексей1153++ »
|
Записан
|
ещё один вопрос ...
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #43 : 11-08-2005 19:56 » |
|
Хммм... совершенно я не понял проблемы. Отвечу на часть которую понял. Другую часть попробуй по другому формулировать. Все таки не избежать этого вопроса. Когда я пишу так include("http://www.blabla.ru");
То в итоге, в файле в котором я так сделаль я не могу обратиться нормально к переменным ("нормально"-это в смысле если бы я этот файл подключал бы используя относительный адрес). Я пробовал обратиться к переменным таким образом $GLOBALS['<имя переменной>'];
Но и так у меня ничего не вышло. А тут ты и не получаеш никакого скрипта. Если я не ошибаюь, то при попытке сделать include(" http://www.blabla.ru/bla.php"); ты инклудиш не пхп сорс файла bla.php, а вего лиш хтмл, который тебе отдаёт сервер с http://www.blabla.ru/ . Т.е. перед тем как его тебе отдать, сервер предварительно его парсит и отдаёт тебе уже результат.
|
|
« Последнее редактирование: 15-12-2007 20:31 от Алексей1153++ »
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
nikedeforest
|
|
« Ответ #44 : 12-08-2005 11:42 » |
|
Т.е. получается, что таким образом конфигурационные файлы (мои самодельные) не подключаются ввобще? Тогда даже не знаю как понять совет суппорта: "А Вы измените в инклуде относительный адрес на абсолютный, а то наш кронтаб не знает каккая дирректория является текущей". Ихние проблемы я понимаю, но что делать со своими? . Интересно, а прокатит, если использовать функцию (название не помню, что-то типа set_current_...) которая назначает текущий каталог? Хотя там по дефолту стоят вроде как нормальные значения. Ну это я уже буду думать сам, Мороз спасибо, на самую суть моего вопроса ты ответил.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
nikedeforest
|
|
« Ответ #45 : 12-08-2005 12:02 » |
|
Название функции вспомнил-set_include_path()
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #46 : 12-08-2005 12:16 » |
|
nikedeforest, ты путаешь понятия: абсолютный путь к локальному файлу и URL - это разные вещи. Абсолютный путь к файлу выглядит так: а) для винды: диск:\полный_путь\имя_файла б) для *nix: /полный_путь/имя_файла
URL - "универсальное расположение ресурса" - файлы туда могут попасть только так: а) винда: file://диск:/путь/имя б) *nix: file:///путь/имя Только в твоем случае это не нужно - тебе нужен абсолютный путь к локальному файлу.
На всякий случай: запись типа include("file.php") задает относительный путь, а include("/var/www/html/file.php") - абсолютный.
|
|
« Последнее редактирование: 12-08-2005 12:19 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
nikedeforest
|
|
« Ответ #47 : 12-08-2005 13:06 » |
|
Бррр, перевариваю. Но тогда уточню (я это уточнял у суппорта), они имеют ввиду следующее - изменить include("config.php"); на include(" http://www.blabla.ru/config.php"); Я так делал, врезультате чего терял возможность обращение к переменным объявленным в файле config.php.
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
nikedeforest
|
|
« Ответ #48 : 12-08-2005 13:17 » |
|
Кстати, суппорт щас ответил, что set_include_path() вполне может спасти ситуацию, что есть ГУД .
|
|
|
Записан
|
ещё один вопрос ...
|
|
|
|