Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.03.2025
Сообщений: 3
Другое

Дописать пару строк в php, по HTML коду

06.03.2025, 06:39. Показов 1484. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не могу разобраться.
Необходимо чтобы при авторизации, на той же странице, где располагается форма было сообщение при успешной авторизации "Выполнено успешно", при ошибке "Выполнено с ошибкой". Я ломала голову, нужно ли подсоединять php файл к html. Как я понимаю, нужно под форму подстроить фрагмент ниже:

Фрагмент:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if(isset($_SESSION['message'])){
    echo "
        <div>
            Ошибка
        </div>
    ";
}
else {
    echo "
        <div>
            Авторизовалась
        </div>
    ";
}
unset($_SESSION['message']);
КОДЫ

html:
PHP/HTML
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
<!DOCTYPE html>
<html lang="ru,en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
  <section class="authorization">
           <div class="AVTORIZ">
               <h2 id="successMessage">Выполнено успешно</h2>
               <h2 id="errorMessage">Выполнено с ошибкой</h2>
           </div>     
    <div class="tema">
      <div class="shapka">
        <h1>АВТОРИЗАЦИЯ</h1>
        <a href="#" id="themeToggle">
          <img id="toggleImage" src="assets/images/icon/dark-day.svg" alt="">
        </a>
      </div>
        <div class="voyty">
          <div class="vhod-box">
            <form action="assets/php/login.php" method="POST"> <!-- Путь к PHP-скрипту -->
              <div class="login">
                <input type="text" name="login" placeholder="ЛОГИН..." id="loginInput" required>
                <img src="assets/images/icon/basket.svg" alt="Очистить" id="clearIcon" style="cursor: pointer;">
              </div>
             <div class="password">
                        <input type="password" name="password" id="password" placeholder="ПАРОЛЬ...">
                        <div class="password-control" id="togglePassword"></div>
                    </div>
              <label>
                <input type="checkbox" name="coding-notes" class="real-checkbox" id="rememberMe">
                <span class="custom-checkbox"></span>Запомнить вход с этого устройства? 
               </label>                              
              <button type="submit">ВОЙТИ НА САЙТ</button>
            </form>
          </div>
  </section>
</body>
<script src="assets/js/js.js"></script>
</html>
php:
PHP/HTML
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
<?php
header ("Content-Type: text/html; charset=utf-8");
session_start();
 
include "php.php";
 
// Получаем данные из формы
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $login = $_POST['login'];
    $password = $_POST['password'];
 
    // // просто так
    // echo "Логин: $login<br>";
    // echo "Пароль: $password<br>";
 
    // Поиск пользователя в БД
    $sql = "SELECT * FROM users WHERE login = ?";
    $stmt = $conn->prepare($sql);
    if ($stmt === false) {
        die("Ошибка подготовки запроса: " . $conn->error);
    }
    
    $stmt->bind_param("s", $login);
    $stmt->execute();
    $result = $stmt->get_result();
 
    if ($result->num_rows > 0) {
        $user = $result->fetch_assoc();
        
        // Проверка пароля
        if ($password == $user['password']) {
            // Успешная авторизация
            $_SESSION['user_id'] = $user['id'];
            echo "Выполнено успешно";
            exit();
        } else {
            echo "Выполнено с ошибкой";
        }
    } else {
        echo "Пользователь не найден.";
    }
 
    $stmt->close();
} else {
    echo "Неверный метод запроса.";
}
?>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2025, 06:39
Ответы с готовыми решениями:

пару строк cgi в php
Здравствуйте уважаемые. С CGI не знаком, поэтому прошу помощи. Вот весь код cgi файла: use CGI; print &quot;Content-type:...

Файлы *.html с кодом <?php ... ?>
У меня такая проблема : файлы *.php нормально работают а файлы *.html с кодом &lt;?php ... ?&gt; не интерпритируется может я...

Неувязочка с выводом html кода из из php скрипта
&lt;TR&gt;&lt;TD&gt;&lt;A HREF=\&quot;../novosti/novosti.php\&quot; onMouseOver=\&quot;document.nov.src=\&quot;menu/menuknopanov2.gif\&quot;\&quot;...

