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 不能那样工作。您需要适当的 Web 服务器,例如 Apache 和 IIS,然后安装和配置 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. 在您的浏览器中转到localhost/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 扩展名。它应该是 .php 代码,您还需要使用 WAMP、XAMP 等 php 服务器运行代码。

我推荐 WAMP。这很容易。1. 所以,下载 WAMP 并安装。2. 将您的 .php 文件保存在 wamp 内的 www 目录中(您安装的位置。) 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_tagaction="<?= $_SERVER["PHP_SELF"]; ?>" : 。

于 2013-09-18T05:02:16.343 回答