За последние 24 часа нас посетил 17571 программист и 1314 роботов. Сейчас ищут 1458 программистов ...

Откуда берутся копии?

Тема в разделе "Работа с почтой", создана пользователем khrom, 21 фев 2011.

  1. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    Ситуация следующая. На сайте интернет-магазина покупатели вводят заказ и свои данные в форму, затем это все отправляется на один и тот же ящик. Все работает, но время от времени приходит по нескольку ТОЧНЫХ копий одного и того же письма: иногда в тот же день, иногда ежедневно на протяжении нескольких дней, иногда даже копии заказов, сделанных полгода назад. Вариант, будто "шалят" сами пользователи, проверен и исключен. Контролировать процесс все труднее, т.к. число заказчиков все больше. Может ли это быть глюком сервера или чего-то еще? Вот код:

    mail("xxxxxxxxx@bk.ru", '', "$message", "From: $eml\nContent-type: text/html; charset=Windows-1251");

    Пожалуйста, помогите кто чем может :)
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    попробуй покликать быстро-быстро на кнопку отправки заказа
     
  3. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    igordata
    всё проще - F5 :)
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я тоже репу чесал когда-то по этому вопросу
     
  5. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    То есть копии-призраки появляются, если:

    - пользователь делает двойной (тройной и т.д.) щелчок на кнопке;
    - обновляет страницу, подтверждающую заказ;
    - вносит эту же страницу в избранное и потом опять заходит по этой ссылке.

    Спасибо, понял. Но как с этим бороться (особенно с последним)?
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    редирект + случайные числа как идентификатор транзакции. типа если транзакция с таким числом уже прокатила, то остальные - в топку.
     
  7. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    нет, от этого не появляются, если пользуешься пост-ом данных
     
  8. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    igordata
    Скажу прямо, понял мало. Но за заданное направление поиска - большое спасибо. Буду рыться в литературе, думаю разберусь.
     
  9. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    чем пользуюсь?
     
  10. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    khrom
    в форме при отправке данные могут отправляться двумя способами POST-ом или GET-ом.
    если данные отправляются GET-ом - они будут видны в адресе страницы.

    пример GET запроса: http://site.com/save.php?name=ilariy&em ... @gmail.com
     
  11. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    Только что проверил. Появляется, зараза. Так чем же я все-таки не пользуюсь? :)
     
  12. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    Ага, пока писал вопрос, ответ уже есть. Спасибо.
     
  13. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    Ну вот, приходится-таки обратиться за помощью снова.
    С заменой гет-а на пост проблем не возникло, а вот с переадресацией... Хочу сделать так, чтобы в конце концов все заканчивалось на специально созданной стационарной странице. Но как не кручу, выдает ошибку. Дошло до того, что файл сократил до вида:

    <html>
    <body>
    <?php
    header('Location: http://хххх.ххх/хххх/хххх.php');
    ?>
    </body>
    </html>

    Причем пробовал и так, и вот так: header('Location: хххх.php'); (так как все файлы в одной директории)
    но результат один (варьируется только номер строки):

    Warning: Cannot modify header information - headers already sent by (output started at /home/хххх/хххх/хххх.ххх/хххх/хххх/хххх.php:3) in /home/хххх/хххх/хххх.ххх/хххх/хххх/хххх.php on line 4

    Как я понимаю, "on line 4" значит, что ошибка в 4-й строке, то есть в самой команде. Но ведь команда записана правильно? :shock:
     
  14. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    хэдер должна определяться раньше, чем вы отправляете что-либо в стрим. другими словами
    echo '<html>';
    header(...); //неправильно

    но в то же время
    header(...);
    echo '<html>'; //правильно

    если порядок изменить невозможно, используйте кэш, потом из кэша отправите всё, что нужно в стрим
     
  15. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    юзал header location раз 100 и никогда проблем небыло кроме тех когда header уже написан
    фиксится удалением первого header разумеется
    да и вообще можно уверенно юзать Js - после отправки данных echo "наш редирект код на js"
     
  16. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
  17. khrom

    khrom Активный пользователь

    С нами с:
    21 фев 2011
    Сообщения:
    10
    Симпатии:
    0
    Спасибо, все получилось после того как "<html><body> " убрал под echo.
     
  18. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    та ну ёпт ))
    я в дле например постоянно все сабмиты заканчиваю header location и проблем с ним вообще нет и да - он у меня в конце обработки скрипта. проблемы были только тогда когда писал самопись и делал редирект после регистрации