Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 10.08.2007, 23:10   #1
Mikola
Пользователь
 
Аватар для Mikola
 
Регистрация: 09.08.2007
Сообщений: 23
Злость Отправка почты

Помогите, пожалуйста с обратной связью. Сам я не спец в PHP, но один друг мне посоветовал вот такой код:

send.phtml :

<?php
$fText="$fTitle\n\n";
for ($i=1;$i<=$fCount;$i++) {$fText.=$fName[$i].": ".$fData[$i]."\n";}
$fText.="\n\n";
$fText.=date("l dS of F Y h:i:s A");
if (mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");}
else {Header("Location: $fBad");}
exit;
?>

mail.htm :

<form method="post" action="http://tsekhan.com/send.phtml">
<center>
<input type="hidden" name="fName[1]" value="Your name">
<input type="text" name="fData[1]">
<input type="hidden" name="fName[2]" value="Your e-mail">
<input type="text" name="fData[2]">
<input type="hidden" name="fName[3]" value="Your homepage">
<input type="text" name="fData[3]">
<input type="hidden" name="fName[4]" value="Your ICQ">
<input type="text" name="fData[4]">
<input type="hidden" name="fName[5]" value="Text">
<TEXTAREA name="fName[5]" rows=6 cols=28></textarea>
<input type="hidden" name="fName[6]" value="Text2">
<TEXTAREA name="fName[6]" rows=6 cols=28></textarea>
<input type="submit" value="Send">
<input type="hidden" name="fMail" value="tsekhan@gmail.com">
<input type="hidden" name="fTitle" value="Chto-to prishlo">
<input type="hidden" name="fSubject" value="Soobschenie">
<input type="hidden" name="fCount" value="6">
<input type="hidden" name="fOk" value="http://tsekhan.com/ok.htm">
<input type="hidden" name="fBad" value="http://tsekhan.com/bad.htm">
</form>
</body>
</html>

А в результате выкидывает на главную.
Не говори ГОП, а лучше напечатай.
Сайт: http://tsekhan.com
Dofollow-блог: http://log.tsekhan.com
Mikola вне форума Ответить с цитированием
Старый 11.08.2007, 00:42   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от Mikola Посмотреть сообщение
$fText="$fTitle\n\n";
for ($i=1;$i<=$fCount;$i++) {$fText.=$fName[$i].": ".$fData[$i]."\n";}
$fText.="\n\n";
$fText.=date("l dS of F Y h:i:s A");
if (mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");}
else {Header("Location: $fBad");}
Этот код можно использовать не в мирных целях. И безопасности тут никакой.
mail.htm :
Цитата:
<form method="post" action="http://tsekhan.com/send.phtml">
tsekhan.com - это ваш сайт?
Цитата:
<input type="hidden" name="fName[1]" value="Your name">
Зачем же столько скрытых полей в GET-запросе?
Не проще ли сделать на ПОСТе?
Цитата:
<input type="hidden" name="fMail" value="tsekhan@gmail.com">
<input type="hidden" name="fTitle" value="Chto-to prishlo">
<input type="hidden" name="fSubject" value="Soobschenie">
<input type="hidden" name="fCount" value="6">
<input type="hidden" name="fOk" value="http://tsekhan.com/ok.htm">
<input type="hidden" name="fBad" value="http://tsekhan.com/bad.htm">
Цель этого не совсем понял..
Какие именно поля должны существовать? Конкретнее, пожалуйста.
SkyM@n вне форума Ответить с цитированием
Старый 11.08.2007, 13:39   #3
Mikola
Пользователь
 
Аватар для Mikola
 
Регистрация: 09.08.2007
Сообщений: 23
По умолчанию

Мне нужна лишь программа для отправки почты, но чтобы я мог добавлять свои инпуты или текстареа.

А tsekhan.com это действительно мой сайт.

Я тоже не все понимаю, но здесь же ПОСТ. И почему небезопасен этот код (просто интересно)?
Не говори ГОП, а лучше напечатай.
Сайт: http://tsekhan.com
Dofollow-блог: http://log.tsekhan.com
Mikola вне форума Ответить с цитированием
Старый 12.08.2007, 04:16   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от Mikola Посмотреть сообщение
Мне нужна лишь программа для отправки почты, но чтобы я мог добавлять свои инпуты или текстареа.
Держите готовое решение. Писал сам для себя. Переделал под твой.
Это должно быть в твоем файле Contact.php
PHP код:
 $form_block "<form method=\"post\" action=\"Contact.php\">\n"
   
."<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" align=\"center\">\n";
   
$form_block .= "<tr><td>Ваше имя:</td><td><input id=\"nickname\" type=\"text\" name=\"sender_name\" value=\"$sender_name\" size=\"50\" style=\"width:300px\" onBlur=\"javascript: tastenick();\">&nbsp;<img id=\"imgnick\" src=\"images/delete.gif\" alt=\"\" /></td></tr>\n"
   
."<tr><td>Ваш имейл:</td><td><input type=\"text\" id=\"soap\" name=\"sender_email\" value=\"$sender_email\" size=\"50\" style=\"width:300px\" onBlur=\"javascript: tastesoap();\">&nbsp;<img id=\"imgsoap\" src=\"images/delete.gif\" alt=\"\" /></td></tr>\n"
   
."<tr><td>Сообщение:</td><td>\n<textarea id=\"msg\" name=\"message\" cols=\"50\" rows=\"10\" style=\"width:300px\" onKeyDown=\"javascript: tastemsg();\">$message</textarea>&nbsp;\n<img id=\"imgmsg\" src=\"images/delete.gif\" alt=\"\" /></td></tr>\n";
  if (
extension_loaded("gd")) {
   
$random_num gen_pass(10);
    
$form_block .= "<tr><td>Код безопасности:</td><td><img src=\"Contact.php?&gfx=gfx&random_num=$random_num\" border=\"1\" alt=\"Код безопасности\"></td></tr>\n"
    
."<tr><td>Подтверждение:</td><td><textarea id=\"captcha\" name=\"gfx_check\" cols=\"10\" rows=\"1\" style=\"width:75px; overflow: hidden; border: thin dotted #5577ff;\" onKeyDown=\"javascript: tastecaptcha();\">$gfx_check</textarea>&nbsp;<img id=\"imgcaptcha\" src=\"images/delete.gif\" alt=\"\" /><input type=\"hidden\" name=\"random_num\" value=\"$random_num\"></td></tr>\n";
  }
  
$form_block .= "<tr><td colspan=\"2\" align=\"center\"><input type=\"hidden\" name=\"opi\" value=\"ds\"><input id=\"btnchk\" type=\"submit\" value=\"Отослать\" disabled=\"true\"></td></tr></table></form>\n";
  if (
$_POST['opi'] != "ds") {
    echo 
"$form_block";
  } elseif (
$_POST['opi'] == "ds") {
   
$id intval($_POST['id']);
    
$stop "";
    
$sender_name text_filter($_POST['sender_name']);
    
$sender_email text_filter($_POST['sender_email']);
    
$message nl2br(text_filter($_POST['message'], 2));
    
$gfx_check intval($_POST['gfx_check']);
    
$code substr(hexdec(md5("".date("F j")."".$_POST["random_num"]."".$sitekey."")), 26);
    if (
extension_loaded("gd") AND $code != $gfx_check$stop .= "<br />"._SECCODEINCOR."";
   if (!
$stop) {
    
$subject "Имя_сайта - Обратная связь";
     
$msg "Имя_сайта - Обратная связь<br /><br />Имя отправителя: $sender_name<br />Имейл отправителя: $sender_email<br /><br />Сообщение: $message";
     
mail_send("tsekhan@gmail.com"$sender_email$subject$msg11);
     echo 
"<b>Сообщение отправлено</b>";
   } else {
    echo 
$stop;
    echo 
"$form_block";
   }
  } 
А это - инклюдится жабаскриптовый код:
[code]
Изображения
Тип файла: gif delete.gif (1.0 Кб, 84 просмотров)
SkyM@n вне форума Ответить с цитированием
Старый 12.08.2007, 04:17   #5
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Код:
<script language="JavaScript" type="text/javascript">
var taste0=false;
var taste1=false;
var taste2=false;
var taste3=false;
function tastesoap() {
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if(filter.test(document.getElementById("soap").value)) {
document.getElementById("imgsoap").src="images/tick.gif";
taste0=true;
if (taste0 && taste1 && taste2 && taste3) document.getElementById("btnchk").disabled=false;
return true;
} else {
document.getElementById("imgsoap").src="images/delete.gif";
taste0=false;
document.getElementById("btnchk").disabled=true;
return false;
}
}
 
function tastenick() {
if (document.getElementById("nickname").value.length>=3) {
document.getElementById("imgnick").src="images/tick.gif";
taste1=true;
if (taste0 && taste1 && taste2 && taste3) document.getElementById("btnchk").disabled=false;
return true;
} else {
document.getElementById("imgnick").src="images/delete.gif";
taste1=false;
document.getElementById("btnchk").disabled=true;
return false;
}
}
 
function tastemsg() {
if (document.getElementById("msg").value.length>=10) {
document.getElementById("imgmsg").src="images/tick.gif";
taste2=true;
if (taste0 && taste1 && taste2 && taste3) document.getElementById("btnchk").disabled=false;
return true;
} else {
document.getElementById("imgmsg").src="images/delete.gif";
taste2=false;
document.getElementById("btnchk").disabled=true;
return false;
}
}
 
function tastecaptcha() {
var cp = document.getElementById("captcha").value;
if (cp.length==5) {
if (!isNaN(cp)) {
document.getElementById("imgcaptcha").src="images/tick.gif";
taste3=true;
if (taste0 && taste1 && taste2 && taste3) document.getElementById("btnchk").disabled=false;
return true;
alert("sdfgsdfg");
}
}
document.getElementById("imgcaptcha").src="images/delete.gif";
taste3=false;
document.getElementById("btnchk").disabled=true;
return false;
}
</script>
Надеюсь, разберешься. Да, кстати - тебе надо будет залиьт в папку images/ твоего сайта - файл delete.gif, размером с обычный смайл. Типа того, что во вложениях в предыдущем посте.
----
Пример работы тут

Последний раз редактировалось SkyM@n; 12.08.2007 в 04:19.
SkyM@n вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка почты с Delphi 7 vitawt Работа с сетью в Delphi 20 04.06.2014 17:26
Microsoft Office Outlook : Отправка SMS с электронной почты (MegaFon, Beeline, MTS) kipish Софт 6 01.12.2011 10:26
Отправка почты Fess HTML и CSS 15 11.03.2010 21:24
Отправка почты (smtp) через proxy dimonbest Работа с сетью в Delphi 9 20.06.2008 14:07
Отправка почты Fenix Nexsais Работа с сетью в Delphi 5 06.09.2007 22:27