2011-08-02 48 views
5

Tôi có một biểu mẫu trong một tệp mà tôi gửi bằng phương thức POST. Trong tệp cho hành động biểu mẫu, tôi sử dụng $_SERVER['REQUEST_METHOD'] === 'POST', nhưng thực hiện kết xuất var là $_SERVER['REQUEST_METHOD'] hiển thị 'GET'.Phương thức Yêu cầu Máy chủ PHP

Bất kỳ ý tưởng nào về điều này có thể xảy ra? Hình thức nằm trong iframe với src = 'targetfile.php?id=30' để mã trông giống như sau:

<iframe src="targetfile.php?id=30"> 
    <form method="post" action="targetfile.php" target="credit_results"> 
     <input type="hidden" name="pid" id="hidden_pid" value="30" /> 
     <input type="text" class="std_grey" name="first_name_info" id="first_name_info"/> 
    </form> 
    <iframe name="credit_results" id="credit_results" scrolling="no" frameborder="0" width="960" height="1200"></iframe> 
</iframe> 
+0

Kiểm tra xem bạn có cả GET và giá trị POST (bạn cũng vượt qua một param get trong iframe) . Tôi đã không làm việc rất nhiều với iframes ... –

+0

Là var_dump() hiển thị 'GET' khi khung nội tuyến đầu tiên tải, như được mong đợi, và trong nhật ký một số cách thức khi biểu mẫu gửi lại chính nó? –

+0

'targetfile.php' đang được sử dụng trong cả ngữ cảnh GET và POST. Khung nội tuyến yêu cầu tệp bằng GET nhưng nó cũng gửi đến chính nó. Bạn có thể hiển thị mã của bạn? –

Trả lời

3

Vì targetfile.php là nhận được cả hai GET và POST do thực tế rằng niêm yết của nó lại chính nó và ban đầu được nạp với một truy vấn GET , Tôi khuyên bạn nên thay đổi php của bạn để kiểm tra các biến $ _POST cụ thể thay vì số REQUEST_METHOD.

Để gỡ lỗi var_dump($_POST); sẽ hiển thị mọi thứ ở đó.

Đối với sử dụng thực tế

if(!isset($_POST['varYouNeed'])) die('Missing varYouNeed variable'); 
+0

đó là những gì tôi có thể nghĩ nhưng biến $ _POST trở lại trống –

+0

Biến $ _POST trống khi khung nội tuyến lần đầu tiên tải VÀ khi biểu mẫu gửi lại chính nó? Bạn có thể hiển thị cho chúng tôi nhiều html hơn từ iframe và biểu mẫu không? –

+0

có trong cả hai trường hợp biến GET được hiển thị nhưng không phải là các biến POST từ biểu mẫu –

-2

thay đổi:

$_SERVER['REQUEST_METHOD'] === 'POST' 

để

$_SERVER['REQUEST_METHOD'] == 'POST' 
Các vấn đề liên quan