#php
#php
Вопрос:
Я пытаюсь включить файл для вывода во вкладку на странице. Сам файл будет отображаться просто отлично, но когда я пытаюсь добавить к нему требуемую строку запроса, он выдает ошибку «не удалось открыть поток: нет такого файла или каталога».
Я попробовал просто прямое включение и попытался установить строку запроса в качестве переменной. Вот где я сейчас нахожусь.
$listingVars = '?mls=' . $_REQUEST['mlid'] . 'amp;lid=0amp;v=agent';include("agentview.php$listingVars");
Кто-нибудь успешно это сделал?
Ответ №1:
Вы не можете включить строку запроса в include()
.
Предполагая, что это локальный скрипт, вы могли бы использовать:
$_REQUEST['mls'] = $_REQUEST['mlid'];
$_REQUEST['lid'] = 0;
$_REQUEST['v'] = 'agent';
include("agentview.php");
если это удаленный скрипт на другом сервере, не используйте include.
Комментарии:
1. Это прекрасно сработало — теперь я должен выяснить, почему это нарушает мой JS! Я приму этот ответ, когда смогу.
2. Есть ли какая-то особая причина, по которой вы должны вручную повторно запрашивать переменные запроса таким образом … или, почему вообще?
Ответ №2:
Я создал переменную на 2-й странице — и передал ей значение на первой странице — и у меня это сработало:
*Page with include: 'index.php'
<?php $type= 'simple'; include('includes/contactform.php'); ?>
*Page included: 'includes/contactform.php'
switch($type){
case 'simple':
//Do something simple
break;
default:
//Do something else
break;
}
Ответ №3:
Я немного изменяю принятый ответ, данный Фрэнком Фармером, для работы с другими запросами:
Включение дважды вызовет проблему:
$_REQUEST['mls'] = $_REQUEST['mlid'];
$_REQUEST['lid'] = 0;
$_REQUEST['v'] = 'agent';
include("agentview.php");
//changing the v to another
$_REQUEST['v'] = 'agent2';
include("agentview.php");
Для тех, кто сталкивается с этой проблемой множественного включения, вы могли бы обернуть свой код внутрь «agentview.php » в функции:
Внутри agentview.php
function abc($mls,$lid,$v){
...your original codes here...
}
файлу необходимо вызвать agentview.php
include_once("agentview.php");
abc($_REQUEST['mlid'], 0, 'agent');
abc($_REQUEST['mlid'], 0, 'agent2');
Надеюсь, это поможет кому-то столкнуться с такой же проблемой, как у меня, и спасибо Фрэнку Фармеру за отличное решение, которое сэкономило мне много времени.