X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите разобраться с формой
by_roXe_hb
by_roXe_hb
Topic Starter сообщение 25.6.2012, 18:17; Ответить: by_roXe_hb
Сообщение #1


Добрый день!, есть форма
[PHP]<?
error_reporting(0);
function show_form()
{
?>
<form action="" method=post>
<div align="center">
<table cellspacing="1" cellpadding="2" bgcolor="#222120">
<tr bgcolor="#D0CFCE">
<td>
<b>Электронная почта*</b>
</td>
</tr>
<tr bgcolor="#ffffff">
<td><input type="text" name="input_name[0]" size="39" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][0])), 0, 500);?>" style="border: #000 1px solid; background-color: #fff;">
<input type="hidden" name="check[]" value="1"></b>
</td>
</tr>
<tr bgcolor="#D0CFCE">
<td>
<b>Ваше имя и фамилия*</b>
</td>
</tr>
<tr bgcolor="#ffffff">
<td><input type="text" name="input_name[1]" size="39" value="<?=substr(htmlspecialchars(trim($_POST['input_name'][1])), 0, 500);?>" style="border: #000 1px solid; background-color: #fff;">
<input type="hidden" name="check[]" value="1"></b>
</td>
</tr>
<tr>
<td bgcolor="#222120">
<table width="100%">
<tr><td align="left">
<!--А это просто благодарность создателям, можете стереть, можете поставить нашу ссылочку в другом месте, в общем на Ваше усмотрение. Спасибо! --><small><a href="http://www.php-mail.ru" style="color:black;"><i>&copy;www.php-mail.ru</i></a></small><!--конец благодарности :))-->
</td><td align="right"><input type="submit" value="Отправить" style="background-color:#D0CFCE;border: #000 1px solid;" name="submit">
</td></tr>
</table>
</td>
</tr>
</table>
</div>
</form><div align="center">* Помечены поля, которые необходимо заполнить</div>
<?
}
function complete_mail() {


$empty_input[] = 'Электронная почта';
$empty_input[] = 'Ваше имя и фамилия';
for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
$sendemail = 'No';
echo '<br /><b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';

}
}
}
if($sendemail == 'No') show_form();
$mess = '';
$mess .= '<b>Электронная почта: </b>'.$_POST['input_name'][0].'<br />';
$mess .= '<b>Ваше имя и фамилия: </b>'.$_POST['input_name'][1].'<br />';
// подключаем файл класса для отправки почты
// если Вы забыли его скачать - http://www.php-mail.ru/class.phpmailer.zip
require 'class.phpmailer.php';

$mail = new PHPMailer();
$mail->From = 'E-mail'; // от кого email
$mail->FromName = 'Письмо Free-write.ru'; // от кого имя
$mail->AddAddress('6058635@mail.ru', '6058635@mail.ru'); // кому - адрес, Имя
$mail->IsHTML(true); // выставляем формат письма HTML
$mail->Subject = 'Сообщение Free-write.ru'; // тема письма
$mail->Body = $mess;



if($sendemail != 'No'){
// отправляем наше письмо
if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
echo 'Спасибо! Ваше письмо отправлено.';
}
}
if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>[/PHP]

Работает отлично, если не заполнены поля выдает ошибку, но мне нужно чтобы
в полях для ввода данных по умолчанию был текст который при клике на поле пропадает (такое много где сделано в формах). Нашел способ такой
<input type="text" id="email" name="email" value="Ваш текст"
onfocus="if (this.value=='Ваш текст') this.value='';"
onblur="if (this.value==''){this.value='Ваш текст'}" />


Меня это на то что в форме вместо value, все работает. но теперь форма отправляет письмо даже если не заполнять данные (ведь по умолчанию у нас там тест)... Как скрестить эти скрипты, чтобы и текст по умолчанию был, но чтобы если мы не изменяли его форма не отправлялась?
Спасибо!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
by_roXe_hb
by_roXe_hb
Topic Starter сообщение 25.6.2012, 23:18; Ответить: by_roXe_hb
Сообщение #2


:cry:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Muxa_hb
Muxa_hb
сообщение 25.6.2012, 23:33; Ответить: Muxa_hb
Сообщение #3


а добавить чтобы не только на пустоту проверял не вариант?) [PHP]if(!empty($text)&&$text!="Ваш текст") { ... } else echo "Ошибочка";[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
by_roXe_hb
by_roXe_hb
Topic Starter сообщение 25.6.2012, 23:37; Ответить: by_roXe_hb
Сообщение #4


А куда правильно вставить? А то я вставляю и он ошибку пхп выдает.....
[PHP] $empty_input[] = 'Электронная почта';
$empty_input[] = 'Ваше имя и фамилия';
for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
if(empty($_POST['input_name'][$i])) {
$sendemail = 'No';
echo '<b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';

}
}
}
if($sendemail == 'No') show_form();[/PHP]

Вот тут куда-то я так понимаю....)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Muxa_hb
Muxa_hb
сообщение 25.6.2012, 23:46; Ответить: Muxa_hb
Сообщение #5


(by_roXe_hb @ 26.6.2012, 02:37) *
if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) {
****************if(empty($_POST['input_name'][$i])) {

что то я не очень понимаю зачем вообще эта строчка с substr.. у вас же в форме она явно прописана как 1 и нигде не переприсваивается.. к тому же еще зачем то и обрезаете ее :wacko:
[PHP]for ($i=0; $i<count($_POST['input_name']); $i++) {
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
// if(substr(htmlspecialchars(trim($_POST['check'][$i])), 0, 1) == 1) { // мне кажется и без этого будет также работать..
if((empty($_POST['input_name'][$i]))||(($_POST['input_name'][$i])=='Ваш текст')) { //столько скобок на всякий случай просто)))
$sendemail = 'No';
echo '<b>Необходимо заполнить поле '.$empty_input[$i].'!</b>';

// }
}
}[/PHP]
(by_roXe_hb @ 26.6.2012, 02:37) *
$_POST['input_name'][$i] = substr(htmlspecialchars(trim($_POST['input_name'][$i])), 0, 100000);
и кстати не понимаю зачем такая обрезка на 100000 символов?) вы думаете кто то может больше ввести?))) лучше вместо этого добавили какие нить stripslashes/strip_tags/preg_match
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
by_roXe_hb
by_roXe_hb
Topic Starter сообщение 25.6.2012, 23:52; Ответить: by_roXe_hb
Сообщение #6


Не, не работает) В смысле все равно отправляет если не заполнять...(
Нужно кстати проверять 2 поля, Электронный адрес и Ваше имя и фамилия
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Muxa_hb
Muxa_hb
сообщение 25.6.2012, 23:57; Ответить: Muxa_hb
Сообщение #7


ошибся в одном действии, исправил. попробуйте еще раз, теперь должно работать.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
by_roXe_hb
by_roXe_hb
Topic Starter сообщение 26.6.2012, 0:06; Ответить: by_roXe_hb
Сообщение #8


Огромное спасибо Вам)))

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 692 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1695 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Нужен простой лендинг с формой обратной связи
10 Kuzzma 2561 11.9.2020, 21:33
автор: Kuzzma
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2315 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12405 24.7.2020, 17:02
автор: -JamesSmips-


 



RSS Текстовая версия Сейчас: 29.3.2024, 8:51
Дизайн