Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2009, 17:24
edwardush вне форума Посмотреть профиль Отправить личное сообщение для edwardush Найти все сообщения от edwardush
  № 1  
Ответить с цитированием
edwardush

Регистрация: Jul 2008
Сообщений: 4
По умолчанию Помогите разобраться с формой отправки, отправлени, отправление сообщения на сервер

У меня есть форма отправки сообщения на сервер. Всё работает, но есть одна проблема. То есть она не проверяет поля. Как бы я не нажал на отправить и сообщение отправляется на сервер сразу. А мне надо чтобы проверяло все три поля и выводило сообщение - Сообщение не отправлено.
Где надо дописать мне здесь что бы проверяло незаполненные поля.


PHP код:
index.html

<form action="send.php" method="post" name="f1">
<p>Введите имя:<br>
<input type="text" name="name"></p>
<p>Введите email:<br>
<input type="text" name="email"></p>
<p>Введите сообщение:<br>
<textarea name="message" rows="5" cols="30"></textarea>
<br>
<br>
<input type="submit" value="Отправить "></p>
<input type="reset" value="Стереть"></p>
</form>


send.php


<?php
if (isset($_POST['$name'])) {$name $_POST['$name'];}
if (isset(
$_POST['$email'])) {$email $_POST['$email'];}
if (isset(
$_POST['$message'])) {$message $_POST['$message'];}

$address 'mail@gmail.com';
$sub "Сообщение";
$mes "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:$email");
if (
$verify == 'true')
{
echo 
"<p>Сообщение отправлено";
}
else 
{
echo 
"<p>Сообщение не отправлено";
}
?>

Старый 29.01.2009, 11:11
Megamerk вне форума Посмотреть профиль Отправить личное сообщение для Megamerk Найти все сообщения от Megamerk
  № 2  
Ответить с цитированием
Megamerk

Регистрация: Jan 2009
Сообщений: 8
При чем тут PHP? Ты же проверку на стороне клиента планируешь. Ставь кнопке submit аттрибут disabled, обработчик событий для input полей и textarea (скажем, onChange), вызывай им функцию, которая проверяет длину value этих полей и при удовлетворительном результате ставит false для дизэйбла сабмит баттона. Короче, тут тебе JavaScript нужен.

Старый 30.01.2009, 19:22
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 3  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
mail.html
Код:
<html>
<head>
</head>

<body> 
<div id="back_button">
	</div>

<table width="430" border="0">
	<tr>
	<td height="50" align="center" colspan="2"><font color="blue"><div id="idStatus"></div></font></td>
	</tr>
		<form action="sendmail.php" method="post" onsubmit = "return checkForm(this)">
			<tr>
				<td width="86">Ваше имя</td>
				<td width="286"><input type="text" name="name"></td>
			</tr>
			
			<tr>
				<td>Ваш e-mail</td>
				<td width="286"><input type="text" name="email"></td>
			</tr>
			
			<tr>
				<td>&nbsp;</td>
				<td width="286">
				<p align="center">Сообщение</p>
				</td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td width="286"><textarea name="message" cols="33" rows="10"></textarea></td>
			</tr>
			<tr>
				<td align="center" colspan="2">
				<input type="submit" value="Отправить" style="border: 1px solid #000000"></td>
			</tr>
		</form>
</table>

</body>
	<script type="text/javascript" src="mail.js"></script>
</html>
mail.js
Код:
var query = location.search.substring(1);
var ansReg = "";
var ans = "";
ansReg = query.match(/no/g);
if (ansReg=="no") ans = "Сообщение не отправленно";
ansReg = query.match(/yes/g);
if (ansReg=="yes") ans = "Сообщение отправленно";
//alert(ans);
document.all.idStatus.innerHTML = ans;

function checkForm(form){
	var outErrorStr = "";
	var str = "";
	var errorsName = 'Введите ваше имя';
	var errorsMailfrom = 'Введите свой E-mail';
	var errorsIncorrect = 'Заполните правильно Ваш E-mail';
	var errorsMessage = 'Наберите сообщение!';
	var send = 'Ваше письмо отправлено!';
	str = form.name.value;
	if (!str.match(/[^\s]/g)) outErrorStr =errorsName+"\n";
	str = form.email.value;
	if (!str.match(/[^\s]/g)) outErrorStr =outErrorStr +errorsMailfrom+"\n";
	str = form.email.value;
	if (!validateEmail(str)) outErrorStr =outErrorStr +errorsIncorrect +"\n";
	str = form.message.value;
	if (!str.match(/[^\s]/g)) outErrorStr =outErrorStr +errorsMessage;
	
	
	if (outErrorStr!="") {
		alert(outErrorStr);
		return (false);
		}
		else{
		return (true);
		}
}


function validateEmail(str){
	var lastIdx = -1;
	var pattern = new RegExp("^([a-z,._,0-9])+@([a-z,._,0-9])+(.([a-z])+)+$");
	var result = pattern.exec(str);
	if (result!=null) {
	result=true;
	}else{
	result=false;
	}
return result;
}
sendmail.php
Код:
<?php 
if (isset($_POST['name'])) {$name = $_POST['name'];} 
if (isset($_POST['email'])) {$email = $_POST['email'];} 
if (isset($_POST['message'])) {$message = $_POST['message'];} 

$address = 'myMail@mail.ru';
$sub = "Письмо с сайта http://".$HTTP_HOST;
$mes = "Автор назвался: ".$name." \nУказал свой адрес: ".$email." \nСодержание письма: ".$message; 
$verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\nFrom:".$email); 
if ($verify == 'true') 
{ 
echo '<script type="text/javascript">window.location.href = "mail.html?var=yes";</script>'; 
} 
else
{ 
echo '<script type="text/javascript">window.location.href = "mail.html?var=no";</script>'; 
} 
?>


Последний раз редактировалось Alex Lexcuk; 30.01.2009 в 21:19.
Старый 18.02.2009, 12:20
plgwar вне форума Посмотреть профиль Отправить личное сообщение для plgwar Найти все сообщения от plgwar
  № 4  
Ответить с цитированием
plgwar

Регистрация: Feb 2009
Сообщений: 2
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\mail\send.php on line 12

У меня вот ткая Ошибка !!!!!
Я думаю я что то ненастроил в php.ini
Кто сталкивалс с такой проблемой подскажите пожалуйста решение !!!!!!
Зарание Благодарю.

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.