2013-09-26 36 views
0

我想打一個確認的形式在CakePHP我的代碼的形式是:做蛋糕的PHP驗證表單聯繫形式

視圖

<div class="well"> 

<?php 
echo $this->Form->create(false); 
echo $this->Form->input('name', array('label' => 'name ')); 
echo $this->Form->input('PHONE_NUMBER', array('label' => 'PHONE_NUMBER ')); 
echo $this->Form->input('EMAIL', array('label' => 'EMAIL ')); 
echo $this->Form->input('ISSUE', array('label' => 'ISSUE ')); 
echo $this->Form->input('IP', array('label' => 'IP ')); 
echo $this->Form->submit('Send.'); 
?> 

控制器

<?php 
class ContactController extends AppController { 


public function index() { 
    if (empty($_POST) === FALSE) { 
     $message = ''; 
     $message .=$_POST['data']['EMAIL'] . ' <br/>'; 
     $message .=$_POST['data']['name'] . ' <br/>'; 
     $message .=$_POST['data']['PHONE_NUMBER'] . ' <br/>'; 
     $message .=$_POST['data']['ISSUE'] . ' <br/>'; 
     $message .=$_SERVER['REMOTE_ADDR'] . ' <br/>'; 
     mail('[email protected]', 'Support From Website ', $message); 
     $this->Session->setFlash("Thanks , an email just sent ."); 
    } 

} 

}

我的問題是如何在此表單中實現驗證以及如何獲取訪問者的IP地址?

+0

'我的問題如何使這種形式vadation和如何得到這個接觸vistor ip地址 - 你的問題不是很清楚。你到底需要什麼幫助?請編輯問題並添加更多詳細信息。 –

回答

0

您可能需要更新您的索引()函數來查找類似這樣:我認爲這是更CakePHP的公約。

public function index() { 
    if ($this->request->is('post')) { 
     $message = ''; 
     $message = $this->request->data['EMAIL']; 
     ... 
    } 
} 

如需驗證,可以將其添加到您的模型中。你可以做同樣的事情:

public $validate = array(
    'EMAIL' => 'email', 
    'name' => array(
     'rule' => 'alphaNumeric', 
     'required' => true 
    ) 
); 

更多的驗證,你可以看看文件:http://book.cakephp.org/2.0/en/models/data-validation.html

您可以使用$ _ SERVER [「REMOTE_ADDR」]獲取客戶​​端的IP地址。

0

你可以做驗證您的機型通過設置規則如下

public $validate = 

    array(
      'Email' => array 
     (
     'rule' => 'notempty' 

     ), 

); 
0

最好的方法可以按照上面的模型給出答案,但您也可以在查看頁面時通過簡單地添加屬性「require」並定義適當的類型,如電子郵件,數字等來實現。例如。在你的形式:

<?php 
echo $this->Form->create(false); 
echo $this->Form->input('name', array('label' => 'name ', 'required' => true)); 
echo $this->Form->input('PHONE_NUMBER', array('label' => 'PHONE_NUMBER ', 'required' => true,'type'=>'number')); 
echo $this->Form->input('EMAIL', array('label' => 'EMAIL ', 'required' => true, 'type' => 'email')); 
echo $this->Form->input('ISSUE', array('label' => 'ISSUE ', 'required' => true)); 
echo $this->Form->input('IP', array('label' => 'IP ', 'required' => true)); 
echo $this->Form->submit('Send.'); 
?>