2010-08-16 42 views
5

Tôi muốn hiển thị lời cảm ơn sau khi thêm bình luận cho tải trang đầu tiên ... Biểu mẫu nhận xét được xử lý bằng tệp php bên ngoài và được chuyển hướng trở lại trang. Tôi muốn hiển thị một số tin nhắn sau khi chuyển hướng chỉ ... Điều gì sẽ là cách tốt nhất để làm điều này bằng cách sử dụng php?Chỉ hiển thị tin nhắn cho lần tải trang đầu tiên

Trả lời

5

Giả sử bạn có truy cập vào tệp php bên ngoài xử lý tệp mà bạn có thể thực hiện điều gì đó tương tự như sau trên tệp xử lý:

$_SESSION['flashMessage'] = 'Thank you for posting.'; 
header("Location: your-page.php'); 

Và sau đó thêm phần sau vào chuyển hướng pa ge:

if ($_SESSION['flashMessage']) { 
    echo $_SESSION['flashMessage']; 
    $_SESSION['flashMessage'] = NULL; 
} 
+0

không nên là dòng cuối cùng '$ _SESSION [' flashMessage '] = NULL;' ? – oezi

+0

@oezi - bạn thực sự chính xác, đã sửa đổi câu trả lời một cách thích hợp. – simnom

3

Lưu mesage vào một phiên. Hiển thị nó và sau khi không đặt biến phiên.

0

Khi bạn chuyển hướng gửi qua $ _GET mảng một biến một cái gì đó như thế này:

header("LOCATION: index.php?msg=1"); 

On kiểm tra chỉ số nếu $ _GET [ 'msg'] == 1 sau đó hiển thị thông điệp của bạn

0

Bạn có thể áp dụng mẫu PRG. Về cơ bản bạn đăng nhận xét và máy chủ trả lời cho khách hàng để thực hiện chuyển hướng đến trang của bạn với thông tin bổ sung trong chuỗi Truy vấn như Vadim đã lập luận.

"Thanh lịch", không phiên và chức năng.

1

Trên trang có nhận xét được xử lý:

if($success) 
{ 
    $_SESSION['userMsg'] = "<p>Your comment has been added. Thank you.</p>"; 
} 

Trong bất kỳ/tất cả các trang (nhưng chủ yếu là một trong những bạn đang chuyển hướng đến):

if($_SESSION['userMsg'] != '') 
{ 
    print $_SESSION['userMsg']; 
    unset($_SESSION['userMsg']; 
} 

này được giả sử bạn đang sử dụng Phiên và do đó trước đây đã gọi hàm session_start()

Các vấn đề liên quan