6
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,798
06.03.2025, 07:26
Я бы вынес в функцию, чтоб избавиться от лишней вложенности if/else и проще было выходить из функции.. Смысл такой, операция выполняется полностью, либо кидает исключение.

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
function auth($login, $password): array
{
    $conn = getDb();
    // Поиск пользователя в БД
    $sql = "SELECT * FROM users WHERE login = ?";
    $stmt = $conn->prepare($sql);
    if ($stmt === false) {
        throw new RuntimeException("Ошибка подготовки запроса: " . $conn->error);
    }
 
    $stmt->bind_param("s", $login);
    $stmt->execute();
    $result = $stmt->get_result();
 
    if (!$user = $result->fetch_assoc()) {
        throw new DomainException('Пользователь не найден.');
    }
 
    if ($password !== $user['password']) {
        throw new DomainException('Пароль не верен');
    }
 
    return $user;
}
Тогда и подключение к БД нужно в функцию выносить, ну или принимать в качестве параметра.

Цитата Сообщение от Alectse Посмотреть сообщение
Как я понимаю, нужно под форму подстроить фрагмент ниже:
Только не ниже, а наоборот в самом верху, над html. В случае ошибки нужно же еще подставить введенные значения, хотя пароль можно лучше не выводить.

PHP/HTML
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
 
session_start();
 
// init
$form = [
    'login' => '',
    'password' => '',
];
 
$errors = [];
 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //load
    $form['login'] = trim($_POST['login'] ?? '');
    $form['password'] = $_POST['password'] ?? '';
 
    //validate
    if (empty($form['login'])) {
        $errors['login'] = 'Введите логин';
    }
 
    if (empty($form['password'])) {
        $errors['password'] = 'Введите пароль';
    }
 
    if (empty($errors)) {
        //action
 
        try {
            $user = auth($form['login'], $form['password']);
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['success_message'] = 'Успешно вошли';
            // обычно тут редирект, так как форма входа больше не нужна
            //либо на туже страницу, чтоб поменять метод запроса на GET и чтоб сбросилась форма
            header('Location: /cabinet/');
            exit;
        } catch (DomainException $e) {
            $_SESSION['error_message'] = $e->getMessage();
        }
 
    }
}
 
?>
 
<!DOCTYPE html>
<html lang="ru,en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<section class="authorization">
    <div class="AVTORIZ">
        <?php if ($successMessage = $_SESSION['success_message'] ?? ''):
            unset($_SESSION['success_message'])
        ?>
            <h2 id="successMessage"><?= $successMessage ?></h2>
        <?php endif ?>
 
        <?php if ($errorMessage = $_SESSION['error_message'] ?? ''):
            unset($_SESSION['error_message'])
            ?>
            <h2 id="errorMessage"><?= $errorMessage ?></h2>
        <?php endif ?>
    </div>
    <div class="tema">
        <div class="shapka">
            <h1>АВТОРИЗАЦИЯ</h1>
            <a href="#" id="themeToggle">
                <img id="toggleImage" src="assets/images/icon/dark-day.svg" alt="">
            </a>
        </div>
        <div class="voyty">
            <div class="vhod-box">
                <form action="assets/php/login.php" method="POST"> <!-- Путь к PHP-скрипту -->
                    <div class="login">
                        <input type="text" name="login" value="<?= htmlentities($form['login']) ?>" placeholder="ЛОГИН..." id="loginInput" required>
                        <img src="assets/images/icon/basket.svg" alt="Очистить" id="clearIcon" style="cursor: pointer;">
                        <?php if (!empty($errors['login'])): ?>
                            <p style="color: red"><?= $errors['login'] ?></p>
                        <?php endif ?>
                    </div>
                    <div class="password">
                        <input type="password" name="password" id="password" placeholder="ПАРОЛЬ...">
                        <div class="password-control" id="togglePassword"></div>
                        <?php if (!empty($errors['password'])): ?>
                            <p style="color: red"><?= $errors['password'] ?></p>
                        <?php endif ?>
                    </div>
                    <label>
                        <input type="checkbox" name="coding-notes" class="real-checkbox" id="rememberMe">
                        <span class="custom-checkbox"></span>Запомнить вход с этого устройства?
                    </label>
                    <button type="submit">ВОЙТИ НА САЙТ</button>
                </form>
            </div>
</section>
</body>
<script src="assets/js/js.js"></script>
</html>
Добавлено через 6 минут
Цитата Сообщение от Alectse Посмотреть сообщение
Как я понимаю, нужно под форму подстроить фрагмент ниже:
А я понял, вы про другой фрагмент кода. Ну да, передать сообщение можно через сессию. Только нужно же это сообщение туда положить.
0
0 / 0 / 0
Регистрация: 06.03.2025
Сообщений: 3
06.03.2025, 10:34  [ТС]
sad67man, я не понимаю код, который вы написали и страница почему-то ошибку на 15 строке

PHP/HTML
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
 
session_start();
 
// init
$form = [
    'login' => '',
    'password' => '',
];
 
