php脚本被打印而未执行


php script is printed not executed

我有以下html文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Fancy Website</title>
</head>
<body>
    <div id="content_login">
        <form method="post" action="app.php">
            <table>
                <thead>Please Login for more fancy Content!</thead>
                <tr>
                    <td>Username</td>
                </tr>
                <tr>
                    <td><input type="text" name="username"></td>
                </tr>
                <tr>
                    <td><input type="submit" name="login" value="Login"></td>
                </tr>
            </table>
        </form>
    </div>
</body>
</html>

这是我的php脚本:

<?php
    if(isset($_POST['login'])) {
        echo "Hello " . $_GET["username"];
    }
?>

是的,没什么,但我只想测试一下,当按下登录按钮时,脚本是否能工作。惊奇:事实并非如此。我在浏览器中打开index.html,html部分正常工作,但如果我按下登录按钮,浏览器会显示以下内容:

<?php
    if(isset($_POST['login'])) {
        echo "Hello " . $_GET["username"];
    }
?>

我想这是语法问题,但我找不到。也许你看到了。非常感谢!

我的建议是使用:

<?php
    if (isset($_POST['login']))
    {
        $username = $_POST['username'];
        if (!empty($username))
        {
            echo "hello $username";
        } else {
            echo "You must fill in the username!";
        }
    }
?>

老实说,我会把index.html改成index.php,并把它放在页面的顶部,这样所有的错误等都会通过一个文件传递。

您应该将$_GET["username"]变量更改为$_POST["username"]变量以正确工作

<?php
    if(isset($_POST['login'])) {
        echo "Hello " . $_POST["username"];
    }
?>

app.php中有php代码吗?如果你已经启用了,那么你还没有在Apache中启用mod_php。我建议您使用wampserver(在windows上),因为它可以处理基本的apache/php配置。

http://www.wampserver.com/en/

编辑:你不能只执行你的php代码,而没有一个网络服务器。在浏览器中打开HTML文件是客户端,php是服务器端。

首先,我认为您没有运行apache服务器来确保PHP代码正常工作。如果使用POST发送数据,则必须使用POST方法来处理数据。

<?php
    if(isset($_POST['login'])) {
        echo "Hello " . $_POST["username"];
    }
?>