このフォームを正しく動作させることができないようです。私のウェブスクリプティングに関する知識は、私がまだ学生であるためかなり制限されています。検索したところ、これは同じ割り当てであるが、この人は別の問題を抱えていたPost Self Form Validation and Submission in PHPが見つかりました。私は「>名前:は私の最初の行として表示されますが、に」私のページをテストしてみてくださいいくつかの理由HTML PHP自己フォーム検証エラー
>は、開始タグをHTMLフォーム締切です。
これは.htmlを1つのドキュメントとして提出し、別の.phpドキュメントにPHPコードを入れないためです。
編集:@クエンティン - これは、これがマークされた重複記事とは関係ありません。私はApacheサーバーを実行していません。その人はXAMPPサービスを再起動することで問題を解決しました。私はWindows 10であり、おそらくそのサービスを実行できません。
私はそれが1つの文書を流したかったので、なぜPHP_SELFを使っていたのですか?ファイルを.phpとして保存すると、コードは表示されません。
私はChromeでコードを検査しましたが、これをデバッグする方法はわかりました。そして私はそれに間違ったものは見つけられませんでした。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Assignment 6.2 PHP Validation</title>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $addressErr = $phoneErr = $zipErr = "";
$name = $address = $phone = $zip = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
//check name field
if (empty($_POST["address"])) {
$emailErr = "Address is required";
}
// check phone number field
if (empty($_POST['phone'])) {
$phoneErr = "Phone number is required";
} else {
$phone = test_input($_POST['phone']);
if(!preg_match("/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/", $phone)) {
$phoneErr = "must be in ddd-ddd-dddd format";
}
}
//check zip code field
if (empty($_POST['zip'])) {
$zipErr = "Zip code is required";
} else {
$zip = test_input($_POST['zip']);
if(!preg_match("/^[0-9]{5}-[0-9]{4}$/", $)) {
$zipErr = "Zip code must be in ddddd-dddd format";
}
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
Address:
<input type="text" name="address">
<span class="error">* <?php echo $addressErr;?></span>
<br><br>
Phone Number:
<input type="text" name="phone">
<span class="error"><?php echo $phoneErr;?></span>
<br><br>
Zip Code:
<input type="text" name="zip">
<span class="error"><?php echo $zipErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
これは教師に支払われるものではありませんか?彼らの学生を助ける?これは*学校*の割り当て、正しいのですか? – Marcus
あなたのHTMLはおそらくどこかで壊れている/悪いです。ブラウザーでview-sourceを実行してスクリプトが実際に出力しているものを確認し、html構文エラーを探します。おそらくコードの前のどこかで '>'やその他のものが見つからないでしょう。 –
.htmlファイルはPHPスクリプトを実行しません。PHPインタプリタを呼び出すには、Apache用に '.php'拡張子が必要です – RiggsFolly