2016-04-22 12 views
1

このフォームを正しく動作させることができないようです。私のウェブスクリプティングに関する知識は、私がまだ学生であるためかなり制限されています。検索したところ、これは同じ割り当てであるが、この人は別の問題を抱えていた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> 
+0

これは教師に支払われるものではありませんか?彼らの学生を助ける?これは*学校*の割り当て、正しいのですか? – Marcus

+0

あなたのHTMLはおそらくどこかで壊れている/悪いです。ブラウザーでview-sourceを実行してスクリプトが実際に出力しているものを確認し、html構文エラーを探します。おそらくコードの前のどこかで '>'やその他のものが見つからないでしょう。 –

+0

.htmlファイルはPHPスクリプトを実行しません。PHPインタプリタを呼び出すには、Apache用に '.php'拡張子が必要です – RiggsFolly

答えて

2

コード内の任意の場所にphpがある場合は、.htmlファイルとして保存することはできません。ファイルを.phpという名前で保存し、ApacheがPHPインタプリタを呼び出します。

1

このページを.htmlという拡張子で保存しているため、あなたのPHPが処理されていない可能性が非常に高いです。ページを.phpとして保存してみてください

+0

私は同じページ内で実行しようとしているし、2つの別々のページではない。私が.phpとして保存すると、Webブラウザで見るとコードとして表示されます。 – barrym07

+0

このページにブラウザの生のPHPコードが表示されている場合、phpがインストールされているWebサーバーから実行されていない可能性が最も高いです。ファイルシステムからphpページを開き、通常のhtmlファイルのようにブラウザで開くことはできません。私はあなたがあなたが探している答えを見つけることに同意する[ここ](http://stackoverflow.com/questions/5121495/php-code-is-not-being-executed-instead-code-shows-on-the-ページ) –

+0

私はXHTMLとして提出する必要があります。私はそれを.phpとして割り当てをホストする学校のサーバーにアップロードし、表示されないためphpサービスを実行してはいけません。 – barrym07