زمان جاری: 2012/05/24, 12:24 AM خوش آمدید مهمان گرامی! (ورودعضویت)



ساخت فرم تماس فقط در چند دقیقه


ارسال موضوع  ارسال پاسخ 
  • 2 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
رتبه موضوع:
 
ساخت فرم تماس فقط در چند دقیقه
نویسنده پیام
786ali آفلاین
عضو نیمه حرفه ای
**

ارسال‌ها: 135
تاریخ عضویت: Jul 2011
رتبه: 2
تشکر: 197
80 بار تشکر شده در 42 پست
ارسال: #1
Wink ساخت فرم تماس فقط در چند دقیقه
فرم تماس یکی از واجبات هر وب سایت است و با کیک می توانیم فقط در عرض چند دقیقه یک فرم تماس کامل را دست و پا کنیم .

همانگونه که می دانید فرم تماس و یا تماس با ما فرمی است که مخاطبین می توانند از طریق آن پیام خود را برای ما ارسال کنند و ما پیام ها را در ایمیل خود دریافت خواهیم کرد .

برای اینکار ابتدا یک مدل با نام contact ایجاد می کنیم و کد های زیر را در آن قرار می دهیم :

کد PHP:
class Contact extends AppModel {
    var 
$name 'Contact';
    var 
$useTable false;  // Not using the database, of course.
 
    // All the fancy validation you could ever want.
    
var $validate = array(
        
'name' => array(
            
'rule' => '/.+/',
            
'allowEmpty' => false,
            
'required' => true,
        ),
        
'subject' => array(
            
'rule' => array('minLength'5),
            
'message' => 'Subject must be 5 characters long'
        
),
        
'email' => array(
            
'rule' => 'email',
            
'message' => 'Please enter a valid email address'
        
),
    );
 
    
// This is where the magic happens
    
function schema() {
        return array (
            
'name' => array('type' => 'string''length' => 60),
            
'email' => array('type' => 'string''length' => 60),
            
'message' => array('type' => 'text''length' => 2000),
            
'subject' => array('type' => 'string''length' => 100),
        );
    }


حال باید یک کنترلر با نام contact_controller ایجاد کنیم و کد های زیر را درون آن قرار دهیم :

کد PHP:
class ContactController extends AppController
{
    var 
$name 'Contact';
    var 
$uses 'Contact';
    var 
$helpers = array('Html''Form''Javascript');
    var 
$components = array('Email''Session');
    function 
index(){
        if(isset(
$this->data)) {
            
$this->Contact->create($this->data);
            
// There is no save(), so we need to validate manually.
            
if($this->Contact->validates()){
                
$this->Email->to Configure::read('CONTACT_EMAIL');
                
$this->Email->replyTo $this->data['Contact']['email'];
                
$this->Email->from $this->data['Contact']['name'].' <'.$this->data['Contact']['email'].'>';
                
$this->Email->subject 'Contact Form: '.$this->data['Contact']['subject'];
                
//$this->Email->delivery = 'debug';
                
if ($this->Email->send($this->data['Contact']['message'])) {
                    
$this->Session->setFlash('Thank you for contacting us');
                    
//$this->redirect('/');
                
} else {
                    
$this->Session->setFlash('Mail Not Sent');
                }
                
$this->redirect(array('action' => 'index'));
            } else {
                
$this->Session->setFlash('Please Correct Errors');
                
//$this->redirect('/contacts');
            
}
        }
    }


نکته : می توانید به جای عبارت زیر آدرس ایمیل خودتان را بنویسید مثلا 'ali@yahoo.com'

کد PHP:
Configure::read('CONTACT_EMAIL'

و دست آخر هم یک فولدر با نام contact در فولدر view می سازیم و فایل index.ctp را درون آن قرار می دهیم :

کد PHP:
echo $form->create(null, array('action' => 'index'));
echo 
$form->input('name');
echo 
$form->input('email');
echo 
$form->input('subject');
echo 
$form->input('message');
echo 
$form->submit();
echo 
$form->end(); 

کار تمام است به آدرس contact/ در پروژه خود بروید و پیامتان را برای مدیر بفرستید ! Cool


منبع
(آخرین تغییر در این ارسال: 2011/12/09 10:53 PM توسط 786ali.)
2011/12/09 10:52 PM
یافتن تمامی ارسال‌های این کاربر نقل قول این ارسال در پاسخ
 تشکر شده توسط : saleh mohsened sibetorsh پوریا Reran
ارسال موضوع  ارسال پاسخ 


پرش در انجمن: