Я новичок в php, и я создал простую систему входа с php и mysqli для моего веб-сайта, однако мой код не проверяет такие, как «имя пользователя не существует», и я не уверен, как сделать учетную запись для пользователя так, чтобы это индивидуально. Мой код в 3 файлах и все связаны. connection.php содержит session_star(); и подключение к базе данных Homepage.php - что наПростой php-логин с mysqli не проверяется?
<?php
include 'login.php';
?>
<section>
<img id="image1" src="homepic.jpg" alt="logo" />
</section>
LoginForm.php
<link rel="stylesheet" href="homecss.css"/>
<div id="form">
<h2>Login</h2>
<form method="post" action="loginSubmit.php">
User Name: <br/>
<input type="name" name="username" type="text" /><br />
Password: <br/>
<input id="password" name="password" type="password" /><br />
<input type="submit" name="logsubmit" value="Login" />
</form></div>
login.php появляется форма
<link rel="stylesheet" href="homecss.css"/>
<?php
include './connection.php';
?>
<div id="form">
<?php
if(!isset($_SESSION['authenticatedusername'])){
include './loginform.php';
if (!empty($_POST['username'])) {
echo "Username is required";
}
if (!empty($_POST['password'])) {
echo "Password is required";
}
}
else{
echo 'welcome '. $_SESSION['authenticatedusername'];
echo '<br/><a href ="logout.php"> logout </a>';
echo '<br/><a href ="account.php"> My account </a>';
//check to see if error message is to be displayed
if (isset($_SESSION['message'])){
echo $_SESSION['message']="login failed";
}
?>
</div>
loginSubmit.php
<?php
include "connection.php";
if(isset($_POST['logsubmit'])){
$user=$_POST['username'];
$pass=$_POST['password'];
$query= "SELECT * FROM users WHERE user_name='$user' AND user_password='$pass'";
$result=mysqli_query($connection, $query);
if ($row = mysqli_num_rows($result) >0){
$_SESSION['authenticatedusername']=$user;
header ("Location: homepage.php");
} else{
echo $_SESSION['message'];
header("Location: homepage.php");
}
}
?>
Ваш код уязвим для SQL-инъекций; вы должны прочитать [как предотвратить их в PHP] (http://stackoverflow.com/q/60174/53114). – Gumbo