Начало Новини Маркет Проекти Форум ИТ Работа Уроци Скриптове WiFi точки Още Вход


Нова тема
помощ за форма за запитване
Тази тема е погледната 733 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 26.12.2011 10:42
galiaV
Чирак

Мнения: (4)

Привет на всички!
Ще съм благодарна ако някой може да ми помогне. Намерих по-долната форма за контакт в "първи сайт"и тя си работи след съответната промяна. Обаче искам да добавя няколко допълнителни полета - поле 1, поле2. В тях потребителя ще въвежда само текст.
Какво трябва да добавя и променя в формата. Направих някакъв импровизиран опит, но не ми се получи.
Благодаря предварително.



CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php header('Content-type: text/html; charset=utf-8');
?>
<
style type="text/css">
.
label{
text-align:right;
}
#submit{
text-align:center;
}
#body {
background-color:yellow;
}
</
style>
<?
php
$to='вашият мейл адрес';//попълнете с вашия мейл адрес, напр. az@example.comЕ-мейл адресът e защитен от спам ботове.
$tema_pismo='Форма за обратна връзка: www.parvisait.com';
//това е съобщението, което ще се изписва в полето
"относно" в писмата от формата за обратна връзка.
$potvyrzhdenie_tema='Потвърждение за изпратено писмо';
//това е съобщението, което ще се съдържа в полето
"относно" на писмото-потвърждение, изпращано на потребителя.
$potvyrzhdenie_syobshtenie="Вашето писмо от формата за обратна връзка на www.parvisait.com беше изпратено успешно. Изпращаме ви копие от съобщението:";
//текста на писмото-потвърждение, което автоматично се изпраща на потребителя.
$blagodarya='<h2>Благодаря за проявеното внимание!</h2> <p>Съобщението Ви беше изпратено успешно и на Вашия мейл адрес бе изпратено копие от него:</p>';
//текст на съобщението, което се извежда при успешно изпращане на съобщение от формата
$problem='<h2>Имаше проблем с изпращането на съобщението Ви!</h2> <p>Проблемът най-вероятно се дължи на грешка от страна на сървъра. <br/> Молим за извинение за причиненото неудобство. <br/> Ако Ви е удобно, моля изпратете отново съобщението си.</p>';
//съобщение за грешка ако писмото не бъде изпратено поради грешка на сървъра.
$spam_no_more='<h2>Съобщението Ви съдържа непозволени символи! </h2> <p>Поради опасност от спам-атака, съобщението <strong>НЕ</strong> бе изпратено!</p>';
//в случай, че някой се опита да използва формата за спам операции, ще бъде предупреден, че е сложена защита.
$popylni='Моля, попълнете валиден мейл адрес и име.';
//ако потребителят пропусне да попълни адреса или текста на посланието си, ще бъде върнат обратно към формата.
$email='';
$body='';
$displayForm=true;
if ($_POST){
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$body=stripslashes($_POST['body']);
// валидиране на
e-mail адреса
$valid=eregi('^([0-9a-z]+[-._+&])*[0-9a-z]+@([-0-9a-z]+[.])+[a-z]{2,6}$',$email);
$spam=eregi("(r|n)(to:|from:|cc:|bcc:)",$body);
$headers = "MIME-Version: 1.0" . "rn";
$headers.= "Content-type: text/html; charset=utf-8"."rn";
$headers_potvyrzhdenie=$headers."From:$to"."rn";
 
$headers.="From:$email"."rn";
if ($email && $body && $valid && !$spam){
if (mail($to,$tema_pismo,$body,$headers) && mail($email,$potvyrzhdenie_tema,$potvyrzhdenie_syobshtenie.$body,$headers_potvyrzhdenie))
{
$displayForm=false;
echo '<p>'.$blagodarya.'</p>';
echo '<p>'.htmlspecialchars($body).'</p>';
}else
{ // съобщението не бе изпратено поради грешка на сървъра
echo $problem;
}
}
else if ($spam){ // спам опит
echo $spam_no_more;
}else{ // съобщение за непопълнени полета
echo'<p><strong>'.$popylni.'</strong></p>';
}
}
if ($displayForm){
?>
<
form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<
table border="0">
<
tr>
<
td class="label"><label for="email">Вашият мейл адрес:</label></td>
<
td>
<
input type="text" name="email" id="email" value="<?php echo htmlspecialchars($email); ?>" size="30"> (мейл с копие от съобщението Ви ще бъде изпратен на този адрес) </td>
</
tr>
<
tr>
<
td class="label"><label for="body">Вашето съобщение:</label></td>
<
td><textarea name="body" id="body" cols="60" rows="7">
<?
php echo htmlspecialchars($body); ?>


 
---------------------------
Потребител в Mytech.bg от: 26.12.11
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 26.12.2011 11:12
blooddrainer
Ронин

Модератор

Мнения: (406)

Здравей!

Не съм сигурен какво точно искаш да правиш с допълнителните полета, но ти направих нещо примерно спрямо кодът, който си изпратила.

 CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php

header
('Content-type: text/html; charset=utf-8');

?>

<
style type="text/css">
.
label{text-align:right;}
#submit{text-align:center;}
#body {background-color:yellow;}

</
style>

<?
php

//попълнете с вашия мейл адрес, напр.
az@example.comЕ-мейл адресът e защитен от спам ботове.
$to='вашият мейл адрес';

//това е съобщението, което ще се изписва в полето
"относно" в писмата от формата за обратна връзка.
$tema_pismo='Форма за обратна връзка: www.parvisait.com';

//това е съобщението, което ще се съдържа в полето
"относно" на писмото-потвърждение, изпращано на потребителя.
$potvyrzhdenie_tema='Потвърждение за изпратено писмо';

//текста на писмото-потвърждение, което автоматично се изпраща на потребителя.
$potvyrzhdenie_syobshtenie="Вашето писмо от формата за обратна връзка на www.parvisait.com беше изпратено успешно. Изпращаме ви копие от съобщението:";

//текст на съобщението, което се извежда при успешно изпращане на съобщение от формата
$blagodarya='<h2>Благодаря за проявеното внимание!</h2> <p>Съобщението Ви беше изпратено успешно и на Вашия мейл адрес бе изпратено копие от него:</p>';

//съобщение за грешка ако писмото не бъде изпратено поради грешка на сървъра.
$problem='<h2>Имаше проблем с изпращането на съобщението Ви!</h2> <p>Проблемът най-вероятно се дължи на грешка от страна на сървъра. <br/> Молим за извинение за причиненото неудобство. <br/> Ако Ви е удобно, моля изпратете отново съобщението си.</p>';

//в случай, че някой се опита да използва формата за спам операции, ще бъде предупреден, че е сложена защита.
$spam_no_more='<h2>Съобщението Ви съдържа непозволени символи! </h2> <p>Поради опасност от спам-атака, съобщението <strong>НЕ</strong> бе изпратено!</p>';

//ако потребителят пропусне да попълни адреса или текста на посланието си, ще бъде върнат обратно към формата.
$popylni='Моля, попълнете валиден мейл адрес и име.';

$email="";
$body="";
$displayForm=true;

if ($_POST)
{
   
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
   
$body=stripslashes($_POST['body']);
   
$customfield1=stripslashes($_POST['customfield1']);
   
$customfield2=stripslashes($_POST['customfield2']);
   
  
// валидиране на e-mail адреса
   
$valid=eregi('^([0-9a-z]+[-._+&])*[0-9a-z]+@([-0-9a-z]+[.])+[a-z]{2,6}$',$email);
   
$spam=eregi("(\r|\n)(to:|from:|cc:|bcc:)",$body);
   
   
$headers = "MIME-Version: 1.0" . "\r\n";
   
$headers.= "Content-type: text/html; charset=utf-8"."\r\n";
   
   
$headers_potvyrzhdenie=$headers."From:$to"."\r\n";
   
$headers_potvyrzhdenie.="To:$email"."\r\n";
   
   
$headers.="From:$email"."\r\n";
   
$headers.="To:$to"."\r\n";
   
   
if ($email && $body && $valid && !$spam)
    {
       
if (mail($to,$tema_pismo,$body,$headers) && mail($email,$potvyrzhdenie_tema,$potvyrzhdenie_syobshtenie.$body,$headers_potvyrzhdenie))
        {
           
$displayForm=false;
           
echo '<p>'.$blagodarya.'</p>';
           
echo '<p>'.htmlspecialchars($body).'</p>';
       
}else {
          
// съобщението не бе изпратено поради грешка на сървъра
           
echo $problem;
       
}
    }
else if ($spam)
      
// спам опит
       
echo $spam_no_more;
   
else
      
// съобщение за непопълнени полета
       
echo'<p><strong>'.$popylni.'</strong></p>';
}

if ($displayForm)
{

?>
<
form action="" method="post">
<
table border="0">
<
tr>
    <
td class="label"><label for="email">Вашият мейл адрес:</label></td>
    <
td>
        <
input type="text" name="email" id="email" value="<?=htmlspecialchars($email)?>" size="30">
       
(мейл с копие от съобщението Ви ще бъде изпратен на този адрес)
    </
td>
</
tr>
<
tr>
    <
td><label for="customfield1">Допълнително поле 1</label></td>
    <
td><textarea name="customfield1" id="customfield1" cols="60" rows="7"><?=htmlspecialchars($customfield1)?></textarea></td>
</
tr>
<
tr>
    <
td><label for="customfield2">Допълнително поле 2</label></td>
    <
td><textarea name="customfield2" id="customfield2" cols="60" rows="7"><?=htmlspecialchars($customfield2)?></textarea></td>
</
tr>
<
tr>
    <
td class="label"><label for="body">Вашето съобщение:</label></td>
    <
td><textarea name="body" id="body" cols="60" rows="7"><?=htmlspecialchars($body)?>

Ако искаш съдържанието на двете полета да бъде вмъкнато в писмото просто го вмъкваш в $body.

Поздрави!


 
---------------------------
Потребител в Mytech.bg от: 11.05.09

http://www.webxmedia.eu
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 26.12.2011 12:36
galiaV
Чирак

Мнения: (4)

Направих промените, обаче после на имейла ми идва съобщението само от последното боди поле. А идеята е в тези полета потребителя да въвежда различна информация, като вид, обем и т.н. Нещо като форма за запитване.


 
---------------------------
Потребител в Mytech.bg от: 26.12.11
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 26.12.2011 12:43
blooddrainer
Ронин

Модератор

Мнения: (406)

Да затова ти написах да вмъкнеш полетата в "body". Ето пример за това какво трябва да промениш:

 CODE
1
2
3
4
5
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$body=stripslashes($_POST['body']);
$customfield1=stripslashes($_POST['customfield1']);
$customfield2=stripslashes($_POST['customfield2']);
$body.=$customfield1.$customfield2;


 
---------------------------
Потребител в Mytech.bg от: 11.05.09

http://www.webxmedia.eu
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 26.12.2011 13:11
galiaV
Чирак

Мнения: (4)

Да, получи се. Благодаря.
Инфото в имейла идва слято от двете полета. Напр. ако в първото съм написала 1, а във второто 2 - те пристигат слято - 12.
Има ли начин в писмото да придобие по-разбран вид. Ето така

Поле 1: тук да е съдържанието дошло от поле 1
     нов ред
Поле 2: тук да е съдържанието дошло от поле 2


 
---------------------------
Потребител в Mytech.bg от: 26.12.11
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 26.12.2011 13:15
blooddrainer
Ронин

Модератор

Мнения: (406)

Ето кода:

 CODE
1
2
3
4
5
$email=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$body=stripslashes($_POST['body']);
$customfield1=stripslashes($_POST['customfield1']);
$customfield2=stripslashes($_POST['customfield2']);
$body.=$customfield1."<br><br>".$customfield2;


 
---------------------------
Потребител в Mytech.bg от: 11.05.09

http://www.webxmedia.eu
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
Публикувано на: 26.12.2011 13:26
galiaV
Чирак

Мнения: (4)

Много благодаря. Златен си. Този казус много ме тревожеше.


 
---------------------------
Потребител в Mytech.bg от: 26.12.11
напиши eMail напиши лично съобщение виж профила на
темата е прекратена! 
 5 посетители са активни в този форум (0 потребители и 5 гости)  
Активни потребители: ---
   




myTech.bg © 2004 - 2011 | Контакти | За реклама