不确定为什么我的班级功能不起作用

时间:2014-07-26 15:23:30

标签: php

我正在制作一个脚本,我有一个名为ban.php的PHP文件,其目的是禁止IP。我有一个名为Banning的班级,位于inc/class.Banning.inc.php内。由于能够禁止单个IP地址和IP范围,因此我决定提出$_GET请求。例如:ban.php?type=single将为单个IP地址加载表单,ban.php?type=range将加载IP范围的表​​单。

这是班宁班:

/**
* BANNING CLASS
*/
class Banning {
    /**
     * VARIABLES
     */
    private $_Gtype;
    private $_G_Result;

    /**
     * Constructor, set variables to ban.php $_GET
     */
    public function __construct() {
        $this->_Gtype = isset($_GET['type']) ? $_GET['type'] : null;
    }

    /**
     * GET THE BANNING TYPE FROM $_GET IN BAN.PHP
     */
    public function getType() {
        // Get the type of banning form from $_GET
        if ($this->_Gtype == 'single') {
            $this->_G_Result == 'single';
        } else if ($this->_Gtype == 'range') {
            $this->_G_Result == 'range';
        }
        // Return the value
        return $this->_G_Result;
    }
}

然后在我的ban.php文件中,我有以下内容:

require_once('inc/class.Banning.inc.php');
define('BAN_IP', true); // define the ban constant

/**
 * DETERMINE WHICH FORM TO DISPLAY REGARDING $_GET
 * Making use of the getType() function in Banning Class.
 */

$getType = new Banning();

if ($getType->getType() == 'single') {
require_once('html/ban.single.php');
}

?>
<style type="text/css">
    <?php require_once('css/css.css'); ?>
 </style>

我的httpd.conf文件中的所有错误都已打开,我在我的mac(MAMP)上运行此错误。 当我运行页面ban.php?type=single时,我留下了一个空白页面。我做了什么有什么不对吗?

1 个答案:

答案 0 :(得分:2)

您可以使用double equal-signes分配值。

if ($this->_Gtype == 'single') {
    $this->_G_Result == 'single';
} else if ($this->_Gtype == 'range') {
    $this->_G_Result == 'range';
}

应该是

if ($this->_Gtype == 'single') {
    $this->_G_Result = 'single';
} else if ($this->_Gtype == 'range') {
    $this->_G_Result = 'range';
}

顺便说一下,你永远不会检查_Gtype的值是否为空。这可能会导致意外行为。