私は過去数週間にわたってPHPを学んできましたが、実際にはロジックを実際に試してみるために、初心者はPHPフォームの検証に苦労しています
PHPを使用してフォームのデータ(最初は「名前」フィールドで始まります)を検証して、「送信成功」ページ(およびサーバーへのデータ)にユーザーを送信しようとしています。
私はこれまで「」= アクションを残すことによって、フォームの検証作業を取得するために管理している - のブランクので(私が読んだPHP_SELFは、セキュリティ上のリスクがある代わりに使用する)のような、しかし、問題はここにありますフォームを正しく記入してもアクションが設定されていないためどこにも行かないということです。
逆に、私はアクション= handler.phpで「投稿成功」ページにユーザーを送信することができましたが、これは私のPHPフォームフィールド検証コードを無視します。
私は、PHPの検証と結婚する方法がわからないので、ここではかなり明白なものがないと感じています。ユーザーに「送信成功」ページを送信し、データをどこかに保存してください。
私capture.phpフォームページの一番上にPHPを読み取ります
<?php
$name_error = '';
if(isset($_POST["submit"]))
{
if(empty($_POST["name"]))
{
$name_error = "Please Enter Name";
}
else
{
if(!preg_match("/^[a-zA-Z ]*$/", $_POST["name"]))
{
$name_error = "Only Letters and whitespace";
}
}
}
?>
を - これは時間内にフォームフィールドの他のタイプを含めるように拡張されます。
capture.phpで私のhtml:
<body class="capture">
<!--action code #1-->
<form action="" method="post" enctype="multipart/form-data">
<!--action code #2-->
<!--<form action="handler.php" method="post" enctype="multipart/form-data">-->
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="form-inline">
<div class="form-group">
<label for="name">Your name<span class="text-danger">*</span></label><br/>
<input class="form-control" type="text" placeholder="e.g. Joe Bloggs" name="name" maxlength="70" />
<span class="text-danger"><?php echo $name_error; ?></span>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="form-group">
<label for="games">Your choice</label>
<select class="form-control" name="games">
<option> -- </option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6">
<input id="btn-prev" name="prev" type="prev" value="Prev">
</div>
<div class="col-lg-6 col-md-6 col-sm-6">
<input id="btn-next" name="submit" type="submit" value="Next"></div>
任意の助けてくれてありがとう、あなたのphpが仕事である場合、これがあると同じくらい をcapture.phpするために、フォームのアクションを設定
検証を行っているページにPOSTデータが表示されないと思います。 form validationを 'handler.php'(検証エラー時にリダイレクト)に移動するか、フォーム要素の' action'を '' capture.php "'に設定してください。 – amphetamachine