Can';设置CGI参数(PHP)

Can';设置CGI参数(PHP),php,cgi,Php,Cgi,我是PHP新手,遇到了一个问题。我有一个导航栏在一个主页的侧面,显示4个链接。我应该在子类中编写一个方法setWhichPage,该方法将从父类访问名为“whichpage”的CGI参数,并使用它来确定4个链接页面中的哪一个将显示在主页的主部分,使用另一个名为getMainFunction的方法。navbar是使用getLeftNavBar和createNavbarArray方法创建的,它们存在于子类(称为TravelAgent)中,但从父类(称为Company)获取它们的变量。此子类中应该包含

我是PHP新手,遇到了一个问题。我有一个导航栏在一个主页的侧面,显示4个链接。我应该在子类中编写一个方法setWhichPage,该方法将从父类访问名为“whichpage”的CGI参数,并使用它来确定4个链接页面中的哪一个将显示在主页的主部分,使用另一个名为getMainFunction的方法。navbar是使用getLeftNavBar和createNavbarArray方法创建的,它们存在于子类(称为TravelAgent)中,但从父类(称为Company)获取它们的变量。此子类中应该包含的方法集。我应该使用值$\u GET或$\u REQUEST数组来设置属性$whichpage中的值。$whichpage属性的可接受值应与getLeftNavBar方法匹配。方法getLeftNavBar和setWhichPage一起工作,因此当用户单击navbar中的链接时,他们应该创建这些链接:

http://amazingadventures.000webhostapp.com/?whichpage=home 
http://amazingadventures.000webhostapp.com/?whichpage=sales 
http://amazingadventures.000webhostapp.com/?whichpage=support 
http://amazingadventures.000webhostapp.com/?whichpage=contact 
我遇到的问题是,当我尝试获取setWhichPage将变量$whichpage设置为链接中的四个值之一时,会收到以下错误消息:

注意:未定义的索引:whichpage in/storage/ssd1/873/888 73/public_html/index.php

你能告诉我我做错了什么吗?提前感谢您的帮助。以下是相关代码:

<?php

class Company {             //start of parent class Company

protected $company_name;

protected $company_address;

protected $company_url;

protected $company_email;

protected $whichpage;



public function __construct(){

$this->company_name = "Amazing Adventures Travel";

$this->company_address = "13999 Turtle Way, Los Angeles, California, 90001";

$this->company_url = "http://amazingadventures.000webhostapp.com/";

$this->company_email  = "email.edu";

$this->whichpage = "home";

}

//other methods...

}     //end of parent class Company



class TravelAgent extends Company {   //start of child class TravelAgent

var $navbar_array;

function  create_navbar_array()  {

$mainurl = $this->company_url;   
$this->navbar_array = array("Home Page"=>"$mainurl?whichpage=home", "Sales"=>"$mainurl?whichpage=sales",
"Support" => "$mainurl?whichpage=support", "Contacts" => "$mainurl?whichpage=contact");     
}


function getLeftNavBar() {     

echo "<table border=1, td width=100, height = 40><tr>";
foreach($this->navbar_array as $x => $x_value) {
    echo '<tr><td><a href="' . $x_value . '">'. $x ."</a></td></tr>";
    echo "<br>";
}
echo "</tr></table>";
}


function setWhichPage(){

$whichpage = $_GET['whichpage'];

}


function getMainSection() {

echo "The ".$whichpage." page";

}

}

//end of child class TravelAgent 


$travelobject = new TravelAgent();          //object creation

$travelobject->getHeader();                 //function calls
$travelobject->create_navbar_array(); 
$travelobject->getLeftNavBar();
$travelobject->setWhichPage();
$travelobject->getFooter();

?>

<table style='width:100%' border='1'>                   //HTML               
<tr>                                                         
<td style='width:15%'>Left Navigation Bar</td>
<td> getMainSection()</td>                              //function call
</tr>
</table>

您必须使用$this->whichpage引用它,并检查$u GET['whichpage']是否已设置。大致如下:

function setWhichPage(){

if(isset($_GET['whichpage'])) {
    $this->whichpage = $_GET['whichpage'];
}

}


function getMainSection() {

echo "The ".$this->whichpage." page";

}

您必须使用$this->whichpage引用它,并检查$u GET['whichpage']是否已设置。大致如下:

function setWhichPage(){

if(isset($_GET['whichpage'])) {
    $this->whichpage = $_GET['whichpage'];
}

}


function getMainSection() {

echo "The ".$this->whichpage." page";

}
注意:未定义的索引:whichpage in/storage/ssd1/873/888 73/public_html/index.php

此错误意味着
$\u GET
数组没有该页面的键

在您的情况下,如果打开
$\u GET
数组,则该数组将为空

最佳做法是在访问之前检查密钥是否存在。 setWhichPage的示例:

$this->whichpage = isset($_GET['whichpage']) ? $_GET['whichpage'] : $this->whichpage; // "home" by default
注意:未定义的索引:whichpage in/storage/ssd1/873/888 73/public_html/index.php

此错误意味着
$\u GET
数组没有该页面的键

在您的情况下,如果打开
$\u GET
数组,则该数组将为空

最佳做法是在访问之前检查密钥是否存在。 setWhichPage的示例:

$this->whichpage = isset($_GET['whichpage']) ? $_GET['whichpage'] : $this->whichpage; // "home" by default
可能的重复可能的重复