Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка данных, введенных в полях формы 
V
    Опции темы
Bilyalov
Дата 4.9.2008, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



Если данные в полях формы введены правильно, появляется сообщение о том, что в одном или нескольких полях содержатся некорректные данные. Var_dump($formats) выводит следующую информацию: "array(1) { ["Submit"]=> string(3) "bad" }". Помогите, пожалуйста, разобраться.

test26.php
Код

<?php
include ("info.inc");
    if (!isset($_POST['Submit']))
    {
        include ("addressForm.inc");
    }
    else
    {
        foreach ($_POST as $field => $value)
        {
            if (empty($_POST[$field]))
            {
                if ($field != "midName")
                {
                    $blanks[$field] = "blank";
                }
            }
            else
            {
                $value = trim($value);
                if ($field != "zipcode")
                {
                    if (!ereg("^[А-Яа-яA-Za-z0-9' .-]{1,65}$", $value))
                    {
                        $formats[$field] = "bad";
                    }
                }
                elseif($field == "zipcode")
                {
                    if(!ereg("^[0-9]{5}(\-[0-9]{4})?", $value))
                    {
                        $formats[$field] = "bad";
                    }
                }
            }
        }
        if (@sizeof ($blanks)>0 or @sizeof ($formats)>0)
        {
            if (@sizeof ($blanks)>0)
            {
                echo "<b>Вы не заполнили одно или несколько обязательных полей. Необходимо заполнить следующие поля:</b><br>";
                foreach ($blanks as $field => $value)
                {
                    echo "&nbsp;&nbsp;&nbsp;{$labels[$field]}<br>";
                }
            }
            if (@sizeof($formats)>0)
            {
                echo "<b>В одном или нескольких полях содержатся некорректные данные. Исправьте информацию в следующих полях:</b><br>";
                
                foreach ($formats as $field => $value)
                {
                    echo "&nbsp;&nbsp;&nbsp;{$labels[$field]}<br>";
                }
            }
            echo "<hr>";
            // var_dump($formats);
            include ("addressForm.inc");
        }
        else
        {
            echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
                  <html xmlns='http://www.w3.org/1999/xhtml'>
                    <head>
                    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
                    <title>Имя и адрес</title>
                    </head>
                        <body>\n";
            foreach ($_POST as $field => $value)
            {
                if ($field != "Submit")
                {
                    echo "{$labels[$field]} $value <br>\n";
                }
            }
            echo "</body></html>";
        }
    }
?>



addressForm.inc
Код

<?php
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
      <html xmlns='http://www.w3.org/1999/xhtml'>
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
      <head>
      <title>Адрес покупателя</title>
      </head>
        <body>"; 
echo "<p align='center'>
      <form action='test26.php' method='POST'>
      <table width='95%' border='0' cellspacing='0' cellpadding='2'>\n";
foreach ($labels as $field => $value)
{
    if (isset ($_POST[$field]))
    {
        $value = $_POST[$field];
    }
    else
    {
        $value = "";
    }
    echo "<tr><td align='right'>{$labels[$field]}</br></td><td><input type='text' name='$field' size='65' maxlengh='65' value='$value'></td></tr>";
}
echo "</table>
      <div align='center'><p><input type='Submit' name='Submit' value='Отправить данные'></p></div></form>";
?>
        </body>
      </html>


info.inc
Код

<?php
$labels = array ("firstName" => "Имя:",
                 "midName" => "Второе имя:",
                 "lastName" => "Фамилия:",
                 "street" => "Улица:",
                 "city" => "Город:",
                 "state" => "Штат:",
                 "zipcode" => "Почтовый индекс:");
?>

PM   Вверх
Bilyalov
Дата 4.9.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



Тему, я думаю, можно закрывать. В файле test26.php добавил следующее (выделено жирным цветом):

Код

if ($field != "zipcode" and $field != "Submit")
    {
        if (!ereg("^[А-Яа-яA-Za-z0-9' .-]{1,65}$", $value))
        {
            $formats[$field] = "bad";
        }
    }

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.