我有这个“安全”的项目,让基础知识只是为了更熟悉面向对象。面向对象的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();
设置为真,因此它永远不会工作。
有趣...非常有趣....有什么问题吗? – PHPMan
也许你不通过'POST'传递任何参数(参数不是在URL中,而是通过标题) – Justinas
锁不断被锁定,当我点击解锁它吐出“解锁”,但它只是直接重置为锁定。但是,当我手动输入$ safe-> unlock(); – Kenziiee