POST表单不使用PHP,使用Postman

POST表单不使用PHP,使用Postman,php,css,twitter-bootstrap,mysqli,Php,Css,Twitter Bootstrap,Mysqli,这是会话的登录代码。Iam正在使用引导。代码没有重定向到index.html,当我在Postman中测试它时,它可以工作,但在这个引导模板中不工作。我不明白原因?请帮忙 <?php if($_SERVER["REQUEST_METHOD"]=="POST") { $email=$_POST["email"]; $password=$_POST["password"]; $sql = "SELECT * FROM login where email='$email

这是会话的登录代码。Iam正在使用引导。代码没有重定向到index.html,当我在Postman中测试它时,它可以工作,但在这个引导模板中不工作。我不明白原因?请帮忙

<?php

if($_SERVER["REQUEST_METHOD"]=="POST") {
    $email=$_POST["email"];
    $password=$_POST["password"];

    $sql = "SELECT * FROM login where email='$email' and password='$password'";

    $result = mysqli_query($conn,$sql);
    $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    if ($count>0) {

        // output data of each row
        if($row['admin_role']==1) {
            //$_SESSION["email"]=$email;
            //$_SESSION["id"]=$row['user_id'];

            //echo "Login successfull";

            header('Location: index.html');
            exit; 
        }
    } else {
        echo "0 results";
    }
}

?>


<div class="row">
    <div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2 col-md-4 col-md-offset-4">
        <div class="login-panel panel panel-default">
            <div class="panel-heading"> Admin Log in</div>
            <div class="panel-body">
                <form role="form">
                    <fieldset>
                        <div class="form-group">
                            <input class="form-control" placeholder="E-mail" name="email" type="email" autofocus="">
                        </div>
                        <div class="form-group">
                            <input class="form-control" placeholder="Password" name="password" type="password" value="">
                        </div>
                        <div class="checkbox">
                            <label>
                                <input name="remember" type="checkbox" value="Remember Me">Remember Me
                            </label>
                        </div>
                        <a href="" class="btn btn-primary">Login</a>
                    </fieldset>
                </form>
            </div>
        </div>
    </div><!-- /.col-->
</div><!-- /.row --> 

您的表单是一个GET表单,您需要在标记上设置method=POST

除此之外,您的代码非常容易受到攻击,您应该对数据库中的密码进行哈希运算,您应该使用PDO,因为它更安全,您还应该使用准备好的语句并关闭模拟语句


目前,您的代码易受SQL注入攻击,SQL注入是web应用程序最基本但最危险的安全威胁之一。

过度编码是正确的,顺便说一下,在赋值之前,您应该检查isset中的两个POST变量: 如果设置了$u POST[电子邮件]&设置了$u POST[密码]{ //布拉布拉
}

您忘记了提交按钮,忘记了表单方法和类型,因此: action=告诉您,它们来自同一个php文件。 这是一个非常重要的变化: $email=$_POST[email]; 在…上 $email=strip_tags$_POST[email]

了解带标签功能:

<div class="row">
<div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2 col-md-4 col-md-offset-4">
    <div class="login-panel panel panel-default">
        <div class="panel-heading"> Admin Log in</div>
        <div class="panel-body">
            <form role="form" action="#" method="post">
                <fieldset>
                    <div class="form-group">
                        <input class="form-control" placeholder="E-mail" name="email" type="email" autofocus="">
                    </div>
                    <div class="form-group">
                        <input class="form-control" placeholder="Password" name="password" type="password" value="">
                    </div>
                    <div class="checkbox">
                        <label>
                            <input name="remember" type="checkbox" value="Remember Me">Remember Me
                        </label>
                    </div>
                    <button type="submit" class="btn btn-primary">Login</button>
                </fieldset>
            </form>
        </div>
    </div>
</div><!-- /.col-->
我想

步骤1:您可以使用POST设置表单方法,如method=POST和use按钮类型submit not use anchor和type=button对表单发送的数据无效。仅使用submit按钮

步骤2:您可以使用输入字段的条件进行登录。isset表示fieldPHP函数的数据不为空,在这两种情况下均使用&&

步骤3:如果可以在会话中存储数据,则需要启动会话会话。如果无法启动会话,则无法存储数据

if(isset($_POST["email"]) && isset($_POST["password"])) {
    $email    = trim($_POST["email"]);
    $password = trim($_POST["password"]);


    $sql = "SELECT * FROM login where email='$email' and password='$password'";

    $result = mysqli_query($conn,$sql);
    $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
    $count = mysqli_num_rows($result);

    if ($count>0) {

        // output data of each row
        if($row['admin_role']==1) {

            //session_start();
            //$_SESSION["email"] = $email;
            //$_SESSION["id"]    = $row['user_id'];

            //echo "Login successfull";

            header('Location: index.html');
        }
    } else {
        echo "0 results";
    }
}



<div class="row">
    <div class="col-xs-10 col-xs-offset-1 col-sm-8 col-sm-offset-2 col-md-4 col-md-offset-4">
        <div class="login-panel panel panel-default">
            <div class="panel-heading"> Admin Log in</div>
            <div class="panel-body">
                <form role="form" action="" method="POST">
                    <fieldset>
                        <div class="form-group">
                            <input class="form-control" placeholder="E-mail" name="email" type="email" autofocus="">
                        </div>
                        <div class="form-group">
                            <input class="form-control" placeholder="Password" name="password" type="password" value="">
                        </div>
                        <div class="checkbox">
                            <label>
                                <input name="remember" type="checkbox" value="Remember Me">Remember Me
                            </label>
                        </div>
                        <button type="submit" class="btn btn-primary">Login</button>
                    </fieldset>
                </form>
            </div>
        </div>
    </div><!-- /.col-->
</div><!-- /.row --> 

好的,但我看不到任何形式的GET单词?您能告诉我行吗。@TariqZiad您没有在上指定method属性,因此它默认为GET。您需要至少添加该属性,而不是更改它。请参阅@TariqZiad->@TariqZiad define not working的开始标记。如果按钮不起任何作用,请尝试添加type=submit toit@TariqZiad更改登录名