<?php
session_start();
$errmsg_arr = array();
$errflag = false;
// configuration
$dbhost = "localhost";
$dbname = "members";
$dbuser = "root";
$dbpass = "";
// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// new data
$email = $_POST['uemail'];
$password = $_POST['upassword'];
if($email == '') {
$errmsg_arr[] = 'You must enter your Email';
$errflag = true;
}
if($password == '') {
$errmsg_arr[] = 'You must enter your Password';
$errflag = true;
}
// query
$result = $conn->prepare("SELECT * FROM users WHERE email AND password");
$result->bindParam($email);
$result->bindParam($password);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
if($rows > 0) {
header("location: newfeeds.php");
}
else{
$errmsg_arr[] = 'Email and Password are not found';
$errflag = true;
}
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}
?>
<div id="openModal" class="modalDialog">
<div>
<a href="#close" title="Close" class="close">X</a>
<?php
if( isset($_SESSION['ERRMSG_ARR']) && is_array ($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
echo '<ul style="padding:0; color:red;">';
foreach($_SESSION['ERRMSG_ARR'] as $msg) {
echo '<li>',$msg,'</li>';
}
echo '</ul>';
unset($_SESSION['ERRMSG_ARR']);
}
?>
<form class="pop" method="post" action="login.php">
<p class="login">LOGIN</p>
<div class="form-group">
<div class="left-inner-addon "><i class="fa fa-envelope-o fa-fw"></i>
<input type="email" name="uemail" class="form-control" id="email" placeholder="Email" required>
</div>
</div>
<div class="form-group">
<div class="left-inner-addon"><i class="fa fa-key fa-fw"></i>
<input type="password" name="upassword" class="form-control" id="password" placeholder="Password" required>
</div>
</div>
<p>Forgot Password?</p>
<div class="form-group">
<button class="btn btn-default" role="button" name="login" id="login">LOGIN</button>
</div>
</form>
</div>
</div>
<!-- form-->
CREATE TABLE `users` (
`memberID` int(5) NOT NULL,
`username` varchar(65) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`gender` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
我发现到处都有同样的登录问题,不显示真实登录或错误登录。我已经输入了所有这些答案,但没有用。大多数情况下,注册器在加密密码方面工作得很好,并且它很好地存储在数据库中。关于登录表单,听起来很疯狂,我已经发布了很多次并更正它,但我想得到正确的答案。它应该在用户登录到另一个页面后重定向,我应该知道用户登录后可以存储在同一数据库的不同表中。
EX:用于注册用户(ID、用户名、电子邮件、密码、性别)
和 user_login 表(ID、电子邮件和密码)
。我对 sql 和 php 很陌生,但仍在努力寻找好的答案。请帮助并使用我输入的相同变量。
最佳答案
请正确绑定(bind)变量。
将您的查询更改为
$result = $conn->prepare("SELECT * FROM users WHERE email = :email AND password = :password");
$result->bindParam(':email', $email);
$result->bindParam(':password', $password);
关于php 登录不显示 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028784/