2015-05-02 51 views
0

我有一個維護客人信息的類。因此,在這個類我有以下方法插入訪客數據到guest_info從一個HTML表格中調用一個類中的PHP函數

require_once "BaseModel.php"; 

class GuestModel extends BaseModel 
{ 
    public static $table = "guest_info"; 

    public static function guestInfoFormData(){ 
     $title = $_POST['title']; 
     $firstname = $_POST['firstname']; 
     $lastname = $_POST['lastname']; 
     $nicpassport = $_POST['nicpassport']; 
     $contactnumber = $_POST['contactnumber']; 
     $addressline1 = $_POST['addressline1']; 
     $addressline2 = $_POST['addressline2']; 
     $addressline3 = $_POST['addressline3']; 
     $country = $_POST['country']; 
     $guestinfo = array($title,$firstname,$firstname,$nicpassport,$addressline1,$addressline2,$addressline3,$country); 
     insertInto($guestinfo); 
    } 
} 

我怎麼能說從我的HTML表單這種方法和客戶數據傳遞給它?

回答

1
<?php GuestModel::guestInfoFormData(); ?> 

確保GuestModel類在此之前是必需/包含的。

0

您可以使用GuestModel::guestInfoFormData(),但不能在html文件中使用它,它必須是一個php文件。

不要忘記逃離所有輸入值,現在您將所有用戶輸入傳遞到insertInto,因此您必須在sql查詢中使用它們之前轉義數據以防止sql注入。

順便說一句:爲什麼你創建一個類,當你從它調用一個全局函數?也許這是一個好主意,將全局函數insertInto移動到這個(或另一個更好的)類:)

+0

我把'insertInto'方法放在我的'BaseModel'類中,所以我可以用它來進行其他數據插入,Is這是一個壞主意? – SamChinto

+0

不,這聽起來像是一個合理的模型,但是不能用它作爲全局函數,你需要調用它:'self :: inertInto()',它也必須是一個靜態方法。如果它是一個非靜態方法,你會得到一個php嚴格的標準錯誤,但它不會中斷腳本。爲什麼靜態使用這個函數有什麼原因嗎?也許你想創建一個新的類的實例,並在上下文中使用該函數? :) – Florian

+0

是的'insertInto'是一個靜態的方法。我錯過了類名感謝提醒它。我把'GuestModel :: guestInfoFormData()',但現在我不能訪問'$ _POST ['標題'];'方法內:( – SamChinto

相關問題