如何在不显示php内容的情况下从包含的页面访问值

如何在不显示php内容的情况下从包含的页面访问值,php,Php,Im使用两个页面第一个页面从url获取值并显示一些内容。我在第二页中包含了第一页,但不应显示第一页,但我必须访问第一页中使用的第二页中的值。。 第一页的编码 first.php 在utl中,值作为first传递。php?Logid=7773&shiftdate=2013-01-04&shiftid=146&pshift=1&tsid=1&dctype=timebased <?php $Logid=$_GET['Logid']; $ShiftDate=$_GET['shiftdate']

Im使用两个页面第一个页面从url获取值并显示一些内容。我在第二页中包含了第一页,但不应显示第一页,但我必须访问第一页中使用的第二页中的值。。 第一页的编码

first.php
在utl中,值作为first传递。php?Logid=7773&shiftdate=2013-01-04&shiftid=146&pshift=1&tsid=1&dctype=timebased

<?php 
$Logid=$_GET['Logid'];
$ShiftDate=$_GET['shiftdate'];
$ShiftID=$_GET['shiftid'];
$PShift=$_GET['pshift'];
$TsID=$_GET['tsid'];
$DcType=$_GET['dctype'];

// below this some process is carried out


sec.php

<?php
ob_start();
include('first.php');
ob_end_clean();

echo $Logid;
echo $ShiftDate;
echo $ShiftID;
echo $PShift;
echo $TsID;
echo $DcType;
?>

该值不显示在第二页中。。 说明如何访问第二页中的值。 请帮帮我 谢谢你

移除
ob_end_clean()并查看这将解决它

ob_end_clean-清除(擦除)输出缓冲区并关闭输出缓冲

sec.php

<?php
   error_reporting(E_ALL);
   ini_set("display_errors", 1);
   include("first.php");
?>


尝试上面的代码,看看它是否返回任何错误。

在PHP中“一般”访问数据的最佳方式(除了小的、不真实的代码片段)是通过封装。您可以将这些值放入对象中。然后,您将能够在sec.php上访问它们:

first.php:

<?php
class pageData {

  public $Logid;
  public $ShiftDate;
  public $ShiftID;
  public $PShift;
  public $TsID;
  public $DcType;

  public function __construct() {
    $this->Logid = $_GET['Logid'];
    $this->ShiftDate = $_GET['shiftdate'];
    $this->ShiftID = $_GET['shiftid'];
    $this->PShift = $_GET['pshift'];
    $this->TsID = $_GET['tsid'];
    $this->DcType = $_GET['dctype'];
  }
}
$pageData = new pageData();
?>

第2.php节:

<?php
include('first.php');
echo $pageData->Logid;
// ...
echo $pageData->DcType;
?>

您试图将GET在页面中设置的值传递到第二页,对吗?不如改用会话

您可以启动并定义值,只要浏览器处于打开状态且会话仍处于活动状态,这些值就会被存储。因此:

first.php

<?php

// Starting the session 
session_start(); 

$_SESSION['Logid'] = $_GET['Logid'];
$_SESSION['ShiftDate'] = $_GET['shiftdate'];
$_SESSION['ShiftID'] = $_GET['shiftid'];
$_SESSION['PShift'] = $_GET['pshift'];
$_SESSION['TsID'] = $_GET['tsid'];
$_SESSION['DcType'] = $_GET['dctype'];

?>


sec.php

<?php

echo $_SESSION['Logid'];
echo $_SESSION['ShiftDate'];
echo $_SESSION['ShiftID'];
echo $_SESSION['PShift'];
echo $_SESSION['TsID'];
echo $_SESSION['DcType'];

?>
终止会话并销毁全局变量($\u会话)中的数据。如果您想格外小心,可以使用:

session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);
确保所有东西都被摧毁。如果你问我的话,有点过分了,但如果必要的话可以使用


希望有帮助

将first.php中的值放入会话中,并在sec.php中访问它。或者你必须遵循OOPS编程结构。你能给我一些示例编码程序吗?你为什么使用ob_uu函数?这将隐藏first.php中可能发生的任何错误,这可能会提供有用的线索。如果第一个是正确的,那么只有v可以访问第二个页面no它不工作。。第一页显示在第二页中,值不可访问。没有错误。。值不可访问。如果我删除ob_end_clean(),页面将显示这些参数是否在URL中传递?ya ya在第一个页面中传递URL,因为属性都是公共的,您只需使用例如$pageData->Logid=$newLogidExactly即可。您只需像对待任何变量一样对待
$pageData->Logid
。谢谢你,马特!其思想是,您正在使用
$pageData=new pageData()从类中创建一个对象。或者,更一般地说:
$myObject=newobject()。然后,您可以使用该新名称访问其“成员”和“函数”。例如
$pageData->variable=true
$myObject->send($data)
$newData=$pageData->variable
。它比看起来简单多了。这称为面向对象编程,是一个基本概念。:)哎呀!那应该是
public function\uu construct()
。让我来换吧!不要忘记,您现在可以将该对象变量(
$object->variable
)视为程序中的任何常规变量。为了帮助您解构正在发生的事情,第一部分(
$pageData
)是对象名。第二部分(
->
)表示您正在从该对象访问某些内容。第三部分(
Logid
)是实际的变量名。
session_unset();
session_destroy();
session_write_close();
setcookie(session_name(),'',0,'/');
session_regenerate_id(true);