无法使用mysqli_connect()

时间:2018-01-06 23:41:16

标签: php mysql

所以我决定再次开始编码,因为我放弃了一段时间,我一直在尝试为我的网站创建一个PHP登录系统。每当我尝试登录时,我都会通过使用or die函数来测试是否存在“连接失败”,从而检测是否存在问题。通常我总是发现这是悲伤的情况。我看了几个其他问题/有类似问题的人。但遗憾的是,我似乎无法找出问题,也无法找到解决方案。我查看了我的脚本,似乎没有任何问题。我最好的猜测是由于我的MySQL数据库。但老实说,我真的不确定。如果你们中的任何一个人能给我一些关于做什么的建议那就太好了。谢谢,

另外请注意我在PHP网站上查看是否有任何可能的功能我可以添加以识别问题,但我无法。我不确定这是一个愚蠢的问题,但除了使用die / exit之外还有办法做到这一点吗?我也尝试过imgs.beastfox.net这是所有文件所在的位置。希望我能为您提供所需的所有信息。如果您需要任何其他细节,我希望我能提供帮助。我会再次注意到我已经搜索过其他可能有帮助的文章的高低,但我似乎无法弄清楚我的问题。另外需要注意的是,如果有任何问题,我将通过Namecheap托管我的网站。

谢谢, 大卫

- 网站 -

imgs.beastfox.net/php/login.php

电子邮件:test@test.com

密码:测试

- 代码 -

