0

ここでは機能しているようですが、コードをコピーしてメモ帳に貼り付けてブラウザで実行しようとすると、>このように「名前」の前に余分な文字が表示されます。

PHP 4.3.0

ここに画像の説明を入力

<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>

<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

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";
       }
     }

   if (empty($_POST["email"]))
     {$emailErr = "Email is required";}
   else
     {
     $email = test_input($_POST["email"]);
     // check if e-mail address syntax is valid
     if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email))
       {
       $emailErr = "Invalid email format";
       }
     }

   if (empty($_POST["website"]))
     {$website = "";}
   else
     {
     $website = test_input($_POST["website"]);
     // check if URL address syntax is valid (this regular expression also allows dashes in the URL)
     if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website))
       {
       $websiteErr = "Invalid URL";
       }
     }

   if (empty($_POST["comment"]))
     {$comment = "";}
   else
     {$comment = test_input($_POST["comment"]);}

   if (empty($_POST["gender"]))
     {$genderErr = "Gender is required";}
   else
     {$gender = test_input($_POST["gender"]);}
}

function test_input($data)
{
     $data = trim($data);
     $data = stripslashes($data);
     $data = htmlspecialchars($data);
     return $data;
}
?>

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php $_SERVER["PHP_SELF"];?>">
   <label>Name:</label> <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span>
   <br><br>
   <label>E-mail:</label> <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span>
   <br><br>
   <label>Website:</label> <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span>
   <br><br>
   <label>Comment:</label> <input type="text" name="comment">
   <br><br>
   <label>Gender:</label>
   <input type="radio" name="gender" value="female">Female
   <input type="radio" name="gender" value="male">Male
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>
   <input type="submit" name="submit" value="Submit">
</form>

<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
4

5 に答える 5

1

しかし、コードをメモ帳にコピーして貼り付け、ブラウザで実行しようとすると、このように名前の前に余分な「>」文字が表示されます。

コードをメモ帳に貼り付けて保存することはできません。次に、ブラウザから直接ファイルを実行します。PHP はそのようには機能しません。Apache や IIS などの適切な Web サーバーが必要です。次に、PHP をインストールして、それらの Web サーバーで動作するように構成します。

Web サーバーで実行し、まだこの問題があると仮定します。PHP を適切に構成していない可能性があります。最初に単純なコードを試すことで、PHP が機能するかどうかをテストできます。

<?php echo "Is PHP working?"; ?>

また

<?php phpinfo(); ?>
于 2013-09-18T04:56:34.887 に答える
1

Apache サーバーをセットアップする必要があります。

  1. XAMPPをダウンロードしてインストールする

  2. そのコードを C://xampp/htdocs に入れ、名前を付けますexample.php

  3. xamppダッシュボードからApacheサーバーを実行します

  4. ブラウザで gotolocalhost/example.php

于 2013-09-18T04:59:29.413 に答える
0

問題は、このエラーの原因となったエスケープ文字を使用しなかったことです。代わりに一重引用符を使用することもできます。

これを使って:

<form method="post" action="<?php $_SERVER['PHP_SELF'];?>">

またはエスケープ文字を使用します。

<form method="post" action="<?php $_SERVER[\"PHP_SELF\"];?>">
于 2013-09-18T06:25:55.380 に答える
0

このコードを保存するときは、.html 拡張子を使用しないでください。また、WAMP、XAMPなどのphpサーバーを使用してコードを実行する必要がある.phpコードにする必要があります。

WAMPをお勧めします。簡単です。1. では、WAMP をダウンロードしてインストールします。2. wamp (インストールした場所) 内の www ディレクトリ内に .php ファイルを保存します。 3. ブラウザーに移動します。4. localhost と入力します。 5. リストから最近保存したファイルをクリックします。6.その後、動作します。

于 2013-09-18T05:00:57.870 に答える
0

ここでは何も出力していません:

action="<?php $_SERVER["PHP_SELF"];?>"

それを次のように変更します。action="<?php echo $_SERVER["PHP_SELF"]; ?>"

または、short_open_tagが有効になっている場合: action="<?= $_SERVER["PHP_SELF"]; ?>".

于 2013-09-18T05:02:16.343 に答える