如何在不显示php内容的情况下从包含的页面访问值
Im使用两个页面第一个页面从url获取值并显示一些内容。我在第二页中包含了第一页,但不应显示第一页,但我必须访问第一页中使用的第二页中的值。。 第一页的编码如何在不显示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']
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);