Cài đặt và sử dụng WordPress

Xin chào các bạn developer,

Có thể nói rằng vào thời điểm hiện tại, khi các bạn muốn xây dựng một trang web để chia sẻ kinh nghiệm hay để kinh doanh buôn bán thì các bạn sẽ không phải tốn nhiều thời gian và tiền bạc như trước nữa! Tại sao lại như vậy? Câu trả lời là: đã có WordPress!

Vậy WordPress là gì?

WordPress hiểu nôm na là một hệ thống quản trị nội dung. Nó cho phép các bạn tạo bài viết, chỉnh sửa bài viết, xuất bản bài viết, tạo style cho bài viết và tạo cả giao diện cho chính trang web của các bạn nữa!

Trước khi muốn cài đặt và coding wordpress thì các bạn phải biết sử dụng nó đã. Chưa biết WordPress sử dụng thế nào thì chưa thể cài đặt, chỉnh sửa và tùy biến nó được đâu.

Các bạn có thể vào trang http://wordpress.com và tạo một tài khoản để bắt đầu vọc nó. Khi nào vọc xong rùi thì các bạn mới tiến tới tùy biến và chỉnh sửa mã nguồn của nó.

Trước đây để làm một website cá nhân hay bán hàng thì chúng ta thường mất khá nhiều thời gian và tiền bạc để đi thuê một công ty tin học nào đó làm cho mình. Có khi sản phẩm họ làm ra chúng ta lại không ưng ý lắm. Nhưng với WordPress thì khác, để làm một trang web các bạn không phải tốn nhiều thời gian và tiền bạc, hơn nữa nó có rất nhiều theme và plugin hoàn toàn free tha hồ cho các bạn lựa chọn. Các bạn ưng giao diện nào thì các bạn chỉ cần tải nó về và cài đặt làm giao diện cho trang web của các bạn.

Khi các bạn đã hiểu WordPress là cái gì và sử dụng nó như thế nào thì bây giờ sẽ tiến tới phần cài đặt.

Để cài đặt thì trước tiên các bạn phải download mã nguồn của WordPress về đã. Các bạn tải nó về ở đây:  https://wordpress.org/download/

Sau khi tải về xong thì các bạn hãy giải nén cho nó. Khi giải nén xong thì các bạn sẽ thấy các file như hình bên dưới:

wordpress1

Các bạn hãy tìm file có tên là wp-config-sample.php và đổi tên nó thành wp-config.php

Các bạn mở file wp-config.php ra và chỉnh sửa những nội dung sau:

define(‘DB_NAME’, ‘phpgo_db’);

/** MySQL database username */
define(‘DB_USER’, ‘phpgo_user’);

/** MySQL database password */
define(‘DB_PASSWORD’, ‘123456’);

/** MySQL hostname */
define(‘DB_HOST’, ‘localhost’);

Mấy thông số trên chỉ là ví dụ, các bạn hãy thay đổi theo thông tin trên host của các bạn nhé!

Nếu các bạn đang sử dụng XAMPP thì các bạn hãy copy tất cả mã nguồn của WordPress như hình trên vào thư mục C:\xampp\htdocs

Còn nếu các bạn đang sử dụng hosting của một nhà cung cấp nào đó thì các bạn hãy đặt mã nguồn vào thư mục public_html nhé!

Và nhớ là nếu có đăng ký hosting thì hãy đăng ký Linux hosting nhé!

Nếu các bạn chưa từng dùng XAMPP bao giờ thì các bạn có thể download nó về và cài đặt. Địa chỉ là: http://sourceforge.net/projects/xampp/

Nói chung nếu bạn đang là 1 PHP developer thì chuyện cài đặt XAMPP hay WordPress là một công việc khá đơn giản.

Sau khi config xong các bạn gõ đường dẫn: http://localhost và bắt đầu cài đặt theo hướng dẫn của chương trình, thực ra có mỗi một bước là chọn ngôn ngữ và click Install thôi.

Dưới đây là trang web mà mình đã xây dựng dựa trên WordPress. Các bạn có thể tham khảo:

vaotopweb

 

Nếu có gì khó hiểu hoặc gặp lỗi trong quá trình cài đặt, các bạn hãy thoải mái hỏi mình ngay trong topic này nhé!

Chúc các bạn thành công!

 

 

Chọn PHP framework nào?

Như các bạn đã biết, hiện nay có rất nhiều PHP framework cho chúng ta sử dụng!

Nếu các bạn là lập trình viên PHP thì không thể không sử dụng qua ít nhất là 1 PHP framework được!

PHP framework hỗ trợ chúng ta rất nhiều trong việc lập trình PHP. Không có nó chúng ta sẽ gặp rất nhiều khó khăn khi làm các dự án có sử dụng PHP.


Lý do khiến cho 1 lập trình viên lựa chọn PHP framework này thay vì PHP framework  kia có thể kể ra là:

1) Nhiều người dùng, cộng đồng sử dụng đông đảo

2) Nhiều tính năng hữu ích

3) Thật bất ngờ và thật tình cờ vì tiếp xúc với nó đầu tiên

4) Khách hàng muốn

5) Lãnh đạo muốn

6) Bạn bè bọn nó đều dùng, mình cũng a dua tý

Nhưng cho dù là lý do gì đi chăng nữa thì việc chọn cho mình 1 PHP framework để tập trung vọc là điều khá quan trọng. Khi bạn đã thật pro với 1 PHP framework thì khi phải sử dụng 1 thằng khác, thời gian chuyển phỏm cũng rất nhanh!

Những PHP framework mà mình biết và đã từng làm qua, đó là:

1) CodeIgniter framework

2) Zend framework

3) Yii framework

Hiện tại mình đang sử dụng thằng Zend framework trong công việc. Bạn nào có câu hỏi gì liên quan đến thằng này có thể hỏi mình ngay tại chủ đề này! Mình sẽ trả lời nếu mình biết (không biết thì mình cũng trả lời là Mình không biết)  ^^

Hình bên dưới là đồ thị thống kê những PHP framework phổ biến nhất trong năm 2013. Các bạn có thể tham khảo.

 

Chọn PHP framework nào?

Chọn PHP framework nào?

 

Những ebook PHP hay nhất

Chào các bạn,

Hôm nay mình sẽ giới thiệu tới các bạn những ebook PHP hay nhất mà mình đã học và tham khảo. Đây sẽ là nơi tổng hợp những ebook PHP hay nhất mà mình đã biết hoặc chuẩn bị biết.

Không chỉ có ebook PHP Tiếng Việt mà còn có rất nhiều ebook PHP Tiếng Anh sẽ được giới thiệu ở đây!

Trước tiên mình xin giới thiệu cuốn ebook PHP Tiếng Việt là Ngôn ngữ lập trình PHP

Tải về tại đây

Tiếp theo sẽ là các cuốn ebook PHP Tiếng Anh 

1) PHP MySQL And Javascript

2) Programming PHP

3) Beginning PHP 5.3

Nếu các bạn có cuốn sách nào hay thì vui lòng giới thiệu luôn tại topic này nhé!

Cám ơn các bạn! Chúc các bạn học tốt!

Tạo CAPTCHA với PHP

Tất cả các trang web cho phép đăng ký thành viên mới, đều cần tới 1 thứ gọi là CAPTCHA

Vậy CAPTCHA là gì? Và việc tạo CAPTCHA với PHP được tiến hành như thế nào?

CAPTCHA là chữ viết tắt của Completely Automated Public Turing test to tell Computers and Humans Apart, dịch nôm na là Phép thử Turing công cộng hoàn toàn tự động để phân biệt máy tính với người.

Mỗi 1 trang đăng ký sẽ tự động tạo ra 1 mã CAPTCHA. Người dùng nếu không phải là máy thì sẽ điền đúng mã CAPTCHA giống hệt với mã CAPTCHA đã được tạo ra.

Và bây giờ mình sẽ hướng dẫn các bạn tạo CAPTCHA với PHP

1) Các bạn hãy tạo 1 project với cấu trúc như hình vẽ bên dưới

pcaptcha

2) Có 3 file mà các bạn cần quan tâm.

Đó là index.php giúp tạo trang hiển thị

Đó là captcha.php giúp tạo ngẫu nhiên 1 mã CAPTCHA với 6 ký tự

Và cuối cùng là submit.php để kiểm tra xem mã CAPTCHA nhập vào có đúng với mã CAPTCHA đã được sinh ra hay không

3 file đó có code như sau:

index.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Tạo captcha với PHP</title>
</head>
<body>
<br />
<center>
<form action=”submit.php” method=”POST”>
<table>
<tr>
<td colspan=”2″><b>Bạn vui lòng nhập mã xác nhận vào ô trống bên dưới</b></td>
</tr>
<tr>
<td><input type=”text” name=”capcode” /></td>
</tr>
<tr>
<td width=”100px”><img src=”captcha.php” /></td>
<td align=”left”><input type=”submit” name=”submit” value=”Submit” /></td>
</tr>
</table>
</form>
</center>
</body>
</html>

captcha.php

<?php

/**
* Đây là nơi giúp tạo ra mã captcha
*
* @author Lưu Văn Phong <luuvanphong@outlook.com>
*/

session_start();
$captcha_arr = array(“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”,
“A”,”B”,”C”,”D”,”E”,”F”,”G”,”H”,”I”,”J”,”K”,”L”,”M”,”N”,”O”,”P”,”Q”,”R”,”S”,”T”,”U”,”V”,”W”,”X”,”Y”,”Z”,
“a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”,”i”,”j”,”k”,”l”,”m”,”n”,”o”,”p”,”q”,”r”,”s”,”t”,”u”,”v”,”w”,”x”,”y”,”z”);
$captcha_index = array_rand($captcha_arr,6);
$captcha = $captcha_arr[$captcha_index[0]].$captcha_arr[$captcha_index[1]].$captcha_arr[$captcha_index[2]].
$captcha_arr[$captcha_index[3]].$captcha_arr[$captcha_index[4]].$captcha_arr[$captcha_index[5]];

$_SESSION[“captcha”] = $captcha;
$image = imagecreatefromjpeg(“images/phpgo_captcha.jpg”);
$color = imagecolorallocate($image,0,100,0);
imagestring($image, 100, 46, 18, $captcha, $color);
header(“Content-type:image/jpeg”);
imagejpeg($image);
?>

submit.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Tạo captcha với PHP</title>
</head>
<body>
<?php

/**
* Đây là nơi kiểm tra xem mã nhập vào có giống với mã captcha mà chương trình đã tạo ra hay không
*
* @author Lưu Văn Phong <luuvanphong@outlook.com>
*/
session_start();
if ($_POST[‘capcode’] != $_SESSION[‘captcha’] or $_SESSION[‘captcha’] == ”)
{
echo “Mã nhập vào sai tè le rùi bạn! Vui lòng nhập lại”;
}
else {
echo “Đúng rùi! Bạn chắc chắn không phải là máy!”;
}
?>
</body>
</html>

Đó là tất cả những gì mà các bạn cần để tạo CAPTCHA với PHP

Các bạn có thể tải về toàn bộ source code tại đây!

Chúc các bạn thành công!

Phân trang trong PHP

Phân trang trong PHP hay còn gọi là PHP pagination, là 1 việc rất quan trọng đối với mọi trang web có trang danh sách (trang list).

Với 1 danh sách dài dằng dặc, ví dụ một danh sách liệt kê tất cả các nhân sự của 1 công ty lớn nào đó.

Giả sử công ty đó có 1000 nhân viên. Nếu liệt kê tất cả thông tin của các nhân viên trên cùng 1 trang web thì thật là kinh khủng. Chính vì lẽ đó, việc phân trang trong PHP (PHP pagination) đã ra đời.

Để minh họa cho bài viết hướng dẫn ngay sau đây, mình đã tạo ra 1 project mới tên là Pagination, mô tả lại cách thức phân trang như thế nào trong PHP.

Các bạn có thể tải về source code của project này tại đây!

Thư mục dự án Pagination có cấu trúc như hình dưới:

pagination

1) Trang index.php là trang hiển thị danh sách. (Ex: danh sách các thành viên)

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Human Resource Management</title>
</head>
<body>
<br />
<center>
<table border=1>
<tr>
<th>MemberID</th>
<th>MemberName</th>
<th>Birthday</th>
<th>Place</th>
<th>Phone</th>
<th>Email</th>
</tr>
<?php
include_once ‘BizManager/ConnectionManager.php’;
include_once ‘BizManager/PagingManager.php’;

// Show Members List
$paging_instance = new PagingManager();
if (isset($_GET[‘p’]))
{
// Get start record
$start_row = ($_GET[‘p’] * PagingManager::$pagesize) – PagingManager::$pagesize;
}
else
{
$start_row = 0;
}
$result = $paging_instance->getData(“Select * from Members limit $start_row,” . PagingManager::$pagesize);
$select_count = $paging_instance->getData(“Select count(*) from Members”);
$page_count = $select_count/PagingManager::$pagesize;

// Display data in html view
while ($row = mysql_fetch_array($result))
{
echo “<tr>
<td>” . $row[‘MemberID’] . “</td>
<td>” . $row[‘MemberName’] . “</td>
<td>” . $row[‘Birthday’] . “</td>
<td>” . $row[‘Place’] . “</td>
<td>” . $row[‘Phone’] . “</td>
<td>” . $row[‘Email’] . “</td>
</tr>”;
}

echo “<tr>
<td colspan=6>”;
for($i = 1; $i <= ceil($page_count);$i++)
{
echo “<b><a href=” . “?p=$i” . ” style=\”text-decoration:none\”>$i </a></b>”;
}
echo “</td>
</tr>
</table></center>”;
?>
</table>
</center>
</body>
</html>

2) Trang ConnectionManager.php thiết lập thông tin kết nối với mySQL

<?php
/**
* This class contains functions of implementing pagination
*
* @author Luu Van Phong <luuvanphong@outlook.com>
*/
class ConnectionManager {
public static $db_hostname = “localhost”;
public static $db_database = “hrm”; // Human Resource Management
public static $db_username = “root”;
public static $db_password = “”;
}

?>

3) Trang PagingManager.php kết nối và xử lý dữ liệu truyền về từ mySQL

<?php
/**
* This class contains functions of implementing pagination
*
* @author Luu Van Phong <luuvanphong@outlook.com>
*/
class PagingManager {
// PageSize default value
public static $pagesize = 3;

// Connect to mySQL
public function openConnection($hostname, $database, $username, $password)
{
// Connect to the server
$server_connect = mysql_connect($hostname, $username, $password);
if (!$server_connect) die(“Can not connect to the server.<br/>”);

// Connect to get data from database
$db_connect = mysql_select_db($database);
if (!$db_connect) die(“Can not connect to the database.<br/>”);
}

// Close database connection
public function closeConnection()
{
mysql_close();
}

// Select data from the database
public function getData($query)
{
$this->openConnection(ConnectionManager::$db_hostname, ConnectionManager::$db_database,
ConnectionManager::$db_username, ConnectionManager::$db_password);
$result = mysql_query($query);
$this->closeConnection();
return $result;
}
}

?>

À còn file .sql nữa nhỉ?!

Database phục vụ cho project Pagination là hrm

Các bạn tải về tại đây nhé!

Debug với xdebug

Debug trong PHP là một điều vô cùng đơn giản và dễ dàng khi PHP cung cấp cho chúng ta một công cụ debug là xdebug.

xdebug đã được tích hợp sẵn trong PHP rồi. Việc của chúng ta đơn giản là dùng nó thôi.

Để kích hoạt công cụ debug này, chúng ta làm như sau:

Các bạn vào theo đường dẫn: C:\xampp\php\php.ini 

Các bạn kéo xuống dòng gần cuối cùng, các bạn sẽ thấy khu vực bắt đầu bằng [XDebug]

Các bạn hãy bỏ hết comment trong khu vực đó đi. Đơn giản bằng cách bỏ các dấu ; ở trước xdebug.

[XDebug]
zend_extension = “C:\xampp\php\ext\php_xdebug.dll”
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = “C:\xampp\tmp”
xdebug.profiler_output_name = “cachegrind.out.%t-%s”
xdebug.remote_enable = 1
xdebug.remote_handler = “dbgp”
xdebug.remote_host = “127.0.0.1”
xdebug.trace_output_dir = “C:\xampp\tmp”

Các bạn nhớ thiết lập giá trị xdebug.remote_enable = 1 để enable xdebug lên nhé!

Chúc các bạn thành công!

PHP và AngularJS

Nhắc đến AngularJS chắc hẳn nhiều lập trình viên Việt Nam sẽ thấy lạ lẫm. Phần vì AngularJS không nổi tiếng như jQuery nên không thu hút được nhiều sự chú ý, phần vì AngularJS không được ứng dụng nhiều trong các dự án do các lập trình viên Việt Nam làm nên những cái hay cái dở của nó chưa được liệt kê và áp dụng.

Giống như jQuery, AngularJS là một Javascript framework. Nó hoàn toàn miễn phí và do Google nắm bản quyền và hỗ trợ. Cho nên chúng ta hoàn toàn yên tâm về tương lai tươi sáng của nó.

Định nghĩa về AngularJS theo như Wikipedia

AngularJS is an open-source JavaScript framework, maintained by Google, that assists with running what are known as single-page applications. Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier.

The library reads in HTML that contains additional custom tag attributes; it then obeys the directives in those custom attributes, and binds input or output parts of the page to a model represented by standard JavaScript variables. The values of those JavaScript variables can be manually set, or retrieved from static or dynamic JSON resources.

Điều mà mình thấy hấp dẫn nhất ở AngularJS chính là việc nó được thiết kế để hoạt động theo mô hình MVC (Model-View-Controller). Nếu bạn nào đang lập trình PHP thì không thể không biết đến mô hình này. Việc tách bạch giữa các phần trong mô hình MVC khiến cho chúng ta dễ quản lý, code thông thoáng, rõ ràng và dễ dàng trong việc chia sẻ cũng như bảo trì sau này.

Code của AngularJS rất ngắn gọn. Nó ngắn gọn hơn cả code của jQuery.

AngularJS mang trong mình tốc độ xử lý, hiệu năng cao và thật sự mềm dẻo!

 

Hãy cùng học AngularJS và chia sẻ tất cả thông tin về nó nhé!

 

Cài đặt và config CodeIgniter framework với NetBeans

Chào các bạn!

Sau khi đã ngâm cứu cách cài đặt CodeIgniter framework với NetBeans thành công! Hôm nay mình sẽ hướng dẫn các bạn cách cài đặt và config với PHP framework này! Các bước cụ thể như  sau:

1) Các bạn vào trang web sau để tải về CodeIgniter framework mới nhất nhé

http://www.codeigniter.com

2) Các bạn mở NetBeans IDE ra

3) Từ menu, các bạn vào theo đường dẫn sau Tools –> Plugins –> tab Setting –> Click Add và điền vào link download plugin như hình bên dưới.

codeigniter_plugin

4) Sau đó các bạn chuyển qua tab Available Plugins và search với từ khóa là codeigniter –> các bạn Install cả 2 plugins là PHP CI Framework và PHP CI Framework Repository nhé!

codeigniter_install

5) Cuối cùng là đến giai đoạn config đường dẫn đến file CodeIgniter.zip mà các bạn đã download về ở bước 1. Các bạn vào theo đường dẫn Tools –> Options –> PHP tab –> CodeIgniter tab –> Base Files –> Add Zip… –> Browse tới file CodeIgniter

codeigniter_config

Vậy là hoàn thành rùi đó!

Các bạn hãy tạo 1 project mới và sử dụng framework CodeIgniter này nhé!

Chúc các bạn thành công!

Website đa ngôn ngữ trong PHP

Website đa ngôn ngữ trong PHP vẫn luôn là vấn đề muôn thuở của các lập trình viên.

Có 2 cách để hiển thị giao diện đa ngôn ngữ:

Cách 1: Tạo ra các file ngôn ngữ tương ứng. Ví dụ: vi.lng.php và en.lng.php

Cách 2: Sử dụng Google Translate. Tuy nhiên cách này sẽ gặp phải vấn đề là nhỡ đâu Google dịch sai ý nghĩa của câu từ thì sao, hoặc dịch từ tiếng nước ngoài sang tiếng Việt mà chúng ta cảm thấy không ưng ý hay hài lòng.

Trong bài viết hướng dẫn ngay sau đây, mình sẽ hướng dẫn các bạn một cách thật cụ tỉ nhất có thể. Các bạn chỉ cần đọc một lần là sẽ làm được ngay! 

Mình sẽ hướng dẫn các bạn làm theo cách đầu tiên (cách 1).

Đầu tiên các bạn tạo 1 project mới, có cấu trúc thư mục giống như hình bên dưới.

planguage

Đầu tiên các bạn tạo 1 folder và đặt tên nó là languages

Trong folder này, các bạn tạo ra 2 file ngôn ngữ, 1 cho tiếng Việt và 1 cho tiếng Anh. Đó là vi.lng.phpen.lng.php

2 file này có dữ liệu như sau

vi.lng.php

<?php
$main[‘language’] = “Ngôn ngữ”;
$main[‘welcome’] = “Chào mừng đến với blog PHPGO”;
$main[‘author’] = “Đây là blog của tác giả Lưu Văn Phong”;
$main[‘en-en’] = “Tiếng Anh”;
$main[‘en-vi’] = “Tiếng Việt”;
?>

en.lng.php

<?php
$main[‘language’] = “Language”;
$main[‘welcome’] = “Welcome to PHPGO blog”;
$main[‘author’] = “This is the blog of Luu Van Phong”;
$main[‘en-en’] = “English”;
$main[‘en-vi’] = “Vietnamese”;
?>

Các bạn chú ý nhé! Ngôn ngữ cho màn hình nào thì hãy đặt tên sao cho giống với màn hình đó. Ví dụ: mình đang xây dựng đa ngôn ngữ cho màn hình main.php, cho nên như các bạn có thể thấy mình bắt đầu bằng $main[‘language’] = “Language”;

Mình tạo ra một class tên là LanguageHelper để giúp xử lý việc trả về ngôn ngữ mà user đã lựa chọn từ dropdownlist.

<?php
/**
* Hiển thị giao diện đa ngôn ngữ của website
* @author Lưu Văn Phong <luuvanphong@outlook.com>
* @link https://phpgo.wordpress.com Tất cả các vấn đề liên quan đến PHP
*/

class LanguageHelper {
/**
* Kiểm tra xem user chọn hiển thị ngôn ngữ gì từ Dropdownlist
* Nếu chọn Tiếng Việt thì hiển thị Tiếng Việt, ngược lại thì hiển thị Tiếng Anh
* Mặc định ban đầu là Tiếng Việt
*/
function checkLang()
{
if (isset($_GET[‘lang’]))
{
$lang = $_GET[‘lang’];
return “languages/$lang.lng.php”;
}
else return “languages/vi.lng.php”;
}
}
?>

Và cuối cùng là việc hiển thị giao diện đa ngôn ngữ ở trang main.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Website đa ngôn ngữ trong PHP</title>
<!– Xử lý việc thay đổi ngôn ngữ khi user lựa chọn trong Dropdownlist –>
<script language=”javascript”>
function changeValue(val)
{
if (val===”vi”) {
window.location.href = “?lang=vi”; }
else {
window.location.href = “?lang=en”; }
}
</script>
</head>
<body>
<?php
/**
* Hiển thị giao diện đa ngôn ngữ của website
* @author Lưu Văn Phong <luuvanphong@outlook.com>
* @link https://phpgo.wordpress.com Tất cả các vấn đề liên quan đến PHP
*/

// Include LanguageHelper class
include_once ‘LanguageHelper.php’;

// Gọi hàm checkLang để xem user chọn ngôn ngữ nào
$object = new LanguageHelper();
$lang = $object->checkLang();

// User chọn ngôn ngữ nào thì mình sẽ include file ngôn ngữ đó vào page
include_once($lang);

// Hiển thị giao diện ngôn ngữ dựa vào option được chọn
$vi = $main[‘en-vi’];
$en = $main[‘en-en’];
$language = $main[‘language’];
$welcome = $main[‘welcome’];
$author = $main[‘author’];

echo <<<_LANGUAGE_
<form>
<b>$language:</b>
<select name=”lang” id=”lang” onchange=”changeValue(this.value)”>

_LANGUAGE_;
if (isset($_GET[‘lang’]))
{
if ($_GET[‘lang’] == “vi”)
{
echo <<<_LANGUAGE_
<option value=”vi” selected=”selected”>$vi</option>
<option value=”en”>$en</option>
_LANGUAGE_;
}
else
{
echo <<<_LANGUAGE_
<option value=”vi”>$vi</option>
<option value=”en” selected=”selected”>$en</option>
_LANGUAGE_;
}
echo <<<_LANGUAGE_
</select>
<p>$welcome</p>
<p>$author</p>
</form>
_LANGUAGE_;
}
else
{
echo <<<_LANGUAGE_
<option value=”vi” selected=”selected”>$vi</option>
<option value=”en”>$en</option>
</select>
<p>$welcome</p>
<p>$author</p>
</form>
_LANGUAGE_;
}
?>
</body>
</html>

Các bạn có thể tải về toàn bộ source code tại đây! Chúc các bạn thành công!  🙂

Gửi email trong PHP

Gửi email trong PHP là 1 việc vô cùng đơn giản và dễ dàng. PHP đã cung cấp cho chúng ta một function gửi mail là

mail($to, $subject, $message, $additional_headers);

Việc của chúng ta là sử dụng nó, nhận các giá trị tương ứng mà user nhập vào, kiểm tra xem dữ liệu đó có hợp lệ hay không. Nếu hợp lệ thì cho phép Gửi, còn không thì bắt user nhập lại. Các bạn tham khảo code gửi email trong PHP mà mình viết ở bên dưới nhé!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″>
<title>Gửi email trong PHP</title>
</head>
<body>
<?php
/**
* @param string $eValue
* @return boolean
*/
function filterEmail($eValue)
{
// Thanh lọc những ký tự không mong muốn mà user nhập vào
$eValue = filter_var($eValue,FILTER_SANITIZE_EMAIL);

// Nếu địa chỉ email điền vào không đúng định dạng thì báo lỗi
if (filter_var($eValue,FILTER_VALIDATE_EMAIL)) return true;
else return false;
}

/** Kiểm tra giá trị email nhập vào
* Nếu email người gửi khác rỗng thì chúng ta sẽ đi kiểm tra xem email của
*  họ có chứa ký tự không mong muốn hay không?
* Nếu hợp lệ thì gửi đi và thông báo thành công.
* Nếu không thì giữ nguyên form và bắt user thao tác lại.
*/
if (isset($_REQUEST[’emailfrom’]))
{
$isValid = filterEmail($_REQUEST[’emailfrom’]);
if ($isValid==FALSE)
echo “Email người gửi không hợp lệ. Vui lòng nhập lại”;
else
{
$emailfrom = $_REQUEST[’emailfrom’];
$title = $_REQUEST[‘title’];
$content = $_REQUEST[‘content’];
mail(“luuvanphong@outlook.com”, $title, $content, $emailfrom);
echo “Chúng tôi đã nhận được ý kiến của bạn! Xin chân thành cám ơn!”;
}
}
else
{
// Sử dụng heredoc để hiển thị HTML form
echo <<<_EMAIL_
<form id=”frmEmail” method=”POST” action=”index.php”>
Hòm thư của bạn: <input type=”text” name=”emailfrom” style= “width:140px;” /><br />
Tiêu đề: <input type=”text” name=”title” style= “width:200px;” /><br />
Nội dung:<br />
<textarea name=”content” rows=”10″ cols=”50″></textarea><br />
<input type=”submit” name=”send” value=”Gửi” />
</form>
_EMAIL_;
}
?>
</body>
</html>