$errors = [];
 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //load
    $form['login'] = trim($_POST['login'] ?? '');
    $form['password'] = $_POST['password'] ?? '';
 
    //validate
    if (empty($form['login'])) {
        $errors['login'] = 'Введите логин';
    }
 
    if (empty($form['password'])) {
        $errors['password'] = 'Введите пароль';
    }
 
    if (empty($errors)) {
        //action
 
        try {
            $user = auth($form['login'], $form['password']);
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['success_message'] = 'Успешно вошли';
            // обычно тут редирект, так как форма входа больше не нужна
            //либо на туже страницу, чтоб поменять метод запроса на GET и чтоб сбросилась форма
            header('Location: /cabinet/');
            exit;
        } catch (DomainException $e) {
            $_SESSION['error_message'] = $e->getMessage();
        }
 
    }
}
 
?>
<!DOCTYPE html>
<html lang="ru,en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" type="text/css" href="assets/css/main.css">
  <link rel="stylesheet" type="text/css" href="assets/css/fonts.css">
  <link rel="stylesheet" type="text/css" href="assets/css/media.css">
  <link rel="stylesheet" type="text/css" href="assets/css/dark.css">
  <link rel="icon" type="image/x-icon" href="assets/images/icon/logo.svg">
  <title>JS-Test | Project</title>
</head>
<body>
  <section class="authorization">
           <div class="AVTORIZ">
        <?php if ($successMessage = $_SESSION['success_message'] ?? ''):
            unset($_SESSION['success_message'])
        ?>
            <h2 id="successMessage"><?= $successMessage ?></h2>
        <?php endif ?>
 
        <?php if ($errorMessage = $_SESSION['error_message'] ?? ''):
            unset($_SESSION['error_message'])
            ?>
            <h2 id="errorMessage"><?= $errorMessage ?></h2>
        <?php endif ?>
    </div>    
    <div class="tema">
      <div class="shapka">
        <h1>АВТОРИЗАЦИЯ</h1>
        <a href="#" id="themeToggle">
          <img id="toggleImage" src="assets/images/icon/dark-day.svg" alt="">
        </a>
      </div>
      <div class="box">
        <div class="registr">
          <h2>Введите ник...</h2>
          <h2>Введите пароль...</h2>
          <a href="">Забыл пароль?</a>
          <h2>Регистрация</h2>
          <span>Если у вас нет аккаунта</span>
          <a href="">Зарегистрируйтесь тут.</a>
          <div class="registr" id="registrationSection" style="display: none;">
          <h2>Регистрация прошла успешно!</h2>
          <button id="logoutButton">Выйти</button>
        </div>
        </div>
        <div class="voyty">
          <div class="vhod-box">
            <form action="assets/php/login.php" method="POST"> <!-- Путь к PHP-скрипту -->
              <div class="login">
                <input type="text" name="login" placeholder="ЛОГИН..." id="loginInput" required>
                <img src="assets/images/icon/basket.svg" alt="Очистить" id="clearIcon" style="cursor: pointer;">
              </div>
             <div class="password">
                        <input type="password" name="password" id="password" placeholder="ПАРОЛЬ...">
                        <div class="password-control" id="togglePassword"></div>
                    </div>
              <label>
                <input type="checkbox" name="coding-notes" class="real-checkbox" id="rememberMe">
                <span class="custom-checkbox"></span>Запомнить вход с этого устройства? 
               </label>                              <!--не сохраняются данные пользователя, даже при выделении галочки -->
              <button type="submit">ВОЙТИ НА САЙТ</button>
            </form>
            <div class="icons-avt">
              <a href="#"><img src="assets/images/icon/wk.svg"></a>
              <a href="#"><img src="assets/images/icon/discord.svg"></a>
              <a href="#"><img src="assets/images/icon/steam.svg"></a>
              <a href="#"><img src="assets/images/icon/google.svg"></a>
            </div>
          </div>
        </div>
      </div>
    </div>
  </section>
</body>
<script src="assets/js/js.js"></script>
</html>
0
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,798
06.03.2025, 11:03
Цитата Сообщение от Alectse Посмотреть сообщение
я не понимаю код, который вы написали
Тогда он у вас не заработает)

Цитата Сообщение от Alectse Посмотреть сообщение
и страница почему-то ошибку на 15 строке
Текст ошибки? Какая у вас версия php?
0
0 / 0 / 0
Регистрация: 06.03.2025
Сообщений: 3
06.03.2025, 11:33  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение
Тогда он у вас не заработает)
не заработает?

я чуть поменяла код, из-за того что версия php в sublime 7, он не считывает "??"
PHP/HTML
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
<?php
 
session_start();
 
