Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проверка введённых данных.


Автор: The MASTER 2.7.2005, 23:50
Привет, у меня есть функция:
Код

function saveconfig() {
if (isset($_POST)) {
    $INFO = $_POST['data'];
    $f = fopen('base.php', 'wb');
    fwrite($f, '<? $INFO = '.var_export($INFO, 1).' ?>');
    fclose($f);
}
}


Скажите пожалуйста как мне сделать проверку введены ли данные в определённые поля такие как data[password], data[password2] как сравнить эти поля равны ли они друг другу если нет то вывести сообщение если верны то проверить заполнены ли остальные поля а потом перейти на другую страницу при помощи:
echo"<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php?a=2'>";

Автор: PARROT 3.7.2005, 08:36
The MASTER, Вы проверяли работоспособность своей функции?
Печатали то, что выдает вам $INFO?
Мой вариант конечно проще чем ваш, но рабочий:
Код

<?php
ob_start();
?>
<html>
<head></head>
<body>
<?php
if (isset($_POST['send'])) {
         if(empty($_POST['name'])||empty($_POST['family']) ) {
          echo"<center><h3><font color=red>Заполните все поля!</font></h3></center>";
                      exit;
            }
    $f = fopen('as.php', 'wb');
    fwrite($f, "$name\t$family\n");
    fclose($f);
    header('Location: index.php?a=next');
}
?>
<html>
<body>
<form method="post">
   Name: <input name="name" />
   Family: <input name="family" />
   <input type="submit" name=send value="Submit"/>
</form>
</body>
</html>
<?php
ob_end_flush();
?>


Автор: The MASTER 3.7.2005, 10:40
Прошу прощения, почему if (isset($_POST['send'])) а не if (isset($_POST['data']))?

Автор: The MASTER 3.7.2005, 11:09
PARROT Да я проверял работо способность функции, всё работает, в $INFO у меня массив, так что я же сказал это трогать не нужно, нужно сделать проверку на заполненность определённых полей если всё верно то переместить не следующую страницу, если есть недочёты ну или ошибки то нужно перейти на страницу index.php?a=error, и при возращение нужно сделать чтобы все даннные остались чтобы только пароли стёрлись иначе не удобно занаво всё вводить.

Автор: PARROT 3.7.2005, 11:15
Странно, но у меня массив $INFO печатает Array smile

Автор: The MASTER 3.7.2005, 11:20
Он собирает всё в массив и потом с помощью var_export($INFO, 1) он экспортирует его в файл.

Автор: PARROT 3.7.2005, 11:29
Проверка должна быть такой:
Код

if(empty($_POST['data'])) {
          echo"<center><font color=red>Не заполнены поля!</font></center>";
                      exit;
            }

А в этом случае, Вы что проверяете? Наличие чего?
Код

if (isset($_POST)) {


Автор: The MASTER 3.7.2005, 11:41
Пришли ли данные с формы.

Автор: Mal Hack 3.7.2005, 11:43
Цитата(The @ 3.7.2005, 00:50)
введены ли данные в определённые поля

http://php.net/empty

Цитата(The @ 3.7.2005, 00:50)
как сравнить эти поля равны ли они друг другу

==

Цитата(The @ 3.7.2005, 00:50)
если нет то вывести сообщение если верны то проверить заполнены ли остальные поля а потом перейти на другую страницу при помощи:
echo"<META HTTP-EQUIV='Refresh' CONTENT='0;URL=index.php?a=2'>";

Последовательность условий надо уметь писать.

Тема закрыта, т.к. на подобные вопросы надо смотреть ответ в мануале или уж хотя бы в поиске.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)