<?php
    session_start();

    if(isset($_SESSION["id"]) || isset($_COOKIE["id"]))
    {
        header("Location: dashboard.php");
    }

    if(isset($_POST["login"]))
    {
        //Gather input variables
        $email = $_POST["email"];
        $password = $_POST["password"];
        //Hash password as pasword should be hashed in database for security reasons.  See md5 hashing
        $hash_password = md5($password);
        $remember_me = $_POST["remember_me"];




        //Connect to Database
$host="beastfox.net";      
$username="{username}"; 
$password="{password}"; 
$db_name="{username}_login"; 
$tbl_name="login"; 

$con = mysqli_connect("beastfox.net","{username}","{password}","{username}_login","login")or die("cannot connect"); 




        //Check database to see if email registered to DB
        $sql = "SELECT id FROM users WHERE email='$email' LIMIT 1";
        $query = mysqli_query($con, $sql);
        $count_users = mysqli_num_rows($query);

        if($count_users == 1)
        {

            //Retrieve user details to perform login
            $sql = "SELECT * FROM users WHERE email='$email' LIMIT 1";
            $query = mysqli_query($con, $sql);
            while($row = mysqli_fetch_array($query))
            {
                $user_id = $row["id"];
                $user_password = $row["password"];

            }


            if($hash_password == $user_password)
            {
                if($remember_me == 1)
                {
                    //Set Cookie
                    $cookie_name = "id";
                    setcookie($cookie_name, $user_id, time() + (86400 * 30), "/");

                    header("Location: dashboard.php");
                }
                else
                {
                    //Set Session
                    $_SESSION["id"] = $user_id;
                    header("Location: dashboard.php");
                }
            }
            else
            {
                $error = '<p class="error">Password incorrect.</p>';
            }
        }
        else
        {
            $error = '<p class="error">Email address not registered.</p>';
        }

        mysqli_close($con); 
?>
<!DOCTYPE html>
<html lang="en">
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no'/>
    <title>User Login</title>
    <link href="https://fonts.googleapis.com/css?family=Roboto:400,700,900" rel="stylesheet">

    <style type="text/css" media="screen">
        *{
            padding: 0;
            margin: 0;
            box-sizing: border-box;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            font-family: 'Roboto', sans-serif;
        }
        body, html{
            width: 100%;
            height: 100%;
        }

        body{
            position: relative;
            background: #2196f3; /* Old browsers */
            background: -moz-linear-gradient(top, #2196f3 0%, #1e88e5 40%, #1565c0 100%); /* FF3.6-15 */
            background: -webkit-linear-gradient(top, #2196f3 0%,#1e88e5 40%,#1565c0 100%); /* Chrome10-25,Safari5.1-6 */
            background: linear-gradient(to bottom, #2196f3 0%,#1e88e5 40%,#1565c0 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2196f3', endColorstr='#1565c0',GradientType=0 ); /* IE6-9 */
            copy

        }

        label{
            display: block;

        }



        form{
            position: absolute;
            top:50%;
            left: 50%;
            transform: translate(-50%,-50%);
            width: 40%;
            padding: 30px;
            background: #FFF;
            -moz-box-shadow: 0 1px 2px 0 rgba(0,0,0,0.15);
            -webkit-box-shadow: 0 1px 2px 0 rgba(0,0,0,0.15);
            box-shadow: 0 1px 2px 0 rgba(0,0,0,0.15);
            border-radius: 5px;
        }

        .css-input {
             padding: 7px 10px;
             font-size: 15px;
             border-width: 1px;
             border-color: #CCCCCC;
             background-color: #FFFFFF;
             color: #455A64;
             width: 100%;
             border-style: solid;
             border-radius: 0px;
             box-shadow: inset 0px 0px 4px rgba(66,66,66,.14);
        }
         .css-input:focus {
             outline:none;
        }

        form p{
            display: block;
            margin-bottom: 20px;
        }

        .clear{
            clear: both;
        }

        .btn {
          background: #3498db;
          background-image: -webkit-linear-gradient(top, #3498db, #2980b9);
          background-image: -moz-linear-gradient(top, #3498db, #2980b9);
          background-image: -ms-linear-gradient(top, #3498db, #2980b9);
          background-image: -o-linear-gradient(top, #3498db, #2980b9);
          background-image: linear-gradient(to bottom, #3498db, #2980b9);
          -webkit-border-radius: 8;
          -moz-border-radius: 8;
          border-radius: 8px;
          text-shadow: 1px 1px 3px #666666;
          font-family: Arial;
          color: #ffffff;
          font-size: 17px;
          padding: 10px 25px 10px 25px;
          border: solid #1f628d 1px;
          text-decoration: none;
          margin-top: 20px;
          cursor: pointer;
        }

        .btn:hover {
          background: #3cb0fd;
          background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db);
          background-image: -moz-linear-gradient(top, #3cb0fd, #3498db);
          background-image: -ms-linear-gradient(top, #3cb0fd, #3498db);
          background-image: -o-linear-gradient(top, #3cb0fd, #3498db);
          background-image: linear-gradient(to bottom, #3cb0fd, #3498db);
          text-decoration: none;
        }

        h1{
            color: #455A64;
            font-size: 22px;
            line-height: 22px;
            padding-bottom: 10px;
            border-bottom:1px solid #e9e9e9;
            margin-bottom: 20px;
        }

        label{
            display: block;
            padding-bottom: 10px;
            color: #546E7A;
        }

        label.remember{
            display: inline-block;
            line-height: 20px;
            cursor: pointer;
        }

        label.remember input{
            float: left;
            margin-top: 5px;
        }

        label.remember span{
            font-size: 14px;
            color: #1194EA;
            text-decoration: underline;
            padding-left: 6px;
        }

        p.error{
            padding-bottom: 0;
            margin-bottom: 0;
            color: #F44336;
            padding-top: 15px;
        }
    </style>


    </head>
    <body>

        <form method="post" action="login.php">
            <h1>Login to Dashboard</h1>
            <p>
                <label for="email">User Email</label>
                <input type="email" name="email" required="required" id="email" class="css-input" placeholder="Enter Email Address"/>
            </p>


            <p>
                <label for="password">Password</label>
                <input type="password" name="password" required="required" class="css-input" id="password" placeholder="Enter Password"/>
            </p>

            <label for="remember_me" class="remember">
                <input type="checkbox" name="remember_me" id="remember_me" value="1"/>
                <span>Remember Me</span>
            </label>

            <div class="clear"></div>

            <button type="submit" name="login" class="btn">Login</button>

            <?= $error; ?>
        </form>
    </body>
</html>

MySQL Database (Dont know if this helps at all)

1 个答案:

答案 0 :(得分:3)

如果您打开错误报告,则可以验证错误消息。

将以下内容添加到php脚本的顶部。

<?php 

ini_set('error_reporting' -1);
ini_set('display_errors', 'on');

//...

结果:

  

警告:mysqli_connect()期望参数5为long,字符串为

您没有收到mysqli_connect_error消息的原因是您提供给mysqli_connect的参数无效。 See the manual

mysqli_connect($host, $username, $password, $database_name, $port, $socket);