// init
$form = [
    'login' => '',
    'password' => '',
];
 
$errors = [];
 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    //load
    $form['login'] = trim($_POST['login'] ?: '');
    $form['password'] = $_POST['password'] ?: '';
 
    //validate
    if (empty($form['login'])) {
        $errors['login'] = 'Введите логин';
    }
 
    if (empty($form['password'])) {
        $errors['password'] = 'Введите пароль';
    }
 
    if (empty($errors)) {
        //action
 
        try {
            $user = auth($form['login'], $form['password']);
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['success_message'] = 'Успешно вошли';
            // обычно тут редирект, так как форма входа больше не нужна
            //либо на туже страницу, чтоб поменять метод запроса на GET и чтоб сбросилась форма
            header('Location: /cabinet/');
            exit;
        } catch (DomainException $e) {
            $_SESSION['error_message'] = $e->getMessage();
        }
 
    }
}
 
?>
<!DOCTYPE html>
<html lang="ru,en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" type="text/css" href="assets/css/main.css">
  <link rel="stylesheet" type="text/css" href="assets/css/fonts.css">
  <link rel="stylesheet" type="text/css" href="assets/css/media.css">
  <link rel="stylesheet" type="text/css" href="assets/css/dark.css">
  <link rel="icon" type="image/x-icon" href="assets/images/icon/logo.svg">
  <title>JS-Test | Project</title>
</head>
<body>
  <section class="authorization">
           <div class="AVTORIZ">
        <?php if ($successMessage = $_SESSION['success_message'] ?: ''):
            unset($_SESSION['success_message'])?>
        <?php endif; ?>
            <h2 id="successMessage"><?= $successMessage ?></h2>
 
        <?php if ($errorMessage = $_SESSION['error_message'] ?: ''):
            unset($_SESSION['error_message'])?>
            <h2 id="errorMessage"><?= $errorMessage ?></h2>
        <?php endif ?>
    </div>
ОШИБКА:
Parse error: syntax error, unexpected ':', expecting '{' in C:\OSPanel\domains\localhost\JS\assets\p hp\login.php on line 47
0
 Аватар для sad67man
2598 / 1502 / 689
Регистрация: 23.08.2015
Сообщений: 3,798
06.03.2025, 11:50
Цитата Сообщение от Alectse Посмотреть сообщение
версия php в sublime 7
В 7 версии доступен этот оператор. Это нужно смотреть не в редакторе.
https://www.php.net/manual/ru/function.phpinfo.php
Создайте отдельный файл для этого.
0
Заблокирован
06.03.2025, 12:36
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
session_start();
// init
$form = [
    'login' => '',
    'password' => '',
];
 
$errors = [];
 
 
 
if (isset($_POST['login']) && isset($_POST['password'])) {
//load
    $form['login'] = trim($_POST['login']);
    $form['password'] = $_POST['password'];
//validate
    if (empty($form['login'])) {
        $errors['login'] = 'Введите логин';
    }
 
    if (empty($form['password'])) {
        $errors['password'] = 'Введите пароль';
    }
 
    if (empty($errors)) {
//action
 
        try {
            $user = auth($form['login'], $form['password']);
            $_SESSION['user_id'] = $user['id'];
            $_SESSION['success_message'] = 'Успешно вошли';
// обычно тут редирект, так как форма входа больше не нужна
//либо на туже страницу, чтоб поменять метод запроса на GET и чтоб сбросилась форма
            header('Location: /cabinet/');
            exit;
        } catch (DomainException $e) {
            $_SESSION['error_message'] = $e->getMessage();
        }
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2025, 12:36
Помогаю со студенческими работами здесь

Не вставляется php код в html
Всем привет. Пытаюсь запустить следующий код из файла two.htm: &lt;html&gt; &lt;body&gt; &lt;?php echo &quot;hello&quot;;?&gt; &lt;/body&gt;...

Запись в файл HTML кода PHP
Дан файл HTML, нужен PHP скрипт который записывает в этот файл PHP код, с целью его дальнейшего исполнения в нем.

Совмещение кода HTML и PHP
Необходимо совместить код: &lt;form action=&quot;.&quot; method=&quot;post&quot;&gt; &lt;textarea name=&quot;text&quot;&gt;&lt;/textarea&gt; &lt;input type=&quot;submit&quot;...

Код html или php для формы обратной связи
форма обратной связи!! подскажите плиз код html или php для формы обратной связи в моём случае форма для заявки в интернет...

Внедрение сценария PHP в код HTML
Используя функцию со статической переменной, вывести на экран числа от 1 до 50. Помогите пожалуйста, че то не получается!


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru