PHPでフォームを検証したい。
そのため、フォームを検証するために、クラス「benutzer」とこのクラスのパブリック関数「benutzerEintragen」を作成しました。
class benutzer
{
private $username = "";
private $mail = "";
private $mail_check = "";
private $passwort = "";
private $passwort_check = "";
public $error_blank = array();
public $error_notSelected = array();
public $error_notEqual = array();
public function benutzerEintragen () {
$textfields[0] = $this->username;
$textfields[1] = $this->mail;
$textfields[2] = $this->mail_check;
$textfields[3] = $this->passwort;
$textfields[4] = $this->passwort_check;
foreach ($textfields as $string) {
$result = checkFormular::emptyVariable($string);
$error_blank[] = $result;
}
関数「benutzerEintragen」では、変数「username、mail」などに適切な $_POST エントリを入力しました (上記のコードには示されていません)。呼び出し
checkFormular::emptyVariable($string)
フィールドが設定されていない場合は「TRUE」を返すか、空の場合は FALSE を返します。
このクラスの新しいインスタンスを作成しようとすると、関数を実行して $error_blank[0] へのアクセスを取得すると、配列が空になります!
if (($_SERVER['REQUEST_METHOD'] == 'POST')){
$BENUTZER = new benutzer();
$BENUTZER->benutzerEintragen();
echo $BENUTZER->error_blank[0];}
したがって、最後の行は「通知: 未定義のオフセット: 0」につながっています。配列構造に関連しているようです。
echo $BENUTZER->mail;
フォームに書いた入力はすべて取得されますが、これは正しいです。また、phpEd でデバッガーを実行すると、foreach ループは正しいように見えますが、関数の実行後に配列 "error_blank" が消去されるようです。
どんな助けでも大歓迎です。前もって感謝します。