PHP -> 函数调用中断页面

标签 php apache apache2 mysql

我一直在尝试使用 PHP 和 MySQL 设置登录页面,当我将准备好的语句与 -> 运算符一起使用时,我遇到了问题。我正确安装了 php5 和 apache2,并且 phpinfo(); 运行没有问题,但是当我使用此代码时:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Login</title>
    </head>
    <body>
        <form action="" method="POST">
            <label for="username">Username:</label>
            <br />
            <input type="text" name="username" id="username" />
            <br />
            <label for="password">Password:</label>
            <br />
            <input type="password" name="password" id="password" />
            <br />
            <input type="submit" value="Submit" />
        </form>
        <?php 
            error_reporting(-1);
            ini_set('display_errors', 'On');

            if (isset($_POST['username']) && isset($_POST['password'])) {
                $logged_in = false;

                $username = $_POST['username'];
                $password = $_POST['password'];

                $conn = new mysqli('localhost', 'root', 'password', 'db');

                /* create a prepared statement */
                if ($stmt = $conn->prepare("SELECT username, password, salt FROM `users` WHERE `username` = ?")) {

                    /* bind parameters for markers */
                    $stmt->bind_param("s", $username);

                    /* execute query */
                    $stmt->execute();

                    $stmt->bind_result($storedUser, $storedPassword, $storedSalt);

                    while ($stmt->fetch()) {
                        // $storedUser, $storedPassword, $storedSalt
                        if (crypt($password, $storedSalt) == $storedPassword) {
                            $logged_in = true;
                        }
                    }

                    /* close statement */
                    $stmt->close();

                    if ($logged_in === true) {
                        echo 'Successfully logged in as ' . $username;
                    }
                }
            }

        ?>
    </body>
</html>

php 在 > 处中断,其余部分显示到页面上。

prepare("SELECT username, password, salt FROM `users` WHERE `username` = ?")) { /* bind parameters for markers */ $stmt->bind_param("s", $username); /* execute query */ $stmt->execute(); $stmt->bind_result($storedUser, $storedPassword, $storedSalt); while ($stmt->fetch()) { // $storedUser, $storedPassword, $storedSalt if (crypt($password, $storedSalt) == $storedPassword) { $logged_in = true; } } /* close statement */ $stmt->close(); if ($logged_in === true) { echo 'Successfully logged in as ' . $username; } } } ?> 

最佳答案

虽然我仍然不确定是什么导致了这个问题,但我通过运行修复了它:

sudo /etc/init.d/apache2 stop
sudo apt-get remove --purge apache2 php5
sudo apt-get remove --purge libapache2-mod-php5
sudo apt-get install php5 apache2 libapache2-mod-php5
sudo /etc/init.d/apache2 start
sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload

感谢大家的帮助。

关于PHP -> 函数调用中断页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34113028/

相关文章:

php - PHP/MySQL 中的 Web 服务

php - 使用 PHP 将用户名放入 apache access_log 且不使用 HTTP 身份验证

apache2 - 无法在 openSuse 中构建 apache mod_tile 错误 : Could not find apxs on the path

linux - 浏览器通过ip更改域名,Debian,Apache2

ssl - 基于名称的虚拟主机服务于同一个 SSL 站点

javascript - 如何使用 Laravel 发出动态 Ajax 请求

php - SQL 选择连接表的位置

某些请求的 Apache https 请求状态未决,返回 502 状态

php - Laravel 4 应用程序中的浏览器缓存问题

regex - 这是否可以使用正则表达式来实现?