Строка запроса URL с включением php

#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');
  

Надеюсь, это поможет кому-то столкнуться с такой же проблемой, как у меня, и спасибо Фрэнку Фармеру за отличное решение, которое сэкономило мне много времени.