Tôi đang tạo một trang web mạng xã hội và gặp sự cố khi đăng thông báo trên hồ sơ người dùng. Thông báo đăng chính xác và cũng hiển thị chính xác nhưng khi tôi làm mới trang, một bản sao của thông báo cuối cùng được gửi. Tôi không muốn ngăn người dùng gửi nhiều thư trong một lần truy cập nhưng tôi cần ngăn không cho các thư được đăng khi làm mới
Tôi hy vọng bạn có thể giúp đỡ, đây là mã của tôi dưới đây
<?php // rnmessages.php include_once 'rnheader.php'; if (!isset($_SESSION['user'])) die("<br /><br />You need to login to view this page"); $user = $_SESSION['user']; if (isset($_GET['view'])) $view = sanitizeString($_GET['view']); else $view = $user; if (isset($_POST['text'])) { $text = sanitizeString($_POST['text']); if ($text != "") { $pm = substr(sanitizeString($_POST['pm']),0,1); $time = time(); queryMysql("INSERT INTO rnmessages VALUES(NULL, '$user', '$view', '$pm', $time, '$text')"); } } echo <<<_END <form method='post' action='rnmessages.php?view=$view'> Type here to leave a message:<br /> <textarea name='text' cols='40' rows='3'></textarea><br /> Public<input type='radio' name='pm' value='0' checked='checked' /> Private<input type='radio' name='pm' value='1' /> <input type='submit' value='Submit' name='submit' /></form> _END; $query = "SELECT * FROM rnmessages WHERE recip='$view' ORDER BY time DESC"; $result = queryMysql($query); $num = mysql_num_rows($result); for ($j = 0 ; $j < $num ; ++$j) { $row = mysql_fetch_row($result); if ($row[3] == 0 || $row[1] == $user || $row[2] == $user) { echo date('M jS \'y g:sa:', $row[4]); echo " <a href='rnmessages.php?"; echo "view=$row[1]'>$row[1]</a> "; if ($row[3] == 0) { echo "wrote: "$row[5]" "; } else { echo "whispered: <i><font color='#006600'>"$row[5]"</font></i> "; } if ($row[2] == $user) { echo "[<a href='rnmessages.php?view=$view"; echo "&erase=$row[0]'>erase</a>]"; } echo "<br>"; } } } if (!$num) echo "<li>No messages yet</li><br />"; echo "<br><a href='rnmessages.php?view=$view'>Refresh messages</a>"; echo " | <a href='rnfriends.php?view=$view'>View $name2 friends</a>"; ?>Cảm ơn Luke
tin nhắn làm mới php gửi
0 0
Đăng lại
- 3 Cộng tác viên
- 6 Trả lời
- 6K Lượt xem
- 1 tuần Khoảng thời gian thảo luận
- Bài đăng mới nhất 11 năm trước Bài đăng mới nhất của itisnot_me
Câu trả lời được đề xuất
Đã được trả lời bởi diafol 3.720 trong một bài đăng từ 11 năm trước
Chuyển tới bài viếtyêu cầu biểu mẫu gửi dữ liệu đến một trang khác và sau khi xử lý xong, hãy chuyển hướng đến trang biểu mẫu
Đã được trả lời bởi diafol 3.720 trong một bài đăng từ 11 năm trước
Chuyển tới bài viếtGiả sử biểu mẫu của bạn đang ở trên biểu mẫu. php, hãy làm điều này
<form action="handler.php" method="post"> ...the html... </form>Gửi biểu mẫu cho người xử lý. php. Trong trình xử lý php, bạn thực hiện tất cả việc xử lý dữ liệu và sau đó quay lại cùng một trang hoặc một trang khác với
header("Location: //mysite.com/form.php");…
Tất cả 6 câu trả lời
//mysite.com/form.php");
Bạn phải đảm bảo rằng không có gì xuất ra màn hình hoặc có bất kỳ html nào trước tiêu đề (), nếu không, bạn sẽ gặp lỗi 'tiêu đề đã được gửi'
Rõ ràng, một hệ thống kiểm tra/xác nhận lỗi được yêu cầu. Bạn có thể chuyển mã lỗi trở lại biểu mẫu. php thông qua chuỗi truy vấn
header("Location: //mysite.com/form.php$err");Trong đó $err là mã lỗi đã truyền (e. g. $err = "?err=". $errorcode), nếu có
Đôi khi tôi đặt mã lỗi là hằng số, vì vậy bạn có thể thêm chúng vào và trích xuất thông tin mà không gặp quá nhiều rắc rối. hình thức ban đầu của bạn có thể có một cái gì đó giống như