第一个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服务器。
sidenote:您可以指示apache将.html文件视为php,如果您想这样做的话,当您想这样做的时候,这是可能的。
这里有一篇关于stack的文章: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):
https://www.mamp.info/
另外,还有一些语法错误。

action="<?php echo $_SERVER['PHP_SELF'); ?>">
                                      ^

那应该是一个方括号,而不是括号。
action="<?php echo $_SERVER['PHP_SELF']; ?>">

echo "<h3>Input:</h3>"缺少一个闭合分号。
它们会抛出/导致一个解析错误。

07-24 09:47
查看更多