เป็นการป้องกันการโจมตีแบบ
cross site scripting โดยการตรวจและแปลงค่า ที่ผู้ใช้งานกรอกเข้ามา:
นอกจากจะใช้ Asset แล้วก็ใช้คลาส HTML เรียกไฟล์ script,stylesheet มาได้เหมือนกัน:
echo HTML::script('js/scrollTo.js');
echo HTML::style('css/common.css');
echo HTML::style('css/common.css', 'print');
สร้างลิ้งที่ชื่อว่า User Profile โดยส่งค่าไปยัง user/profile:
echo HTML::link('user/profile', 'User Profile');
ใช้ secure_link ในการสร้างลิ้งแบบ HTTPS:
echo HTML::secure_link('user/profile', 'User Profile');
ใส่แอททริบิวต์อื่นเข้าไปเสริมได้ในพารามิเตอร์ที่สามเลยครับ:
echo HTML::link('user/profile', 'User Profile', array('id' => 'profile_link'));
Links To Named Routes ( สร้างลิ้งที่จะทำให้ route ทำงาน )
ลิ้งนี้จะทำให้ route ที่ชื่อ profile ทำงาน
echo HTML::link_to_route('profile');
ส่งพารามิเตอร์เข้าไปด้วย:
$url = HTML::link_to_route('profile', 'User Profile', array($username));
สร้างลิ้งที่เชื่อมไปยัง method ใน controller เลย:
echo HTML::link_to_action('home@index');
สร้างลิ้งที่เป็น email
echo HTML::mailto('example@gmail.com', 'E-Mail Me!');
ดึงภาพขึ้นมาแสดง:
echo HTML::image('img/smile.jpg', $alt_text);
เหมือนตัวอย่างข้างบนครับ เราสามารถใส่ id หรือ class ให้ตรงพารามิเตอร์ตัวที่สามได้:
echo HTML::image('img/smile.jpg', $alt_text, array('id' => 'smile'));
Lists
ตัวอย่างข้างล่างคือการสร้างลิสเมนูจากอาเรย์:
echo HTML::ol(array('Get Peanut Butter', 'Get Chocolate', 'Feast'));
echo HTML::ul(array('Ubuntu', 'Snow Leopard', 'Windows'));
echo HTML::dl(array('Ubuntu' => 'An operating system
by Canonical', 'Windows' => 'An operating system
by Microsoft'));
เราสามารถสร้างฟังก์ชันของ
html อธิบายด้วยตัวอย่างคือถ้าเราใช้
my_element ก็จะเป็นการใช้ค่าในตัวอย่าง:
HTML::macro('my_element', function()
{
return '<article
type="awesome">';
});
ตัวอย่างการใช้งานครับ:
echo HTML::my_element();
BUILDING FORMS
echo Form::open();
กำหนดค่าต่างๆให้เลย:
echo Form::open('user/profile', 'PUT');
สร้างฟอร์มในกรณีเว็บของเรา ใช้ https:
echo Form::open_secure('user/profile');
ใส่แอททริบิวต์ให้ฟอร์ม:
echo Form::open('user/profile', 'POST', array('class' => 'awesome'));
สร้างฟอร์มในกรณีจะอัพโหลดไฟล์:
echo Form::open_for_files('users/profile');
สร้างฟอร์มอัพโหลดไฟล์ในกรณีเว็บของเราเป็น HTTPS :
echo Form::open_secure_for_files('users/profile');
ปิดฟอร์ม:
echo Form::close();
Laravel วางแผนในการป้องกันการโจมตีแบ csrf โดยการสร้าง สุ่มค่าขึ้นมาจากการใช้
hash กับ salt ที่เรากำหนดขึ้นมา แล้วเก็บไว้ใน session แล้วสร้างเป็น hidden form ไว้ ตัวอย่างข้างล่างคือการสร้าง hidden form นะครับ
echo Form::token();
ต่อมาไปเซตค่าที่ route ต่ออีกแบบในตัวอย่างเลยครับ:
Route::post('profile', array('before' => 'csrf', function()
{
//
}));
เวลาจะตรวจสอบใน controller ก็สามารถเราก็ต้องไปดึงค่าจากใน
session มาก่อนครับ:
$token = Session::token();
สร้างคำอธิบายให้ฟอร์ต่างๆ
echo Form::label('email', 'E-Mail Address');
echo Form::label('email', 'E-Mail Address', array('class' => 'awesome'));
Note: ถ้าต่อมาเราสร้างฟอร์มที่มีชื่อเหมือน
label ข้างบนแอททริบิวต์อย่าง class กับ
id ก็จะถูกดึงมาด้วย
สร้างฟอร์มรับค่าชื่อ username:
echo Form::text('username');
กำหนดค่าเริ่มต้นให้ฟอร์มได้:
echo Form::text('email', 'example@gmail.com');
สร้างช่องรับ password:
echo Form::password('password');
สร้าง checkbook :
echo Form::checkbox('name', 'value');
สร้าง checkbox ที่เช็คอยู่แล้ว:
echo Form::checkbox('name', 'value', true);
สร้างฟอร์มอัพโหลดไฟล์
echo Form::file('image');
สร้าง drop down list:
echo Form::select('size', array('L' => 'Large', 'S' => 'Small'));
สร้างปุ่ม:
echo Form::submit('Click Me!');
บทนี้ง่ายๆนะครับ บทหน้าเราจะไปต่อเรื่อง pagination
กัน
ไม่มีความคิดเห็น:
แสดงความคิดเห็น