HTML または PHP で HTML フォームを検証したいと考えています。検証とは、2 つのテキスト ボックスのそれぞれに少なくとも 1 文字のテキストが入力されていることを確認することです。また、英数字のみを入力するか、句読点の前に「/」が付かないようにする必要があります。
現在、私のフォームは 2 つの php ページ (以下にコピー) で構成されており、txt ファイルに投稿されています。
私は、それを行う方法に関するいくつかの(非常に基本的な)指示、または以下のスクリプトに関する提案のいずれかを行っています。
//HTML
<form style="" method="post" action="addtopic2.php">
Topic:<input name="topic" id="topicbox" maxlength="100" type="text"><br>
Outline: <textarea input wrap="nowrap" rows="10" cols="120"
name="outline"></textarea>
<br><input name="submit" value="Submit" type="submit">
</form>
//HTML
<?php
$t = "Topic:";
$o = "Outline:";
$topic = $_POST['topic'];
$outline = $_POST['outline'];
$data = "$t $topic | $o $outline |\n";
$fh = fopen("users.txt", "a");
fwrite($fh, $data);
fclose($fh);
?>
//以下を使用しようとしましたが、どちらのページに挿入しても機能しないようです。
<?php
if($_POST['Submit'] == "submit")
{
$errorMessage = "";
if(empty($_POST['topic']))
{
$errorMessage .= "<li>A topic needs to be entered</li>";
}
if(empty($_POST['outline']))
{
$errorMessage .= "<li>An outline needs to be entered</li>";
}
$vartopic = $_POST['formtopic'];
$varoutline = $_POST['formoutline'];
if(!empty($errorMessage))
{
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
}
?>
<?php
if (isset($_POST['topic']) && isset($_POST['outline'])) {
$topic = trim($_POST['topic']);
$outline = trim($_POST['outline']);
}
else {
echo '<p>Fill the form</p>';
}
?>