第一个PHP页面,所以这很可能是我遗漏的一些愚蠢问题引起的问题,但我不确定是什么.我正在按照W3Schools上的教程创建具有XSS保护功能的表单,但是当我使用代码时< form method =“ post” action =“<?PHP echo $_SERVER ['PHP_SELF');?>” >中,第一个>与form标签相关联,因此引号不匹配,并且操作无法正确完成.
该页面如下所示:
编辑:
完整代码如下
<body>
<?PHP
$fname = $lname = $email = $student = "";
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$email = $_POST["email"];
switch($_POST["student"])
{
case "u":
$student = "Undergraduate";
break;
case "g":
$student = "Graduate";
break;
default:
$student = "Non-Student";
}
}
?>
<form method="post" action="<?PHP echo $_SERVER['PHP_SELF'); ?>">
<p>First Name: <input type="text" name="fname"> </p>
<p>Last Name: <input type="text" name="lname"> </p>
<p>Email: <input type="email" name="email"> </p>
<p>Student Status: <select name="student">
<option value="u">Undergraduate</option>
<option value="g">Graduate</option>
<option value="x">Non-Student</option>
</select> </p>
<input type="submit" value="Submit">
</form>
<?PHP
echo "<h3>Input:</h3>"
echo "Name: " . $fname . " " . $lname . "<br>";
echo "Email: <a href=mailto:" . $email . ">" . $email . "</a><br>";
echo "Student: " . $student;
?>
</body>
解决方法:
.html文件不会像.PHP文件那样被解析,因此您将需要在系统上安装Web服务器.
旁注:您可以指示Apache将.html文件视为PHP,如果有时间的话,可以这样做.
>这是关于堆栈的文章:Using .htaccess to make all .html pages to run as .php files?
.PHP文件无法直接从Web浏览器运行,除非已对其进行解析并在服务器或托管站点上运行.
它们需要从本地计算机以http://localhost/file.PHP进行访问.
取决于您的平台,可以使用在Windows,Mac和Linux上运行的Xampp.
> https://www.apachefriends.org/
沼泽:
> http://www.wampserver.com/en/
> http://www.easyphp.org/
Mamp(Mac):
另外,您还有一些语法错误.
action="<?PHP echo $_SERVER['PHP_SELF'); ?>">
^
应该是方括号,而不是括号.
action="<?PHP echo $_SERVER['PHP_SELF']; ?>">
并回显“< h3>输入:< / h3>”缺少结束分号.
那些会引发/引起解析错误.