Php 登录系统,读取id和密码,然后登录
现在我想做一个登录系统。我想检查表管理员,如果用户存在,然后如果是这样,让他登录。我确实对系统登录进行了编码,但它不起作用。欢迎提供任何建议或解决方案 致以最良好的问候Php 登录系统,读取id和密码,然后登录,php,mysql,validation,login,Php,Mysql,Validation,Login,现在我想做一个登录系统。我想检查表管理员,如果用户存在,然后如果是这样,让他登录。我确实对系统登录进行了编码,但它不起作用。欢迎提供任何建议或解决方案 致以最良好的问候 <?php ob_start(); session_start(); ?> <html lang="en"> <head> <title>Foredeck Login.com</title> <link href="css/bo
<?php
ob_start();
session_start();
?>
<html lang="en">
<head>
<title>Foredeck Login.com</title>
<link href="css/bootstrap.min.css" rel="stylesheet">
<style>
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #6495ED;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
color: #000000;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="text"] {
margin-bottom: 0 px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-color: #000000;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-color: #000000;
}
h3 {
text-align:;
color: #000000;
}
h1 {
text-align:;
color: #000000;
}
</style>
</head>
<body>
<div class="container form-signin">
<?php
include("bdconnect_Foredeck.php");
$link=Mysqli_connect($host,$login,$pass,$dbname);
$msg = '';
if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password'])) {
$Identifiant = $_POST['username'];
$MotPasse = $_POST['password'];
$recherche= "SELECT * FROM admin WHERE Identifiant ='$Identifiant' And Mdp_Admin='$MotPasse'";
mysqli_query($link,$recherche);
$result= mysqli_query($link,$recherche);
while($row = mysqli_fetch_assoc($result)){
$Identifiant = $row["Identifiant_Admin"];
$MotPasse = $row["Mdp_Admin"];
}
if ($_POST['username'] == $Identifiant['username'] && $_POST['password'] == $MotPasse['password']) {
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$_SESSION['username'] = 'foredeckadmin';
$msg ='Connexion Réussite';
echo "
<script type='text/javascript'>
alert('Connexion Réussite');
window.location = 'foredeck.php';
</script>";
header("refresh:3 location: foredeck.php");
}
else if ($_POST['username'] == 'Isabelle' && $_POST['password'] == 'Isabelle1'){
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$_SESSION['username'] = 'foredeckadmin';
$msg ='Connexion Réussite';
echo "
<script type='text/javascript'>
alert('Connexion Réussite');
window.location = 'foredeck_superadmin.php';
</script>";
header("refresh:3 location: foredeck_superadmin.php");
}
else {
$msg='Identifiant ou Mot de Passe incorrecte';
$msg = "
<script type='text/javascript'>alert('$msg')</script>";
}
}
?>
</div> <!-- /container -->
<div class="container">
<form class="form-signin" role="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<h4 class="form-signin-heading"><?php echo $msg; ?></h4>
<h1>Foredeck@Admin</h1>
<h3>Entrer l'identifant et le mot de passe:</h3>
<input type="text" class="form-control" name="username" placeholder="Identifiant " required autofocus><br/>
<input type="password" class="form-control" name="password" placeholder="Mot de passe" required>
<br>
<button class="btn btn-lg btn-primary btn-block" type="submit" name="login">
Se connecter
</button>
</form>
</div>
</body>
</html>
Foredeck Login.com
身体{
填充顶部:40px;
填充底部:40px;
背景色:#6495ED;
}
.表格签名{
最大宽度:330px;
填充:15px;
保证金:0自动;
颜色:#000000;
}
.表格签名.表格签名标题,
.表格签名.复选框{
边缘底部:10px;
}
.表格签名.复选框{
字体大小:正常;
}
.表格签名.表格控制{
位置:相对位置;
高度:自动;
-webkit框大小:边框框;
-moz框大小:边框框;
框大小:边框框;
填充:10px;
字体大小:16px;
}
.表单签名.表单控件:焦点{
z指数:2;
}
.表单登录输入[type=“text”]{
边缘底部:0像素;
边框右下半径:0;
边框左下半径:0;
边框颜色:#000000;
}
.表单登录输入[type=“password”]{
边缘底部:10px;
边框左上半径:0;
边框右上角半径:0;
边框颜色:#000000;
}
h3{
文本对齐:;
颜色:#000000;
}
h1{
文本对齐:;
颜色:#000000;
}
这是一个可以帮助你的系统。无论如何,这不是最安全的系统。
基本上,您必须创建一个数据库,其中包含登录网站/应用程序所需的任何信息
注意,我使用$_POST['email']作为用户名,使用$_POST['password']作为密码
<?php
session_start();
$host = ''; //HOST OF YOUR DATABASE;
$user = ''; //USERNAME TO ACCESS YOUR DATABASE;
$pass = ''; //PASSWORD TO ACCESS YOUR USERNAME;
$database = ''; //DATABASE TO CONNECT;
$conn = new mysqli($host,$user,$pass,$database);
if(isset($_POST["login"])) {
$email=$_POST["email"];
$sql = "SELECT * FROM users WHERE email='$email'";
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc()) {
if($row["password"]==md5($_POST["password"])) {
$_SESSION['your_site_username'] = $row['email'];
header("Location: YOUR PROFILE PAGE");
}
else {
$error = "Your password is incorrect.";
echo $error;
}
}
}
else {
$error = "There is no user with this email.";
echo $error;
}
?>
安全性
将新用户插入用户数据库时,需要使用MD5方法散列密码。
我建议您激活php.ini文件中的magic_quotes_gpc选项,以确保您不会成为SQL注入的受害者。类型转换也可以避免SQL注入,以下是文档:。
这可以帮助您:使用mysqli\u num\u rows
获取计数以了解用户名和密码是否存在
<?php
include("bdconnect_Foredeck.php");
//establishing connection
$link=mysqli_connect($host,$login,$pass,$dbname);
//display error in connection if any
if (mysqli_connect_errno())
{
echo “MySQLi Connection was not established: ” . mysqli_connect_error();
}
$msg = '';
if (isset($_POST['login']) && !empty($_POST['username']) && !empty($_POST['password']))
{
$Identifiant = $_POST["username"];
$MotPasse = $_POST["password"];
$recherche= "SELECT * FROM admin WHERE Identifiant ='$Identifiant' And Mdp_Admin='$MotPasse'";
$result= mysqli_query($link,$recherche);
$check_user = mysqli_num_rows($result);
//checks if the username and password exists
if($check_user>0){
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$msg ='Connexion Réussite';
//redirect to admin
if($_POST['username'] == 'Isabelle' && $_POST['password'] == 'Isabelle1'){
$_SESSION['username'] = $Identifiant;
echo "<script type='text/javascript'>alert('Connexion Réussite');
window.location='foredeck_superadmin.php'; </script>";
header("refresh:3 location: foredeck_superadmin.php");
}
else
{
//redirect to homepage
$_SESSION['username'] = 'foredeckadmin';
echo "<script type='text/javascript'>alert('Connexion Réussite');
window.location='foredeck.php'; </script>";
header("refresh:3 location: foredeck.php");
}
}
else {
//error message
$msg='Identifiant ou Mot de Passe incorrecte';
$msg = "<script type='text/javascript'>alert('$msg')</script>";
}
}
?>
在select
query中,您的意思是Mdp_Admin='$MotPasse'
而不是Mdp_Admin='MotPasse'
对吗?我想我需要存储变量来比较它们以便登录,对吗?这可能非常有帮助:是的..检查您的select查询where条件..变量名是$MotPasse..您在iti中错过了$I已更正它,但仍然不工作为什么不使用password\u hash()
和password\u verify()
进行密码哈希处理,而不是使用以前易于破解的方法md5@MasivuyeCokile这可能是一个解决方案,但正如我在开始时所说的,这是一个面向新PHP用户的简单脚本。我确实根据你的答案编辑了我的帖子,伙计们,请抢购。是的,我是php新手。警告:mysqli_fetch_array()希望参数1是mysqli_result,在101行的C:\wamp\www\Foredeck\login.php中给出布尔值:$row=mysqli_fetch_array($result)@affaz@A.V检查我的答案..我已编辑..您只需获取计数..P.S.这不是您出错的原因..但这对您来说更简单,开始时很好,我已经解决了错误,不管怎样@affaz您的代码也很好。@A.V谢谢…祝您好运:)