новобранец
Новичок
Доброго времени суток.Я учусь на формах и благодаря помощи форума пришел, вот к такому результату:
forma.php
function.php
reg_log_content.php
Но никак не получается сравнить Логин и пароль с полями в Бд.Подскажите пожалуйста!
P.S Буду очень признателен вашему вниманию и советами по поводу улучшения кода.
forma.php
HTML:
<?php require('reg_log_content.php');?>
<form method="post" action="forma.php">
<p><b> Account:</b></p> <?php echo $err;?> <?php echo $error;?>
<p><B>Login:</B></p>
<input type="text" name="login" size="40" />
<p><B>Password:</B></p>
<input type="password" name="password" size="50"/>
<br/><br/>
<input type ="submit" name="submit" value="Enter"/>
</form>
PHP:
function clean($rows=""){
$rows = preg_replace('/<[^>]*>/',' ',$rows); // заменяем запрещенные символы на пустой символ
$rows=htmlspecialchars($rows,ENT_QUOTES); // преобразовать в Html сущности
$rows=trim($rows);//Очистить начало и конеч строки от пробелов
$rows=strip_tags($rows);// Удалить html и php теги
return $rows;
}
function check_lenght($rows,$min,$max){
$rows = (mb_strlen($rows) < $min || mb_strlen($rows) > $max);
return !$rows;
}
PHP:
require('function.php');
require('db.php');
//Проверка формы входа.
if(isset ($_POST['submit'])){
$error=''; // переменная ошибок.
$check=true;
$login = clean($_POST['login']);
$password=clean($_POST['password']);
//Если не пустые проверяем длину.
if(!empty ($login) && !empty ($password)){
$login=check_lenght($login,3,15);
$password=check_lenght($password,4,30);
if(!$login){
$error.="*Login incorect lenght min 3 max 15 <br/>";
$check=false;
}
if(!$password){
$error.="*Password incorect lenght min 4 max 30<br/>";
$check=false;
}
}
else{ // Если хоть одно поле пустое выводим сообщение.
$check= false;
$error.="*Please write empty fields";
}
//Если все правильно и без ошибок проверяем с записями в БД.
if($check){
$q_sql=mysqli_query($connection,"SELECT * FROM `users` WHERE `login` = '{$login}'");
$result_sql=mysqli_fetch_array($q_sql);
if(!$result_sql){
$error.="*Bad login!";
}
else{
if($result_sql['passowrd']==$password){
echo"слава богу!!!";
}
else{
$error.='*Bad password';
}
}
}
}
//Если данные отправляются не методом Пост передаем пустое значение.
else{
$_POST['name']=$_POST['password']=''";
}
P.S Буду очень признателен вашему вниманию и советами по поводу улучшения кода.