2015-04-28 80 views
-1

我有这个“安全”的项目,让基础知识只是为了更熟悉面向对象。面向对象的PHP安全项目

这里是我的代码:

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>"; 

      } 

     } 
    } 

的index.php

<?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($_POST['value']它保持不变只显示1个输出并始终将isLocked();设置为真,因此它永远不会工作。

+1

有趣...非常有趣....有什么问题吗? – PHPMan

+0

也许你不通过'POST'传递任何参数(参数不是在URL中,而是通过标题) – Justinas

+0

锁不断被锁定,当我点击解锁它吐出“解锁”,但它只是直接重置为锁定。但是,当我手动输入$ safe-> unlock(); – Kenziiee

回答

0

要停止页面刷新每次都需要javascript和ajax。你的javascript可以阻止页面加载点击,你的ajax可以打电话给服务器执行你的PHP

+0

真棒谢谢.. – Kenziiee

+0

如果您使用jQuery,请尝试: $('button' ).on('input [type =“submit”]',function(){.012。值')},函数(数据) { //检查响应以确保其成功 } }); –