无法使用mysqli_connect()连接到数据库 [英] Cannot connect to database using mysqli_connect()

查看:92
本文介绍了无法使用mysqli_connect()连接到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,自从我放弃一段时间以来,我决定再次开始研究编码,我一直在尝试为我的网站创建一个PHP Login系统.而且,每次尝试登录时,都会使用or或die函数测试是否存在问题,从而显示连接错误,指出无法连接".通常我总是很遗憾地发现这种情况.我环顾了其他一些问题/有类似问题的人.但是可悲的是,我似乎无法找出问题,也无法找到解决方案.我查看了我的脚本,似乎没有任何问题.我最好的猜测是由于我的MySQL数据库.但老实说,我确实不确定.如果你们中的任何一个可以给我一些建议,那就太好了.谢谢,

So i've decided to start looking into coding again since I gave up on it for a while, I've been attempting to create a PHP Login system for my website. And everytime I attempt to login I get a connection error stating "Failed To Connect" by using the or die function to test if there are, issues. Which normally I always find to be the case sadly. I had a look around at a few other questions/people who had similar issues. But sadly I can't seem to identify a problem nor find a solution from doing so. I've looked over at my script and there doesn't seem to be any issues. My best guess is its due to my MySQL Database. But honestly, i'm truly unsure. If any of you could give me some advise on what to do it'd be great. Thanks,

还要提一下,我在PHP网站上环顾四周,看看是否可以添加一些可能的功能来确定问题,但我无法.我不确定这是否是一个愚蠢的问题,但是除了使用死/退出之外,还有其他方法可以做到这一点吗?我也尝试做imgs.beastfox.net,这是所有文件的位置.希望我能给您所有需要的信息.如果您需要任何其他详细信息,希望能为您提供帮助.我将再次指出,我在其他文章中搜索过可能会有所帮助的东西,但似乎无法弄清我的问题.还要注意的另一件事是,如果有任何问题,我将通过Namecheap托管我的网站.

To mention also I looked around on the PHP website to have a look if there were any possible functions I could add to identify the issue but I was unable to. Im not sure if it's a stupid question to ask but is there a way to do this apart from just using die/exit? I also tried doing imgs.beastfox.net Which is where the location of all the files are located. Hope I gave you all the information needed. If you need any other details I hope I can help out. I will note again I have searched high and low for other articles that might help but I can't seem to figure out my problem. Another thing to note is I am hosting my website by Namecheap if that's any concern.

谢谢, 大卫

-网站-

imgs.beastfox.net/php/login.php

imgs.beastfox.net/php/login.php

Email:test@test.com

Email: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>

推荐答案

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

If you turn on error reporting you can validate the error message.

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

Add the following to the top of your php script.

<?php 

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

//...

结果:

警告:mysqli_connect()期望参数5长,并给出字符串

Warning: mysqli_connect() expects parameter 5 to be long, string given

之所以没有收到mysqli_connect_error消息,是因为您提供给mysqli_connect的参数无效. 参见手册.

The reason you do not receive a mysqli_connect_error message, is that the arguments you supplied to mysqli_connect are invalid. See the manual.

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

这篇关于无法使用mysqli_connect()连接到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