Код ниже все отлично работает. В файле с именем submit.php пользователь может ввести представление через форму. Форма отправляется в submit2.php, где некоторый код вставляет представление в базу данных MySQL. Все идет нормально.
Вот проблема: после того, как пользователь приземлился на submit2.php, если пользователь обновит браузер, появится всплывающее окно «Подтвердить заполнение формы». Затем, если пользователь нажимает «Продолжить» на этом всплывающем окне, представление будет повторно отправлено в базу данных MySQL.
Как сделать это сделать на submit2.php:
Всплывающее окно не появится, если браузер обновлен.
Представление не будет повторно отправлено в базу данных.
Заранее спасибо,
Джон
На submit.php:
echo '<form action="http://www.domain.com/sample/submit2.php" method="post"> <input type="hidden" value="'.$_SESSION['loginid'].'" name="uid"> <div class="submissiontitle"><label for="title">Story Title:</label></div> <div class="submissionfield"><input name="title" type="title" id="title" maxlength="1000"></div> <div class="urltitle"><label for="url">Link:</label></div> <div class="urlfield"><input name="url" type="text" id="url" maxlength="500"></div> <div class="submissionbutton"><input name="submit" type="submit" value="Submit"></div> </form> ';
На submit2.php:
if (isLoggedIn() == true) { $remove_array = array('http://www.', 'http://', 'https://', 'https://www.', 'www.'); $cleanurl = str_replace($remove_array, "", $_POST['url']); $cleanurl = strtolower($cleanurl); $cleanurl = preg_replace('/\/$/','',$cleanurl); $cleanurl = stripslashes($cleanurl); $title = $_POST['title']; $uid = $_POST['uid']; $title = mysql_real_escape_string($title); $title = stripslashes($title); $slug = str_replace(' ', '-', $title); echo '-'.$site1.'-'; $cleanurl = mysql_real_escape_string(trim($cleanurl)); $site1 = 'http://' . $cleanurl; $displayurl = parse_url($site1, PHP_URL_HOST); function isURL($url1 = NULL) { if($url1==NULL) return false; $protocol = '(http://|https://)'; $allowed = '[-a-z0-9]{1,63}'; $regex = "^". $protocol . // must include the protocol '(' . $allowed . '\.)'. // 1 or several sub domains with a max of 63 chars '[az]' . '{2,6}'; // followed by a TLD if(eregi($regex, $url1)==true) return true; else return false; } if(isURL($site1)==true) mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL)"); else echo "<p class=\"topicu\">Not a valid URL.</p>\n"; } else { // user is not loggedin show_loginform(); }