<?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 :适用于注册users (id, username, email, password, gender)
和user_login table (id, email and password)
。我是sql和php的新手,仍然在努力获得好的答案。请帮助并使用我输入的相同变量。
答案 0 :(得分:0)
请正确绑定变量。
将您的查询更改为
$result = $conn->prepare("SELECT * FROM users WHERE email = :email AND password = :password");
$result->bindParam(':email', $email);
$result->bindParam(':password', $password);