Web主机:数据库连接和/或标头不起作用 - 没有错误消息

时间:2015-10-18 14:58:50

标签: php mysql web-hosting

我花了几个小时为项目的网站寻找合适的免费网络托管服务。它没有什么过于花哨的东西,并不包括MySQL数据库连接和非常简单的登录系统。但是,我还没有找到一个能让网站正常运行的托管服务(一切都在本地工作正常)。

特别是,登录脚本无法在线工作(两个网络托管服务类似的问题,ByethostWeb4Free.eu

<?php
error_reporting(E_ALL);
session_start();
include "db-connect.php";

if (isset($_GET['login'])) {
    $login = $_GET['login'];
    if ($login == 1 && isset($_POST['email']) && isset($_POST['password'])) {
        $email = $_POST['email'];
        $password = $_POST['password'];
        $mysqli = checkDataBaseConnection();
        $query = $mysqli->query("SELECT `user`.`password` FROM `user`, `alumni` WHERE `alumni`.`mail`='".$email."' AND `alumni`.`id`=`user`.`id`");
        $hash_raw = $query->fetch_array();
        if (!empty($hash_raw)) {
            $hash = $hash_raw[0];
            if (password_verify($password, $hash)) {
                $_SESSION['loggedin'] = 1;
                header('Location: dash.php');
                exit;
            }
        }
    }
}
?>

DB-connect.php:

<?php
function checkDataBaseConnection() {
    // Defining all variables, etc.
    if(!isset($mysqli)) {
        $mysqli = new mysqli($mysql_host, $mysql_name, $mysql_pw, $mysql_db);
        if ($mysqli->connect_errno) {
            echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
        }

        if (!mysqli_set_charset($mysqli, "utf8")) {
            printf("Error loading character set utf8: %s\n", mysqli_error($mysqli));
        }
    }
    return $mysqli;
}
?>

尽管已将error_reporting设置为E_ALL,但在提交保存在数据库中的电子邮件地址(无论密码是否正确)后,都不会显示错误。事实上,显示 nothing ,只显示空白页面。如果电子邮件地址不在数据库中,一切正常。更奇怪的是,数据库连接在另一个(非登录)中完美运行。

是否存在一些我忽略的明显错误,或者这些问题是否与托管服务的某些PHP设置有关?如果是这样,你能推荐另一个 支持这些功能的免费托管服务吗?

非常感谢,

0 个答案:

没有答案