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

Некорректная обработка формы отправки данных

11.06.2024, 13:15. Показов 332. Ответов 0

Author24 — интернет-сервис помощи студентам
Здравствуйте. При нажатии на кнопку "Найти" выполняется PHP-скрипт, который получает данные из текстового поля и двух раскрывающихся списков.

Проблема в том, что данные из этих трёх объектов отправляют своё значение до появления первого пробела. Например, если в текстовом поле написать "слово1 слово2 слово3", то при выполнении php-скрипта значение этого текстового поля будет как "слово1". Ну а в случае с выпадающими списками: если, например, выбрать "Все жанры", то это будет обработано как "Все"

Подскажите пожалуйста как решить такую проблему?
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
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
<?php
$conn = new mysqli("localhost", "root", "root", "cinemaroll-db");
 
$searchName = trim($_POST['search-name']); // Получение данных из формы
$searchGenre = trim($_POST['search-genre']);
$searchStudio = trim($_POST['search-studio']);
 
$sql = ""; // Формирование SQL-запроса
if ($searchGenre == "Все жанры" and $searchStudio == "Все студии") {
    $sql = "SELECT * FROM titles WHERE title_name LIKE '%$searchName%' ORDER BY id DESC";
} elseif ($searchGenre != "Все жанры" and $searchStudio == "Все студии") {
    $sql = "SELECT * FROM titles WHERE title_name LIKE '%$searchName%' AND genre LIKE '%$searchGenre%' ORDER BY id DESC";
} elseif ($searchGenre == "Все жанры" and $searchStudio != "Все студии") {
    $sql = "SELECT * FROM titles WHERE title_name LIKE '%$searchName%' AND studio LIKE '%$searchStudio%' ORDER BY id DESC";
} else {
    $sql = "SELECT * FROM titles WHERE title_name LIKE '%$searchName%' AND genre LIKE '%$searchGenre%' AND studio LIKE '%$searchStudio%' ORDER BY id DESC";
}
 
$result = $conn->query($sql);
 
echo '<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CinemaRoll - новинки и классика кино всего мира!</title>
    <link rel="stylesheet" href="/css/titles.css">
    <link rel="icon" href="/img/ИконкаСайта.png">
</head>
<body>
    <header>
        <a href="index.php">
            <img src="/img/ЛогоСайта.png" alt="Лого сайта">
        </a>
        <ul class="nav">
            <li><a href="titles.php">Фильмы и сериалы</a></li>
            <li><a href="genres.php">Жанры</a></li>
            <li><a href="studios.php">Студии</a></li>
        </ul>
    </header>
    <h1>Найденные фильмы или сериалы</h1>
    <div class="container">
        <button onclick="window.location.href=\'titles.php\'">Вернуться</button>
        <input readonly type="text" value='.$searchName.'>
        <input readonly type="text" value='.$searchGenre.'>
        <input readonly type="text" value='.$searchStudio.'>
    </div>';
 
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    echo '<table>
    <tr>
    <td>Название</td>
    <td>'.$row["title_name"].'</td>
    </tr>
    <tr>
    <td>Жанр</td>
    <td>'.$row["genre"].'</td>
    </tr>
    <tr>
    <td>Студия</td>   
    <td>'.$row["studio"].'</td>
    </tr>
    <tr>
    <td>Кол-во серий</td>
    <td>'.$row["episodes"].'</td>
    </tr>
    </table>';
    }
} else {
    echo '<h1 style="font-size: 22px"><b>Ничего не найдено</b></h1>';
}
 
echo '</body>
</html>';
?>
Если необходимо, то вот код самой формы, отправляющей данный в вышеуказанный 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
<form method="post" action="script_titles.php">
        <div class="container">
            <button type="submit">Найти</button>
            <input type="text" placeholder="Введите название..." name="search-name">
            <select name="search-genre">
                <option>Все жанры</option>
                <?php
                $pdo = new PDO('mysql:host=localhost;dbname=cinemaroll-db;port=3306', 'root', 'root');
                $sql = 'SELECT * FROM genres';
                $query = $pdo->prepare($sql);
                $query->execute();
                $genre = $query->fetchAll(PDO::FETCH_OBJ);
                foreach($genre as $el){
                    echo '<option>'.$el->genre_name.'</option>';
                }
                ?>
            </select>
            <select name="search-studio">
                <option>Все студии</option>
                <?php
                $pdo = new PDO('mysql:host=localhost;dbname=cinemaroll-db;port=3306', 'root', 'root');
                $sql = 'SELECT * FROM studios';
                $query = $pdo->prepare($sql);
                $query->execute();
                $studio = $query->fetchAll(PDO::FETCH_OBJ);
                foreach($studio as $el){
                    echo '<option>'.$el->studio_name.'</option>';
                }
                ?>
            </select>
        </div>
    </form>
Добавлено через 29 минут
Увы, варианты обработки всяческими функциями (str_replace, preg_replace, urlencode) присвоения значений в searchName/Genre/Studio не работают. Оказалось нужно изменить вывод значений полей в HTML-коде, чтобы они были заключены в кавычки (в 44, 45 и 46 строки скрипта). Проблема решена. Может у кого-то всё "починится" таким же образом.
PHP
1
2
3
        <input readonly type="text" value="'.$searchName.'">
        <input readonly type="text" value="'.$searchGenre.'">
        <input readonly type="text" value="'.$searchStudio.'">
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.06.2024, 13:15
Ответы с готовыми решениями:

Обработка формы отправки письма
Здравствуйте, такая проблема, есть test.html(стандартная разметка+форма) и obr.php( функция mail()...

Обработка данных форм без отправки
Здравствуйте, есть форма записи ко врачу. Нужно при выборе даты тут же, без нажатия кнопок и...

Настройка отправки данных формы
Всём привет, скачал в интернете бесплатный шаблон сайта на html и не получается настроить отправку...

Форма отправки данных + модальное окно bootstrap + PHP обработка
Здравствуйте. Такая ситуация. У меня есть форма для отправки данных. В этой же форме хочу...

0
11.06.2024, 13:15
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.06.2024, 13:15
Помогаю со студенческими работами здесь

Формы ввода очищаются после отправки данных
Здравствуйте, я далек от php, но хотелось бы вникнуть во все это. У меня есть страница для...

Не работает скрипт отправки данных формы на email
&lt;form action=&quot;assests/index.php&quot; method=&quot;post&quot;&gt; Тип: &lt;select name=&quot;type size=&quot;1&quot;&gt; ...

Не видно данных в POST после отправки формы
Если неправильно выбрал раздел - перенесите пожалуйста. Сам не понимаю куда отнести потому что не...

Скрипт для отправки данных из формы на почту
Доброго времени суток.Первый раз пробую прикрутить форму для отправки данных на мэил и столкнулся с...

Скрипт для отправки данных из формы на почту
Здравствуйте, подскажите пожалуйста новичку скрипт для отправки данных из формы на почту...

Переход на страницу только после отправки данных формы
Приветствую! Есть страница с формой обратной связи - feedback.php. При отправке данных формы...

Почему не работает скрипт отправки данных из формы на сайте?
Ребят, подскажите где ошибка в скрипте отправки данных из формы? Он чего то работать не хочет... ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
[Golang] 121. Best Time to Buy and Sell Stock
alhaos 28.01.2025
В этой задаче мы получаем слайс целых чисел, которые означают цену акции в разные моменты времени, и должны вернуть максимально возможную прибыль от купли продажи акции. / / . . .
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru