2013-08-04 37 views
0

所以我一直在創建一個窗體,將一些信息寫入數據庫。它應該被集成在Facebook標籤中。到目前爲止,它工作得很好,但在檢查表單提交時遇到了一些問題。我那樣做:

protected function isFormSubmission() { 
    return ($_SERVER["REQUEST_METHOD"] == "POST"); 
} 

我的整個形式的檢查工作這樣的:

public function normForm() { 
    if ($this->isFormSubmission()) { 
     if ($this->isValidForm()) { 
      $this->processForm(); 
     } 
     else { 
      $this->printForm(); 
     } 
    } 
    else { 
     $this->printForm(); 
    } 
} 

我的問題是,Facebook的某種方式返回TRUE爲($ _ SERVER [ 「REQUEST_METHOD」] == 「POST」 )當標籤被加載時立即。這意味着函數isValidForm()返回FALSE,並顯示所有的用戶輸入錯誤... 當我獨立於FB加載頁面,它工作正常...

這是該頁面的鏈接: https://ssl-account.com/sparfuchs.cash-back-info.com/sparfuchs_werden/index.php

爲什麼FB返回TRUE($ _SERVER [「REQUEST_METHOD」] ==「POST」),我該如何避免這種情況?

非常感謝,

朱利安

回答

0

嘿...我真的不知道爲什麼(也許緩存,結構,外部應用程序的政策,等等)。爲了避免這種情況,使用令牌的一些隱藏輸入此外,它很好用一些「抗」 CSRF((不完全安全的CSRF但其某種對

+0

感謝我的解決方案是解決方案): '保護功能isFormSubmission($令牌){ 回報($ _ SERVER [ 「REQUEST_METHOD」] ==「POST」)&& isset($ _ SESSION [$ token])&&!$ this-> isEmpty($ token); } –

相關問題