【发布时间】:2016-10-25 15:29:34
【问题描述】:
我有一堂课:
class user{
public $login = "userlogin";
public $pass = "userpass";
function __construct() {
$this->login = $_POST['slogin'];
$this->pass = $_POST['spass'];
}
function display() {
return $this->login;
}
}
我正在将它的所有实例写入一个文件:
function dataStore ($obj, $dataFile) {
$dataTmp .= serialize($obj);
file_put_contents($dataFile, $dataTmp);
}
if (isset($_POST['submit'])) {
$newuser = new user();
$users[ $newuser->login ] = $newuser;
dataStore($users, $dataFile);
}
这一切都有效,现在我想通过给出它的名字($class->login)来删除一些用户,所以我写道:
function deleteUser($name,$array) {
unset($array[$name]);
}
if (isset($_POST['submitDelete'])) {
deleteUser($_POST['sdelete'],$users);
dataStore($users, $dataFile);
}
html:
<div class="box-login" id="tab-login">
<form method="POST" action="" >
<p> enter username: <input type="text" name="slogin"/></p>
<p> enter password: <input type="text" name="spass"/></p>
<p> create new account -> <input type="submit" name="submit" /></p>
</form>
</div>
<div class="box-deleteUser" id="tab-deleteUser">
<form method="POST" action="" >
<p> <input type="text" name="sdelete" /> <input type="submit" name="submitDelete" value="usuń"/> </p>
</form>
</div>
但这不起作用,为什么?我无法弄清楚什么是错的,你能以某种方式指出我吗?
【问题讨论】:
-
为什么你认为它不起作用?你得到什么错误信息?你能告诉我们
$users数组的内容吗? -
deleteUser()需要首先从您保存的文件中检索$users,然后更改此数组,然后再次dataStore()。当前您调用deleteUser($_POST['sdelete'], $users),但在此上下文中无法访问$users。 -
不,事实上是这样。我只是没有粘贴这部分代码。我的错。