Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для TVPNERO
9 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154

Не выполняется условие IF

11.03.2023, 13:13. Показов 1306. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет

Есть страница авторизации, есть запись в базе данных с логином Henry и Паролем 2222.
Если страница авторизации заполнена существующим логином и паролем, то при нажатии кнопки Отправить должно писать
Record found, если был отослан несуществуюший логин и пароль то должно вывести Профиль не найден.


Однако, что бы я не отослал выводится всегда Record found.


код страницы приветствия (файл php)

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE html>
<html>
<head>
    <title>Страница привестствия</title>
    <meta charset="UTF-8">
 
 
    
<style type="text/css">
        
         body{background: orange}
 
         form{
 
            background: black;
            color: white;
            width: 50%;
            height: 400px;
            position: relative;
            left: 20%;
            top: 180px;
         }
 
 
         .formtext{
                position: relative;
                left: 41%;
                top: 30px;
 
 
         }
 
 
          h1{
            position: relative;
            left: 23%;
            display:inline-block;
            width: 800px;
 
          }
 
     </style>
 
 
</head>
<body>
 
[PHP]<?php
 
                  echo "Php file works .";
 
 
?>[/PHP]
 
 
 
 
 
 
 
 
   <h1>Страница приветствия. Добро пожаловать !</h1>
 
<form action="controllers/bdconnect.php" method="post"> <br> 
 
 
               <div class="formtext">
                      <p>Форма входа</p>
    
            <p>Ваш ник</p>
    <input type="text" name="nick">
            <p>Пароль</p>
    <input type="text" name="password"> <br> <br>
    <input type="submit" name="send">
 
              </div>
 
</form>
 
 
 
 
</body>
</html>



Код обработчика формы авторизации

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require_once 'bd.php';
 
try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
   // echo "Connected to $dbname at $host successfully.";
} catch (PDOException $pe) {
    die("Could not connect to the database $dbname :" . $pe->getMessage());
}
 
 
 
 
 
$nick=$_POST['nick'];
$pass=$_POST['password'];
 
 
 
$database = "demosite";
 
 
// Устанавливаем соединение
$conn = mysqli_connect($servername, $username, $password, $database);
// Проверяем соединение
if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
}
 
// echo "Connected successfully";
 
 
$sql = "SELECT nick, password FROM profile WHERE nick='hhhh' AND password='hhhhhh';";
if (mysqli_query($conn, $sql)) {
      echo "Record found";
    
 
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
      echo "Профиль не найден";
}
mysqli_close($conn);

базу данных прикрепляю
Вложения
Тип файла: rar demosite.rar (800 байт, 0 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2023, 13:13
Ответы с готовыми решениями:

Не выполняется условие if
Здравствуйте! Подскажите пожалуйста почему не срабатывает вот это условие: if($id!=25 || $id!=26 || $id!=29) Если написать вот...

Не выполняется условие
Добрый день есть код регистрации пользователя! данный код работает но не выполняет одно условие а именно: /* reg user - регистрация...

Не выполняется условие
В приведённом коде почему-то не выполняется условие if. Данные приходят из формы. В переменной $name - имя поля, в $value - то, что...

23
Эксперт PHP
 Аватар для liris
5517 / 1200 / 164
Регистрация: 16.01.2023
Сообщений: 2,852
12.03.2023, 11:34
Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$sql = "SELECT nick, password FROM profile WHERE nick='Henry' AND password='2222'";
$resultt = mysqli_query($conn, $sql);
 
$rows = mysqli_fetch_all($resultt, MYSQLI_ASSOC);
 
$found = false;
 
foreach ($rows as $row) {   
    if (in_array('Henry', $row)) {
        $found = true;
        break;
    }
}
 
if ($found) {
    echo 'Профиль найден';
} else {
    echo 'Профиль не найден';
}
Добавлено через 1 час 7 минут
В целом у вас довольно много ошибок в подходе к разработке этого скрипта.
Представьте себе следующую ситуацию: вы отладили скрипт и подставляете ник и пароль из запроса, то есть у вас примерно такой код запроса:

PHP
1
$sql = "SELECT nick, password FROM profile WHERE nick='$nick' AND password='$pass'";
Вопрос. Что будет, если в переменной $nick окажется такое значение:

Code
1
Henry'; truncate profile --
Добавлено через 23 минуты
Ну или хотя бы такое:

Code
1
Henry'; --
1
 Аватар для TVPNERO
9 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
12.03.2023, 16:46  [ТС]
liris, Спасибо за ваш код - работает отлично.

И да. подход к разработке скрипта не очень то хорош, думаю нужно подумать об регулярных выражениях , нужно прописать чтоб была проверка sql запроса.

И как то защититься от попытки взломать БД через форму авторизации.
0
Эксперт PHP
 Аватар для liris
5517 / 1200 / 164
Регистрация: 16.01.2023
Сообщений: 2,852
12.03.2023, 17:54
Можно не изобретать велосипед, просто используйте подготовленные выражения:
https://www.php.net/manual/ru/... ements.php
1
 Аватар для TVPNERO
9 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,154
14.03.2023, 16:27  [ТС]
estic, тот код который я написал я хотел адресовать пользователю liris, не увидел ваш ник и поэтому вам и отправился код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2023, 16:27

Не выполняется условие
Доброго времени суток товарищи! Запустил видеоурок по PHP (знаю, знаю, нет ничего лучше книги и они тоже мною осваиваются), и там, учат...

Не выполняется условие
Имеется код, где должно с веб интерфейса заноситься в таблицу значения, которые я вписываю в поля, но не добавляется я проверял функцией...

Почему не выполняется условие?
Всем привет! Столкнулся со странной ситуацией, подскажите, куда копать. Есть условие, где мы сравниваем переменную $result. ...

Неверно выполняется условие
Доброго дня! В базе есть поле - aid, оно либо 0 либо 4 while($row = mysql_fetch_array($result)) { if ($row == 4) { ...

Не выполняется условие при true
$password = 'a a'; // содержит пробел if (!preg_match('#^*$#', $password) /* true - пробелы запрещены */) { throw new Alert('Ты не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru