С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53

Проверка корректности данных в форме на php

10.02.2013, 12:10. Показов 2083. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите не могу понять в чем проблем, когда я ввожу данные мне он пишет в что не которые поля заполнены не корректно и добавляет книгу в базу, а как сделать так чтобы он смог добавить только когда все поля заданы правильно
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
77
78
79
80
81
82
83
84
85
86
87
88
89
<div align="center"><b><font size="6">Добавление книги</font><br /></b></div><br />
 
<?php
if (!empty($_POST["button_newbook"])) {
         
        
 
$title = stripslashes($_POST["title"]);
   $title = html_entity_decode($_POST["title"]);
   $title = strip_tags($_POST["title"]);
$intro_text = stripslashes($_POST["intro_text"]);
   $intro_text= html_entity_decode($_POST["intro_text"]);
   $intro_text = strip_tags($_POST["intro_text"]);
$full_text = stripslashes($_POST["full_text"]);
   $full_text = html_entity_decode($_POST["full_text"]);
   $full_text = strip_tags($_POST["full_text"]);
$identifier = stripslashes($_POST["identifier"]);
   $identifier = html_entity_decode($_POST["identifier"]);
   $identifier = strip_tags($_POST["identifier"]);
 
    if (($title != "") or ($intro_text != "") or ($full_text != "") or ($identifier != "")  or ($identifier != ""))
{
   if ((strlen($title) >= 2) and (strlen($title) <= 25)) { $success = false; 
   echo '<p>Вы невелли данные в поле Название</p>';}
   else if ((strlen($intro_text) >= 3) and (strlen($intro_text) <= 35)) {  $success = false; 
   echo '<p>Вы невелли данные в поле автор</p>';}
   else if ((strlen($full_text) >= 3) and (strlen($full_text) <= 35)) {  $success = false; 
   echo '<p>Вы невелли данные в поле описание</p>';}
   else if ((strlen($identifier) != "14596")) $success = false;   
   echo '<p>Не правильный идентификатор</p>'; 
   $success = addArticle($_POST["title"], $_POST["intro_text"], $_POST["full_text"], $_POST["identifier"]); }
   
 
 if ($success) {
            echo '<div align="center"><font color="#008000" size="4">Ваша книга успешно добавлена на сайт.</font></div><br />';
        $success = false;
}
        elseif(isset($_POST["button_newbook"])) 
            echo '<div align="center"><font color="#FF0000" size="4">Пожалуйста заполните все поля со <font color="#FF0000">*</font></font></div><br />';
    }
    
 
?>
<?php 
Error_Reporting(E_ALL & ~E_NOTICE);
    
?>  
<div>
    <form enctype="multipart/form-data" name="newbook" method="post" action="">
        <table width="400px" cellspacing="0" cellpadding="0" border="0">
            <tr>
                <td><b>Название</b><font color="#FF0000">*</font>:
                </td>               
                <td>
                    <input id="title" type="text" name="title" />
                </td>
            </tr>
            <tr>
                <td><b>Автор</b><font color="#FF0000">*</font>:
                </td>               
                <td>
                    <textarea name="intro_text" cols="40" rows="5"></textarea>
                </td>
            <tr>
                <td><b>Полный текст</b><font color="#FF0000">*</font>:
                </td>               
                <td>
                    <textarea name="full_text" cols="40" rows="5"></textarea>
                </td>
            </tr>
                
            <tr>
                <td><b>Введите ваш идентификатор</b><font color="#FF0000">*</font>:
                </td>               
                <td>
                    <input type="password" name="identifier"/>
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                <input type="submit" name="button_newbook" value="Добавить книгу"  />
                <input type="reset" value="сброс">
                </td>
<br />
            </tr>
        </table>
    </form>
и вот файл functions.php в которой находиться

PHP
1
2
3
4
5
6
7
    function addArticle($title, $intro_text, $full_text) {
        global $mysqli;
        connectDB();
        $success = $mysqli->query("INSERT INTO `articles` (`title`, `intro_text`, `full_text`) VALUES ('$title', '$images', '$intro_text', '$full_text')");
        closeDB();
        return $success;
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2013, 12:10
Ответы с готовыми решениями:

Проверка корректности заполнения данных на форме
Доброго времени суток! Интересует, как правильно проверять корректность заполнения данных на форме. Например, на форме имеется...

Проверка корректности данных
Помогите написать код, который запретит вводить в StringGrid буквы, запятые, точки.

Проверка корректности данных
Вводятся числа. Необходимо проверить, что данные введены действительно числового формата (double, например). Если вводятся буквы, другие...

17
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
10.02.2013, 12:20
в 31 строку в нало добавьте else
PHP
1
else $success......
1
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
10.02.2013, 12:22  [ТС]
Тогда выдает такую ошибку Parse error: syntax error, unexpected T_ELSE in Z:\home\*******\www\newbook.php on line 31
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
10.02.2013, 12:30
PHP
1
2
3
4
 else if ((strlen($identifier) != "14596")) {$success = false;   
   echo '<p>Не правильный идентификатор</p>'; }
   else
$success = addArticle($_POST["title"], $_POST["intro_text"], $_POST["full_text"], $_POST["identifier"]); }
Добавлено через 54 секунды
на 29 и 30 строках еще фигурные скобки добавьте
1
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
10.02.2013, 12:33  [ТС]
Теперь как то странно я ввожу данные в строку название и после отправки формы пишет мне что не ввел данные в эту строку
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
10.02.2013, 13:47
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (!empty($title) or !empty($intro_text) or !empty($full_text) or !empty($identifier)) {
        
        if ((strlen($title) >= 2) and (strlen($title) <= 25)) {
            $success = false;
            echo '<p>Вы невелли данные в поле Название</p>';
        } elseif ((strlen($intro_text) >= 3) and (strlen($intro_text) <= 35)) {
            $success = false;
            echo '<p>Вы невелли данные в поле автор</p>';
        } elseif ((strlen($full_text) >= 3) and (strlen($full_text) <= 35)) {
            $success = false;
            echo '<p>Вы невелли данные в поле описание</p>';
        } elseif ((strlen($identifier) != "14596")) {
            $success = false;
            echo '<p>Не правильный идентификатор</p>';
        } else {
            $success = addArticle($_POST["title"], $_POST["intro_text"], $_POST["full_text"], $_POST["identifier"]);
        }
    }
0
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
10.02.2013, 16:20  [ТС]
Все равно мне пишет что что я типа не ввел название в форму, хотя я все ввел
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
10.02.2013, 16:56
Цитата Сообщение от poleshukov Посмотреть сообщение
Все равно мне пишет что что я типа не ввел название в форму, хотя я все ввел
это потому что у вас там условие больше двух символов и меньше 25 , со знаками разберитесь
0
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
10.02.2013, 17:11  [ТС]
Но я набираю 6 букв и все равно пишет что оно не заполнено
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
10.02.2013, 19:38
ну так вот и пишет так потому что условие выполняется, вам нужно знаки там на противопожные поменять что бы попадали в блок если данные введены неправильно, а сейчас условие написано так что вы попадете в блок если все правильно
0
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
10.02.2013, 21:50  [ТС]
Я все сделал и все получилось только появилась проблема у меня в коде написан код идентификатора else if ((strlen($identifier) != "14596")) $success = false; когда я ввожу его в форме, потом мне пишет что не правильный
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
11.02.2013, 05:33
ну когда введете ровно 14596 символов тогда напишет что правильный
0
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
11.02.2013, 09:44  [ТС]
А как тогда сделать что бы надо было ввести именно это число
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
11.02.2013, 10:03
ну если вы хотите проверять, что бы в поле именно было введено это число то тогда не нужно никаких дополнительных функций типо strlen
PHP
1
elseif ($identifier != 14596)...
1
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
11.02.2013, 11:39  [ТС]
Можно сделать так что бы этих чисел было много, чтобы вводить надо было не одно и то же число а разные
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
11.02.2013, 13:53
ну конечно можно, делаете рандомное число при помощи mt_rand, выводите его в форме и запоминаете в сессии, а потм проверяете совпадает ли значение введеное в форме с тем которое находится в сессии, но только перед тем как работать с сессиями прочитайте эту тему, потому что с вашим стилем кодирования это врядли получится
0
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
11.02.2013, 14:10  [ТС]
нет я хочу что бы я заранее написал там числа которые надо вводить
0
0 / 0 / 0
Регистрация: 27.07.2012
Сообщений: 53
05.03.2013, 19:58  [ТС]
Помогите, нужна помощь, как сделать что бы после того как мы нажали на кнопку submit все данные из формы после проверки пропали
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2013, 19:58
Помогаю со студенческими работами здесь

Проверка корректности введенных данных
Всем привет. Есть задача: Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц...

Проверка корректности ввода данных
На форме 3 поля. 1 поле: Кол-во груза на складе 2 поле: Кол-во увезенного груза 3 поле: (вычисляемое: 1 поле-2 поле) Кол-во...

Проверка корректности введенных данных
Здравствуйте, возникла такая проблема - в программе, на языке Си, необходимо реализовать проверку корректности введенных пользователем...

Проверка корректности ввода данных
Нужно обеспечить контроль корректности ввода данных. using System; using System.Collections.Generic; using System.Linq; using...

Проверка корректности вводимых данных
Есть программа на проверку високосного года. Преподаватель при проверке вводит &quot;5 Аотао&quot; к примеру и программа читает первое...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru