Bài đăng

Đang hiển thị bài đăng từ 2016

Mã hóa dữ liệu trong Database

Đôi lúc vì một số lý do bảo mật mà bạn muốn các dữ liệu lưu trong database phải được mã hóa trước khi được lưu vào. Data Encryption and Decryption sử dụng AES (Advanced Encryption Standard) là phương thức phổ biến để thực hiện. Ở trong bài này, mình sẽ hướng dẫn cách sử dụng kĩ thuật này nhằm giúp cho database của bạn luôn luôn được mã hóa. Ví dụ: Tạo bảng user vs email và address sẽ luôn được mã hóa.  - Cấu trúc của table khi không được mã hóa: CREATE TABLE `user` ( `id` INT NOT NULL AUTO_INCREMENT , `email` VARCHAR(100) NOT NULL , `address` VARCHAR(100) NOT NULL , PRIMARY KEY (`id`) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci - Cấu trúc của table khi email và address được mã hóa CREATE TABLE `user` ( `id` INT NOT NULL AUTO_INCREMENT , `email` VARBINARY(116) NOT NULL , `address` VARBINARY(116) NOT NULL , PRIMARY KEY (`id`) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci Sự khá

Upload và remove hình ảnh trong laravel

Trong bài này mình sẽ hướng dẫn các bạn viết 1 class dùng để upload và remove hình ảnh trong laravel.  - Đầu tiên ta tạo class Gallery và tạo 2 biến dùng để khai báo đường dẫn và nơi lưu trữ file. class Gallery { private $uploadDir; private $uploadFolder;  - Tiếp theo tạo hàm khởi tạo để set giá trị cho 2 biến trên. Ở đây mình sẽ lưu trong folder uploads: public function __construct() { $this->uploadDir = public_path('uploads'); $this->uploadFolder = 'uploads/'; } - Tiếp theo mình sẽ viết 1 số hàm cần thiết trong việc upload và xóa file. // Lay filename cua file khong chua phan dinh dang file private function getFileNamewithoutExtension($originalFileName, $extensionFileName) { return substr($originalFileName, 0, strlen($originalFileName) - (strlen($extensionFileName) + 1)); } //Kiem tra file ton tai hay khong private function isExistedFile($originalFileName) { return

Cách để hình ảnh scale full màn hình bằng CSS

Hình ảnh
Làm cách nào để mọi trình duyệt và thiết bị với các tỷ lệ màn hình khác nhau. Bức ảnh luôn được phủ tràn màn hình. Ở đây mình sẽ sử dụng CSS để xử lý tình huống này. 1. Chưa xử lý CSS .menus #site-user-profile { background : url('../img/placeholders/menu/bg_user_profile.png'); } Ở đây mình đã khoanh tròn bức hình khi chưa xử lí, vì độ rộng của hình ảnh nhỏ hơn so với màn hình nên hình ảnh đã bị lặp lại theo mặc định của thuộc tính background-image trong CSS. 2. Đã xử lý CSS .menus #site-user-profile { background : url('../img/placeholders/menu/bg_user_profile.png') no-repeat center center; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; } Lúc này hình ảnh đã tự scale fullscreen.

Loại bỏ kí tự # trong AngularJS

Nếu bạn đã và đang lập trình với AngularJS. Chắc hẳn bạn sẽ thấy kí tự "#" trong toàn bộ các URL của mình. Mặc định trong AngularJS sẽ điều hướng các URL vs kí tự này. Ví dụ: http://localhost:8000/#/ http://localhost:8000/#/home http://localhost:8000/#/login Vô tình kí tự "#" làm cho các url của bạn ko được đẹp và nhìn cũng khá là "gai mắt". Sau đây mình sẽ hướng dẫn các bạn cách loại bỏ kí tự "#" trong AngularJS. Có 2 bước để thực hiện: 1. Cấu hình lại $locationProvider  Ở đây chúng ta sử dụng $locationProvider.html5Mode(true) sau khi đã định nghĩa  và cấu hình các routes xong. $routeProvider .when('/', { controller: 'HomeController', templateUrl: 'components/home/home.view.html', controllerAs: 'vm' }) .when('/login', { controller: 'AuthController', templateUrl: 'components/login/login.view.html', controllerAs: 'vm

Chuyển đổi HTML sang PDF sử dụng Javascript

Ngày này Javascript đang càng ngày càng phát triển rộng. Nó không còn đơn thuần chỉ dùng để làm những thứ cơ bản trên client-side. Mà giờ đây javascript còn có thể làm những thứ mà tưởng như chỉ có phía server-side (PHP, ASP.NET,..) mới làm được. Ở trong bài đăng này, mình sẽ hướng dẫn các bạn xuất 1 file từ định dạng HTML sang PDF. Ở đây mình sẽ dùng một số thư viện như: - Bootstrap ( https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css ) - Jquery ( https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js ) - https://github.com/MrRio/jsPDF ( Dùng để tạo ra file PDF) - https://github.com/niklasvh/html2canvas ( Chuyển đổi HTML sang dạng hình ảnh, sau đó encode nó về dạng base64 như 1 kiểu string rôì dùng jsPDF chuyển ra file pdf). FULL Code : https://jsfiddle.net/CuongNguyen/y7uj5ns1/3/ HTML Code <body> <div id='area-print' class='container'> <div id='back-label'> <div class='row

Lấy vị trí thông qua IP Address bằng PHP

PHP đã trang bị tính năng nhằm lấy được thông tin của người dùng như trình duyệt đăng sử dụng, IP Address, host name và 1 số đặc điểm khác. Để lấy được IP Address, PHP đã tạo ra biến REMOTE_ADDR. Có nhiều cách để lấy được IP Address. Sau đây là 1 số ví dụ: $ip = $_SERVER['REMOTE_ADDR']; Hoặc: $ip = $REMOTE_ADDR; Hoặc: $ip = $_SERVER['REMOTE_ADDR']; Hoặc: $ip = getenv('HTTP_CLIENT_IP'); Sau khi đã lấy được ip của người dùng. Ta sẽ sử dụng IP Geolocation API để lấy vị trí http://ip-api.com/json/<ip_address>. Ví dụ: $ip = 101.99.10.180 Truyền $ip vào api:  http://ip-api.com/json/101.99.10.180 Dữ liệu trả về dưới dạng JSON với đầy đủ thông tin và bạn có thể lấy những giá trị mình muốn: { "as":"AS45903 CMC Telecom Infrastructure Company", "city":"Hanoi", "country":"Vietnam", "countryCode":"VN", "isp":"CMC Tel

Lấy vị trí của người dùng thông qua trình duyệt

Geolocation API có chức năng lấy được vị trí của người dùng từ trình duyệt thông qua Javascript. Các phiên bản trình duyệt hỗ trợ: IE 9+, Google Chrome 5+, Firefox 3.5+, Safari 5.0+, Opera Mini 16.0+ Yêu cầu: Website của bạn phải tạo SSL Certificate nếu muốn dùng trên nhiều thiết bị khác nhau. Sẽ có bài viết hướng dẫn của mình sau. Hiện tại bạn có thể tham khảo ở link này cho Apache ở Ubuntu 14.04: https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04  Link test:  https://jsfiddle.net/CuongNguyen/p8nzrxb3/ HTML Code: <html> <head> <style> #demo { font-style: bold; color: red; } </style> </head> <body> <p>Click the button to get your coordinates.</p> <button id='getLocation'>Try It</button> <p id="demo"></p> </body> </html> SCRIPT Code: <script>