我知道這已經提出過,但我找不到任何實際的解釋,所以我希望有更多的信息,我們可以把這個休息。HTML表單發佈兩次到php腳本
問題:當用戶提交html表單時,瀏覽器將信息發佈到php腳本 - 它應該只做一次,但我可以看到它做了兩次。
這裏是Apache2的日誌條目,證明了這一點:
192.168.178.20 - - [22/Jul/2014:15:00:14 +0000] "POST /postman/scripts/run.php HTTP/1.1" 302 325 "http://192.168.178.33/postman/submit.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) $
192.168.178.20 - - [22/Jul/2014:15:00:16 +0000] "POST /postman/scripts/run.php HTTP/1.1" 302 326 "http://192.168.178.33/postman/submit.html" "Mozilla/5.0 (Windows NT 6.1; WOW64) $
你可以看到形式在2秒內發佈兩次。我站在用戶的後面,沒有刷新頁面,或者點擊並重新發送。
對於任何想要解決這個問題的人來說,這裏都是漫長的背景。
該網站託管在Raspberry Pi上,只能從本地網絡內的一臺PC訪問。它只託管一個網站,這是我正在開發的一個程序,允許用戶向多個人發送電子郵件(非常簡單)。
用戶啓動該網站在桌面上,基本上填補了某些信息HTML表單,如郵件正文,主題和羣發給等..
HTML表單職位,一個php腳本,它只負責將信息寫入txt文件,然後執行bash腳本,循環發送電子郵件通過收件人組。
這一切都很簡單,但如果html表單發佈兩次,基本上整個程序崩潰了,讓我看起來像一個白癡。也許我是...
我可以想出辦法阻止這種情況再次發生,但我真的想知道我做錯了什麼。我希望有一個簡單的解釋...
謝謝。 添
編輯:
HTML表單
<form method="post" action="./scripts/run.php" align="right" >
<input type="submit" name="submit" value="Send" class="button" align="right" />
PHP
<?php
ob_start();
exec('./postman.sh');
header('Location: /postman/verify.html');
exit;
?>
道歉,上面是正確的形式和腳本...
代碼在哪裏?我們不是心理學家:) – mdesdev
順便說一句:這隻發生在昨天 - 在此之前沒有對任何涉及的代碼進行更改。它曾經運行得很好,沒有碰撞...... – asimovwasright
mdesdev,你需要看哪些代碼?這是一個非常基本的HTML表單... – asimovwasright