Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 22:00   #1
маленький монстрик
 
Регистрация: 03.01.2011
Сообщений: 6
По умолчанию Корректность вводимых данных

Доброго времени суток!

На одном сайте нашла кусочки, для проверки корректности вводимых в форму данных. Проблема заключается в том, что я не знаю, как совмещать PHP и HTML.
Если кто может, объясните "глупому" студенту

вот коды:
HTML
Цитата:
<title>Обработка HTML формы с помощью PHP</title>
</head>
<body>

<form action="form_processing.php" method="post">
<p>Ваше имя:<br /><input type="text" name="your_name" /></p>
<p>E-mail:<br /><input type="text" name="email" /></p>
<p>Тема:<br /><input type="text" name="tema" /></p>
<p>Сообщение:<br />
<textarea name="message" rows="5" cols="45"> </textarea></p>
<p><input type="submit" value="Отправить"></p>

</form>
</body>
</html>

PHP
Цитата:
<?php
/* Осуществляем проверку вводимых данных и их защиту от враждебных
скриптов */
$your_name = htmlspecialchars($_POST["your_name"]);
$email = htmlspecialchars($_POST["email"]);
$tema = htmlspecialchars($_POST["tema"]);
$message = htmlspecialchars($_POST["messages"]);
/* Устанавливаем e-mail адресата */
$myemail = "my_email@mail.ru";
/* Проверяем заполнены ли обязательные поля ввода, используя check_input
функцию */
$your_name = check_input($_POST["your_name"], "Введите ваше имя!");
$tema = check_input($_POST["tema"], "Укажите тему сообщения!");
$email = check_input($_POST["email"], "Введите ваш e-mail!");
$message = check_input($_POST["message"], "Вы забыли написать сообщение!");
/* Проверяем правильно ли записан e-mail */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("<br /> Е-mail адрес не существует");
}
/* Создаем новую переменную, присвоив ей значение */
$message_to_myemail = "Здравствуйте!
Вашей контактной формой было отправлено сообщение!
Имя отправителя: $your_name
E-mail: $email
Текст сообщения: $message
Конец";
/* Отправляем сообщение, используя mail() функцию */
$from = "From: $yourname <$email> \r\n Reply-To: $email \r\n";
mail($myemail, $tema, $message_to_myemail, $from);
?>
<p>Ваше сообщение было успешно отправлено!</p>
<p>На <a href="index.php">Главную >>></a></p>
<?php
/* Если при заполнении формы были допущены ошибки сработает
следующий код: */
function check_input($data, $problem = "")
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<p>Пожалуйста исправьте следующую ошибку:</p>
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>

Последний раз редактировалось маленький монстрик; 12.06.2011 в 22:17.
маленький монстрик вне форума Ответить с цитированием
Старый 13.06.2011, 02:31   #2
8oOoRPM
Форумчанин
 
Регистрация: 12.11.2010
Сообщений: 146
По умолчанию

если можно точнее, какие данные, и на что проверять ? адрес эл почты, или ещё что-то ?
8oOoRPM вне форума Ответить с цитированием
Старый 13.06.2011, 08:53   #3
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
По умолчанию

а вчем собственно проблема? PHP код рабочий.
1)Создаете файл index.php
и в него сохраняете
Код:
<title>Обработка HTML формы с помощью PHP</title>
 </head>
 <body>

 <form action="form_processing.php" method="post">
 <p>Ваше имя:<br /><input type="text" name="your_name" /></p>
 <p>E-mail:<br /><input type="text" name="email" /></p>
 <p>Тема:<br /><input type="text" name="tema" /></p>
 <p>Сообщение:<br />
 <textarea name="message" rows="5" cols="45"> </textarea></p>
 <p><input type="submit" value="Отправить"></p>

 </form>
 </body>
 </html>
2)Создаете файл form_processing.php и в него сохраняете
Код:
<?php
 /* Осуществляем проверку вводимых данных и их защиту от враждебных 
 скриптов */
 $your_name = htmlspecialchars($_POST["your_name"]);
 $email = htmlspecialchars($_POST["email"]);
 $tema = htmlspecialchars($_POST["tema"]);
 $message = htmlspecialchars($_POST["messages"]);
 /* Устанавливаем e-mail адресата */
 $myemail = "my_email@mail.ru";
 /* Проверяем заполнены ли обязательные поля ввода, используя check_input 
 функцию */
 $your_name = check_input($_POST["your_name"], "Введите ваше имя!");
 $tema = check_input($_POST["tema"], "Укажите тему сообщения!");
 $email = check_input($_POST["email"], "Введите ваш e-mail!");
 $message = check_input($_POST["message"], "Вы забыли написать сообщение!");
 /* Проверяем правильно ли записан e-mail */
 if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
 {
 show_error("<br /> Е-mail адрес не существует");
 }
 /* Создаем новую переменную, присвоив ей значение */
 $message_to_myemail = "Здравствуйте! 
 Вашей контактной формой было отправлено сообщение! 
 Имя отправителя: $your_name 
 E-mail: $email 
 Текст сообщения: $message 
 Конец";
 /* Отправляем сообщение, используя mail() функцию */
 $from = "From: $yourname <$email> \r\n Reply-To: $email \r\n"; 
 mail($myemail, $tema, $message_to_myemail, $from);
 ?>
 <p>Ваше сообщение было успешно отправлено!</p>
 <p>На <a href="index.php">Главную >>></a></p>
 <?php
 /* Если при заполнении формы были допущены ошибки сработает 
 следующий код: */
 function check_input($data, $problem = "")
 {
 $data = trim($data);
 $data = stripslashes($data);
 $data = htmlspecialchars($data);
 if ($problem && strlen($data) == 0)
 {
 show_error($problem);
 }
 return $data;
 }
 function show_error($myError)
 {
 ?>
 <html>
 <body>
 <p>Пожалуйста исправьте следующую ошибку:</p>
 <?php echo $myError; ?>
 </body>
 </html>
 <?php
 exit();
 }
 ?>
в адресной строке броузера пишете адрес_вашего_сайта/index.php и открывается форма для заполнения если хотите первый файл назвать както по другому то в PHP скрипте исправляете
Код:
 <p>На <a href="index.php">Главную >>></a></p>
на другой вариант.
dem66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура контроля вводимых данных Joker_vad Помощь студентам 2 15.10.2010 15:30
проверка базы данных на корректность веденных данных samouelson БД в Delphi 1 20.12.2009 17:23
Валидация вводимых данных rentgen Microsoft Office Excel 1 11.12.2009 04:46
помогите пожалуста с проверкой вводимых данных PANTERYL4IK Microsoft Office Access 6 09.12.2009 17:49
Проверка типа вводимых данных ROD Общие вопросы C/C++ 3 19.09.2009 20:22