Ситуация следующая. На сайте интернет-магазина покупатели вводят заказ и свои данные в форму, затем это все отправляется на один и тот же ящик. Все работает, но время от времени приходит по нескольку ТОЧНЫХ копий одного и того же письма: иногда в тот же день, иногда ежедневно на протяжении нескольких дней, иногда даже копии заказов, сделанных полгода назад. Вариант, будто "шалят" сами пользователи, проверен и исключен. Контролировать процесс все труднее, т.к. число заказчиков все больше. Может ли это быть глюком сервера или чего-то еще? Вот код: mail("xxxxxxxxx@bk.ru", '', "$message", "From: $eml\nContent-type: text/html; charset=Windows-1251"); Пожалуйста, помогите кто чем может
То есть копии-призраки появляются, если: - пользователь делает двойной (тройной и т.д.) щелчок на кнопке; - обновляет страницу, подтверждающую заказ; - вносит эту же страницу в избранное и потом опять заходит по этой ссылке. Спасибо, понял. Но как с этим бороться (особенно с последним)?
редирект + случайные числа как идентификатор транзакции. типа если транзакция с таким числом уже прокатила, то остальные - в топку.
igordata Скажу прямо, понял мало. Но за заданное направление поиска - большое спасибо. Буду рыться в литературе, думаю разберусь.
khrom в форме при отправке данные могут отправляться двумя способами POST-ом или GET-ом. если данные отправляются GET-ом - они будут видны в адресе страницы. пример GET запроса: http://site.com/save.php?name=ilariy&em ... @gmail.com
Ну вот, приходится-таки обратиться за помощью снова. С заменой гет-а на пост проблем не возникло, а вот с переадресацией... Хочу сделать так, чтобы в конце концов все заканчивалось на специально созданной стационарной странице. Но как не кручу, выдает ошибку. Дошло до того, что файл сократил до вида: <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:
хэдер должна определяться раньше, чем вы отправляете что-либо в стрим. другими словами echo '<html>'; header(...); //неправильно но в то же время header(...); echo '<html>'; //правильно если порядок изменить невозможно, используйте кэш, потом из кэша отправите всё, что нужно в стрим
юзал header location раз 100 и никогда проблем небыло кроме тех когда header уже написан фиксится удалением первого header разумеется да и вообще можно уверенно юзать Js - после отправки данных echo "наш редирект код на js"
та ну ёпт )) я в дле например постоянно все сабмиты заканчиваю header location и проблем с ним вообще нет и да - он у меня в конце обработки скрипта. проблемы были только тогда когда писал самопись и делал редирект после регистрации