POST表单不使用PHP,使用Postman
这是会话的登录代码。Iam正在使用引导。代码没有重定向到index.html,当我在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
<?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更改登录名