Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OOP PHP安全项目_Php_Html_Oop - Fatal编程技术网

OOP PHP安全项目

OOP PHP安全项目,php,html,oop,Php,Html,Oop,我有一个“安全”的项目来了解基本知识,只是为了更熟悉OOP 这是我的密码: chest.php <?php class safe{ public $isLocked = true; public $isClosed = true; public function unlock(){ if ($this->isLocked == true) { $this->i

我有一个“安全”的项目来了解基本知识,只是为了更熟悉OOP

这是我的密码:

chest.php

<?php
    class safe{

        public $isLocked = true;
        public $isClosed = true;

        public function unlock(){

            if ($this->isLocked == true) {

                $this->isLocked = false;
                echo "Safe Unlocked<br>";

            }else{

                echo "Safe Already Unlocked<br>";

            }

        }

        public function lock(){

            if ($this->isLocked == false) {

                if ($this->isClosed == true) {

                    $this->isLocked = true;
                    echo "Safe Now Locked<br>";

                }else{

                    echo "Safe Needs To Be Closed To Be Locked<br>";

                }



            }else{

                echo "Safe Is Already Locked<br>";

            }

        }

        public function checkLock(){

            if ($this->isLocked == true) {

                echo "<span style='color:red;'>Safe Is Locked</span><br>";

            }else{

                echo "<span style='color:red;'>Safe Is Not Locked</span><br>";

            }

        }

        public function open(){

            if ($this->isClosed == true) {

                if ($this->isLocked == false) {

                    $this->isClosed = false;
                    echo "Safe Is Now Open<br>";

                }else{

                    echo "Safe Is Locked, Cannot Open<br>";

                }

            }else{

                echo "Safe Already Open<br>";

            }

        }

        public function close(){

            if ($this->isClosed == false) {

                if ($this->isLocked == false) {

                    $this->isClosed = true;
                    echo "Safe Now Closed<br>";

                }else{

                    echo "Safe Is Currently Locked Cannot Close<br>";

                }

            }else{

                echo "Safe Already Closed<br>";

            }

        }
    }
<?php 
    require 'chest.php';

    $safe = new safe();

    if ($safe->isLocked == true) {

        echo "Safe Currently Locked<br><br>";
    }

    $safe->open();
    $safe->lock();
    $safe->unlock();
    $safe->open();
    $safe->lock();
    $safe->open();
    $safe->unlock();
    $safe->checkLock();
    $safe->lock();
    $safe->close();
    $safe->lock();
    $safe->open();
    $safe->lock();
    $safe->checkLock();

    if (isset($_POST['unlock'])) {

            $safe->unlock();

        }
        if (isset($_POST['lock'])) {

            $safe->lock();

        }
        if (isset($_POST['open'])) {

            $safe->open();

        }
        if (isset($_POST['close'])) {

            $safe->close();

        }
        if (isset($_POST['check'])) {

            $safe->checkLock();

        }
?>
<!DOCTYPE HTML>
    <html>
    <head>
        <title>Safe</title>
    </head>
    <body>

        <form method="post">
            <input type="submit" name="unlock" value="Unlock">
            <input type="submit" name="lock" value="Lock">
            <input type="submit" name="open" value="Open">
            <input type="submit" name="close" value="Close">
            <input type="submit" name="check" value="Check Lock">
        </form>
    </body>
    </html>

保险柜

当我在没有
if
语句的情况下调用函数时,它可以正常工作,但当我尝试将它们放入
isset($\u POST['value']
时,它只显示1个输出,并且总是设置
isLocked()
返回到真实状态,这样它就永远不会工作。

要停止每次刷新页面,需要使用javascript和ajax。您的javascript可以在单击时停止加载页面,并且您的ajax可以调用服务器来执行您的PHP

有趣…非常有趣…问题是什么?可能您没有传递任何参数via
POST
(参数不在URL中,但通过标题)锁一直处于锁定状态,当我单击“解锁”时,它会弹出“解锁”,但随后它会直接重置为锁定状态。但当我手动输入$safe->unlock()时,它不会这样做;也许你应该尝试var_dump($\u POST['value'])。ISSET可能不适合,因为ISSET($var)其中$var=false的计算结果为true。由于表单中的所有变量都将被提交,因此所有if语句的计算结果都为true。您应该更加具体(if(isset($\u POST['value'])&&&$\u POST['value']==1)。因此,我发现这是因为我每次按下按钮都会刷新页面,有人知道如何在我单击“提交”后阻止页面刷新,还是我会使用PHP来实现这一点呢?。如果使用jQuery,请尝试:$('button')。on('input[type=“submit”]”,function(){$.post('/URL',{$(this).attr('name'):$(this).attr('value')},函数(数据){//检查响应以确保其成功});