与えられたことにより、オブジェクトの配列から要素を削除します。PHP - 私はクラスを持っているキー
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);
}
、すべてのこの作品を今、私はその名前($クラス - >ログイン)を与えることによって、いくつかのユーザーを削除したいので、私は書いた:
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'配列の内容を表示できますか? – codedge
'deleteUser()'はあなたが保存したファイルから '$ users'を最初に取得し、次にこの配列を変更してから' dataStore() 'を再度変更する必要があります。現在、あなたは 'deleteUser($ _ POST ['sdelete']、$ users)'を呼び出しますが、このコンテキストでは '$ users'にアクセスすることはできません。 – Joseph
いいえ、実際はそうです。私はちょうどコードのこの部分を貼り付けていませんでした。私のせい。 – linearSpin