作成したこのフォームでは、フィールドが設定されていて空であるかどうかを確認します。 areSet()
をisset()
とし、areEmpty()
をempty()
としたクラスを作成しました。 areEmpty()
メソッドでは、すべてのフィールドが空であれば "Empty"と表示されますが、すべてのフィールドがいっぱいになっても "Empty"と表示されます。それは私が使用したimplode()
機能のためですか?私は自分のコードで間違っていることを指摘するために誰かの助けが必要です。すべてのフィールドが実際にはない場合でもphpは 'Empty'を表示します
HTML
<form action="validate.php" method="post">
<input type="text" name="firstname" placeholder="First Name" autocomplete="off"><br>
<input type="text" name="lastname" placeholder="Last Name" autocomplete="off"><br>
<input type="text" name="email" placeholder="Email" autocomplete="off"><br>
<input type="text" name="username" placeholder="Username" autocomplete="off"><br>
<input type="password" name="password" placeholder="Password" autocomplete="off"><br>
<input type="password" name="passwordAgain" placeholder="Confirm password" autocomplete="off"><br>
<input type="submit" value="Submit">
</form>
Validate.phpと
<?php
require 'include/class.php';
if(Input::areSet('firstname','lastname','email','username','password','passwordAgain')) {
if(Input::areEmpty('firstname','lastname','email','username','password','passwordAgain')) {
echo 'Empty';
} else {
echo 'Not empty';
}
}
Class.phpと
<?php
class Input {
// isset()
public static function areSet(...$fields) {
$setFieldsArray = [];
foreach($fields as $field) {
$setFieldsArray[] = $_POST[$field];
}
return isset($setFieldsArray);
}
// empty()
public static function areEmpty(...$fields) {
$emptyFieldsArray = [];
foreach($fields as $field) {
$emptyFieldsArray[] = empty($_POST[$field]);
}
return implode(' || ', $emptyFieldsArray);
}
}
私はあなたが設定することで、そこにやっていることは考えている
したがって、 'areSet()'メソッドは 'areEmpty()'と同じ機能を持たなければなりませんか? – JTrixx16