来自w3schools的这段代码不能正常工作?

时间:2013-09-18 04:52:43

标签: php

它似乎正在工作here但是当我只是将代码复制并粘贴到记事本中并尝试在浏览器中运行时,我会在“name”之前获得一个额外的>字符。

php 4.3.0

enter image description here

<!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;
?>

5 个答案:

答案 0 :(得分:1)

  

但是当我只是将代码复制粘贴到记事本中并尝试运行时   browser.i获得额外的“”&gt;“像这样的名字之前的角色。

您不能只将代码粘贴到记事本中并保存。然后,直接从浏览器运行该文件。 PHP无法正常工作。您需要适当的Web服务器,如Apache和IIS,然后安装PHP并配置为使用这些Web服务器。

假设您使用Web服务器运行它并且您仍然遇到此问题。您可能没有正确配置PHP。您可以先测试一个简单的代码来测试PHP的工作原理。

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

<?php phpinfo(); ?>

答案 1 :(得分:1)

您必须设置Apache服务器。

  1. download并安装XAMPP

  2. 将该代码放入C:// xampp / htdocs,将其命名为example.php

  3. 从xampp仪表板运行apache服务器

  4. 在浏览器中转到localhost/example.php

答案 2 :(得分:0)

保存此代码时,不应使用.html扩展名。它应该是.php代码,你需要使用像WAMP,XAMP等PHP服务器运行代码。

我推荐WAMP。这很容易。 1.所以,下载WAMP并安装。 2.将.php文件保存在wamp(安装位置)内的www目录中。 3.转到您的浏览器。 4.键入localhost 5.从列表中单击最近保存的文件。 6.之后就可以了。

答案 3 :(得分:0)

你在这里没有输出任何东西:

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

将其更改为:action="<?php echo $_SERVER["PHP_SELF"]; ?>"

或者如果启用了short_open_tagaction="<?= $_SERVER["PHP_SELF"]; ?>"

答案 4 :(得分:0)

问题是您没有使用导致此错误的转义字符。您也可以使用单引号。

使用此:

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

或使用转义字符:

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