Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更正我的index.php错误?_Php_Mysqli - Fatal编程技术网

如何更正我的index.php错误?

如何更正我的index.php错误?,php,mysqli,Php,Mysqli,这是我的代码,我正在尝试,如果我输入我的电子邮件并通过 在我的数据库(MySQL)中保存的位置将显示,如果我输入正确,它将显示我作为该电子邮件登录。所以我想你可以帮助我,我的编码哪里错了,顺便说一句,我是新的网络编程,所以,如果你教我最容易理解和最简单的方法,我会很棒 <?php $servername = "localhost"; $username = "root"; $password = "crazyjaguar"; $db = "getstarte

这是我的代码,我正在尝试,如果我输入我的电子邮件并通过 在我的数据库(MySQL)中保存的位置将显示,如果我输入正确,它将显示我作为该电子邮件登录。所以我想你可以帮助我,我的编码哪里错了,顺便说一句,我是新的网络编程,所以,如果你教我最容易理解和最简单的方法,我会很棒

<?php
    $servername = "localhost";
    $username = "root";
    $password = "crazyjaguar";
    $db = "getstarted";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password);

    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "Connected successfully";




    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    //  error_reporting(0);
        if ($_POST['email'] && $_POST['pwd']) {

            // escape
                $email = mysqli_real_escape_string($conn, $_POST['email']);
                $password = mysqli_real_escape_string($conn, $_POST['pwd']);
                // sql email and pass
                $sql = "SELECT email, password FROM gs_users";

                // query esql & espl
                $result = mysqli_query($conn, $sql);

                // fetch_array
                $row = mysqli_fetch_array($result,MYSQLI_BOTH);

                    if ($row['email'] != $email) {

                        die ("No $email registered yet!");
                    }
                    if ($row['password'] = $password) {

                        die ("Wrong $pmail!");
                    }
                        echo "You're logged in as $email";

                        mysqli_close($conn);
    }   
    }

    ?>


    <body>
    <h1>Log In</h1>

    <form action='' method='post'>

    <input type='email' name='email' placeholder='Email'>
    <input type='password' name='pwd' placeholder='Password'><br />
    <a href='forgot.php'>Forgost Password?</a><br />
    <input type='submit' name='signup' value='Signup Here!'><br />
    <input type='submit' name='login' value='LogIn'>
    </form>
    </body>

mysqli\u connect函数实际上可以接受4个参数。最后一个是数据库名称

语法将是

mysqli_connect(host,username,password,dbname);
尽管数据库名称是可选的,即使您不提供默认名称 将使用数据库

但你又一次指定了alerady

$db = "getstarted";
证明您没有包括数据库名称:)

然后可以使用
mysqli\u select\u db()
选择要查询的数据库


最后,我会要求您使用。

这里我假设您首先要检查电子邮件,如果电子邮件不存在,则会显示消息“电子邮件尚未注册”,如果电子邮件存在,则通过输入检查密码输入,如果密码匹配,则您将被登录

请用以下代码更改您的代码

<?php
    $servername = "localhost";
    $username = "root";
    $password = "crazyjaguar";
    $db = "getstarted";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $db);

    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "Connected successfully";




    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    //  error_reporting(0);
        if ($_POST['email'] && $_POST['pwd']) {

            // escape
                $email = mysqli_real_escape_string($conn, $_POST['email']);
                $password = mysqli_real_escape_string($conn, $_POST['pwd']);
                // sql email and pass
                $sql = "SELECT email, password FROM gs_users where email = $email";

                // query esql & espl
                $result = mysqli_query($conn, $sql);
                if (mysqli_num_rows($result) > 0)
                {
                    $row = mysqli_fetch_array($result,MYSQLI_BOTH);
                    if ($row['password'] == $password)
                    {
                        echo "You're logged in as $email";
                    }
                    else
                    {
                        die ("Invalid password!");       
                    }
                }
                else
                {
                    die ("No $email registered yet!");
                }
        }   
    }
    mysqli_close($conn);

    ?>


    <body>
    <h1>Log In</h1>

    <form action='' method='post'>

    <input type='email' name='email' placeholder='Email'>
    <input type='password' name='pwd' placeholder='Password'><br />
    <a href='forgot.php'>Forgost Password?</a><br />
    <input type='submit' name='signup' value='Signup Here!'><br />
    <input type='submit' name='login' value='LogIn'>
    </form>
    </body>

你能澄清一下问题是什么吗?它是否显示任何错误?您没有在mysqli_连接中添加db名称在mysqli中是否更好?它说mysqli对于初学者来说更容易理解。忽略初学者的情况!与mysqli函数相比,使用PDO有很多优点不,它很简单!假设您要插入!您可以尝试$stmt=$dbh->prepare(“插入到TABLENAME(name,value)值(:name,:value)”)$stmt->bindParam(':name',$name)$stmt->bindParam(':value',$value)$dbh是数据库对象。容易的?