OOP PHP安全项目
我有一个“安全”的项目来了解基本知识,只是为了更熟悉OOP 这是我的密码: chest.phpOOP 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
<?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有趣…非常有趣…问题是什么?可能您没有传递任何参数viaPOST
(参数不在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')},函数(数据){//检查响应以确保其成功});