6/1/17

Tổng hợp hướng dẫn về xây dựng ứng dụng lập trình web PHP

Tổng hợp hướng dẫn về xây dựng ứng dụng lập trình web PHP
Trong bài này mình xin liệt kê các ứng dụng lập trình web PHP với các bạn của Vnfit.com gửi đến. Ứng dụng gồm các ứng dụng liên quan đến PHP, MySQL, javascrip, Jquery, Ajax… không liên quan đến các framework của PHP nhé. Ứng dụng giúp các bạn hiểu về nó nắm bắt được để xây dựng lại qua đó có thể áp dụng vào thực tế là các dự án mình đang triển khai nhé.

Lập trình ứng dụng với PHP

1. Ứng dụng đăng nhập, thoát với PHP và MySQL

2. Ứng dụng quản lý thành viên với PHP và MySQL

3. Ứng dụng thêm thành viên bằng PHP và MySQL

4. Ứng dụng sửa xóa thành viên bằng PHP và MySQL

5. Ứng dụng đếm số người Online bằng PHP

6. Hệ thống bình chọn bằng PHP và MySQL

7. Upload nhiều hình ảnh bằng PHP

8. Ứng dụng giỏ hàng bằng PHP phần 1

9. Ứng dụng giỏ hàng bằng PHP phần 2

10. Lấy feed post fanpage facebook với facebook api sdk php

11. Ứng dụng đăng nhập (Login) với facebook sử dụng PHP

12. Ứng dụng đăng nhập (Login) với Google account sử dụng PHP

13. Ứng dụng đăng nhập (Login) với Twitter sử dụng PHP

14. Ứng dụng Đăng nhập (login) với LinkedIn sử dụng PHP

15. Tìm kiếm với PHP và Ajax

16. Ứng dụng Sử dụng Google reCAPTCHA với PHP

17. Ứng dụng Autocomplete textbox sử dụng jQuery, PHP và MySQL

18. Tình khoảng cách giữa 2 địa điểm với Google Maps API và PHP

19. Kéo và thả tập tin tải lên bằng cách sử dụng PHP và DropzoneJS

20. Xuất dữ liệu sang Excel trong PHP

21. Ứng dụng Load more bằng cách sử dụng jQuery Ajax và PHP từ CSDL

22. Like và Unlike với jQuery, Ajax and PHP

23. Gửi email với nhiều file đính kèm trong PHP

24. Kéo và thả hình ảnh sắp xếp lại bằng cách sử dụng jQuery, Ajax, PHP & MySQL

[Ứng dụng php] Sử dụng Google reCAPTCHA với PHP

[Ứng dụng php] Sử dụng Google reCAPTCHA với PHP
Ứng dụng sử dụng Google reCAPTCHA với PHP mình sắp trình báy sau đây được đăng ký từ google:

Bước 1: các bạn cần đăng ký reCAPTCHA của google

Các bạn truy cập vào đường dẫn sau: https://www.google.com/recaptcha/admin#list. Dưới đây là giao diện của đăng ký recaptcha của google.

Bước 2: Lấy Site Key của bạn

Lấy site Key đăng ký của website của bạn.


Bước 3: Lấy Secret Key của bạn

Bước 4: Tạo form HTML với mã reCAPTCHA

Tạo file index.php với form HTMl như sau:

ind

Bước 5: PHP code cho ứng dụng Google reCAPTCHA với PHP


<?php
if(isset($_POST['submit'])):
if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
//Nhập secret key
$secret = 'Nhập secret key';
//Xác minh dữ liệu
$verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
$responseData = json_decode($verifyResponse);
$name = !empty($_POST['name'])?$_POST['name']:'';
$email = !empty($_POST['email'])?$_POST['email']:'';
$message = !empty($_POST['message'])?$_POST['message']:'';
if($responseData->success):
$to = 'vnfitcom@gmail.com';
$subject = 'Tiêu đề liên hệ';
$htmlContent = "
<h1>Chi tiết liên hệ</h1>
<p><b>Tên: </b>".$name."</p>
<p><b>Email: </b>".$email."</p>
<p><b>Nội dung: </b>".$message."</p>
";
// Luôn đặt content-type khi gửi email HTML
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From:'.$name.' <'.$email.'>' . "\r\n";
//gửi email
@mail($to,$subject,$htmlContent,$headers);
$succMsg = 'Gửi liên hệ thành công.';
$name = '';
$email = '';
$message = '';
else:
$errMsg = 'Xác minh Robot không thành công, vui lòng thử lại.';
endif;
else:
$errMsg = 'Vui lòng click vào hộp reCAPTCHA.';
endif;
else:
$errMsg = '';
$succMsg = '';
$name = '';
$email = '';
$message = '';
endif;
?>

Bước 6: Test trên web với kết quả thu được

Bài trên mình đã hướng dẫn các bạn tạo Google reCAPTCHA với PHP các bạn có thể thực hành trên website của mình.

[Ứng dụng PHP] Forms – Validate E-mail và URL

[Ứng dụng PHP] Forms – Validate E-mail và URL
1. Validate Form với input text

$txtname = test_input($_POST["txtname"]);
if (!preg_match("/^[a-zA-Z ]*$/",$txtname)) {
$nameErr = "Chỉ nhập chữ cái";
}

2. Validate E-mail

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Định dạng email không hợp lệ";
}

3. Validate URL

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Không đúng định dạng URL";
}

4. Validate Text, E-mail, và URL

<?php
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Yêu cầu nhập tên";
} else {
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Chỉ nhập chữ cái.";
}
}

if (empty($_POST["email"])) {
$emailErr = "Email không để trống";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Không đúng định dạng Email";
}
}

if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Không đúng định dạng URL";
}
}

if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}

if (empty($_POST["gender"])) {
$genderErr = "Nhập giới tính";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>

Trên đây là hướng dẫn Validate E-mail và URL của chúng tôi.

[Ứng dụng php] Load more bằng cách sử dụng jQuery Ajax và PHP từ CSDL

[Ứng dụng php] Load more bằng cách sử dụng jQuery Ajax và PHP từ CSDL
Trong bài mình sẽ hướng dẫn các bạn xây dựng ứng dụng load more bằng cách sử dụng jQuery Ajax và PHP từ CSDL gồm các bước sau:

Bước 1: Tạo CSDL “dbtest” và bảng “program”

Các bạn tạo một CSDL “dbtest” trong phpMyAdmin và bảng “program” như sau:

Bước 2: Insert nội dung vào bảng

Insert nội dung vào bảng để tý nữa test. Chúng ta insert nội dung các ngôn ngữ như sau:

Bước 3: Tạo file “config.php“

Tạo file config.php để kết nối đến CSDL của bạn.


<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'dbtest';
//kết nối CSDL
$con = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
?>

Bước 4: Tạo file “index.php” với các nội dung như sau

Javascript Code

Trong này tôi sử dụng thư viện của Jquery cùng với là khi click thì sẽ load đến file ajax_more để lấy dữ liệu đổ về.

jsc

PHP code

php1

CSS code


<style type="text/css">
body {
font: normal 13px arial,sans-serif;
}
.tutorial_list{
margin-bottom:20px;
}
div.list_item {
border-left: 4px solid #7ad03a;
padding: 1px 12px;
background-color:#F1F1F1;
-webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
}
div.list_item {
margin: 5px 15px 2px;
}
div.list_item p {
margin: .5em 0;
padding: 2px;
font-size: 13px;
line-height: 1.5;
}
.list_item a {
text-decoration: none;
padding-bottom: 2px;
color: #0074a2;
-webkit-transition-property: border,background,color;
transition-property: border,background,color;-webkit-transition-duration: .05s;
transition-duration: .05s;
-webkit-transition-timing-function: ease-in-out;
transition-timing-function: ease-in-out;
}
.list_item a:hover{
text-decoration:underline;
}
.show_more_main {
margin: 15px 25px;
}
.show_more {
background-color: #f8f8f8;
background-image: -webkit-linear-gradient(top,#fcfcfc 0,#f8f8f8 100%);
background-image: linear-gradient(top,#fcfcfc 0,#f8f8f8 100%);
border: 1px solid;
border-color: #d3d3d3;
color: #333;
font-size: 12px;
outline: 0;
}
.show_more {
cursor: pointer;
display: block;
padding: 10px 0;
text-align: center;
font-weight:bold;
}
.loding {
background-color: #e9e9e9;
border: 1px solid;
border-color: #c6c6c6;
color: #333;
font-size: 12px;
display: block;
text-align: center;
padding: 10px 0;
outline: 0;
font-weight:bold;
}
.loding_txt {
background-image: url(loading_16.gif);
background-position: left;
background-repeat: no-repeat;
border: 0;
display: inline-block;
height: 16px;
padding-left: 20px;
}

</style>

Bước 5: Tạo file “ajax_more.php” với nội dung sau

Kết quả thu được khi chạy chương trình:

Trên đây là ứng dụng load more bằng cách sử dụng jQuery Ajax và PHP từ CSDL.

[Ứng dụng PHP] Thêm thành viên với PHP và MySQL

[Ứng dụng PHP] Thêm thành viên với PHP và MySQL
Trong ứng dụng trước đăng nhập với PHP và MySQL mình đã hướng dẫn các bạn. Trong bài này mình sẽ hướng dẫn các bạn làm chức năng thêm thành viên với PHP và MySQL. Để làm chức năng thêm thành viên với PHP và MySQL các bạn làm các bước sau.

Tạo fiel “add_user.php“

Bước 1: Tạo kết nối đến CSDL

Trong bước này mình sẽ kết nối CSDL của mình là “dbtest” và bảng mình sử dụng là bảng user ở bài trước

//Cấu hình CSDL
 define('DB_HOST', 'localhost'); // Tên host
 define('DB_NAME', 'dbtest'); // Tên DB
 define('DB_USER','root');
 define('DB_PASSWORD','');
 // kết nối CSDL
 $con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Không thể kết nối tới MySQL: " . mysql_error());
 $db=mysql_select_db(DB_NAME,$con) or die("Không thể kết nối tới MySQL: " . mysql_error());

Bước 2: Tạo 1 form thêm thành viên với HTML

12



Bước 3: Check session Use và Pas

Ta cần kiểm tra xem hõ đã đăng nhập chưa để được truy cập vào trang thêm thành viên với check sau:


<?php
session_start();
if(!empty($_SESSION['Use']) and !empty($_SESSION['Pas']))
{
 // tại đây thực thi các hoạt động khi đăng nhập thành công.
}
else
{
 header("location: login.html");
 exit();
}
?>

Ở đây nếu đăng nhập thành công thì lưu session là use và pas để kiểm tra xem nếu có 2 session này thì cho thực hiện thêm thành viên còn không thì trả về trang login.html

Bước 4: Tạo hàm “add” thành viên


function add()
 {
 if(!empty($_POST['user']) and !empty($_POST['pass']) and !empty($_POST['active']))
 {
 $user = $_POST['user'];
 $active = $_POST['active'];
 if($_POST['pass'] == $_POST['re_pass'])
 {
 $pass = $_POST['pass'];

 $query = mysql_query("SELECT * FROM user where username = '$_POST[user]'") or die(mysql_error());
 if(mysql_num_rows($query) != "")
 {
 echo "Xin lỗi tên đăng nhập đã tồn tại";
 }
 else
 {
 $query1 = mysql_query("insert into user(username,password,active) values('".$user."','".$pass."','".$active."')") or die(mysql_error());
 echo "Đã thêm thành công";
 }
 }
 else{
 echo "Mật khẩu và xác nhận mật khẩu không đúng";
 }
 }
 else
 {
 echo "Chưa điền thông tin vào";
 }

 }

Bước 5: chạy và được kết quả

add

Code hoàn chỉnh


<?php
 session_start();
 //Cấu hình CSDL
 define('DB_HOST', 'localhost'); // Tên host
 define('DB_NAME', 'dbtest'); // Tên DB
 define('DB_USER','root');
 define('DB_PASSWORD','');
 // kết nối CSDL
 $con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Không thể kết nối tới MySQL: " . mysql_error());
 $db=mysql_select_db(DB_NAME,$con) or die("Không thể kết nối tới MySQL: " . mysql_error());
 // Hàm thêm thành viên
 function add()
 {
 if(!empty($_POST['user']) and !empty($_POST['pass']) and !empty($_POST['active'])) // kiểm tra xem user, pass, active có rỗng ko
 {
 $user = $_POST['user']; // gán user
 $active = $_POST['active']; // gán active
 if($_POST['pass'] == $_POST['re_pass']) // kiểm tra xem pass và re_pass có trùng nhau ko
 {
 $pass = $_POST['pass']; // gán pass
 $query = mysql_query("SELECT * FROM user where username = '$_POST[user]'") or die(mysql_error()); // select user ra để kiểm tra trùng tên
 if(mysql_num_rows($query) != "")
 {
 echo "Xin lỗi tên đăng nhập đã tồn tại";
 }
 else
 {
 $query1 = mysql_query("insert into user(username,password,active) values('".$user."','".$pass."','".$active."')") or die(mysql_error()); // insert dữ liệu
 echo "Đã thêm thành công";
 }
 }
 else{
 echo "Mật khẩu và xác nhận mật khẩu không đúng";
 }
 }
 else
 {
 echo "Chưa điền thông tin vào";
 }

 }
?>

<?php
 if(!empty($_SESSION['Use']) and !empty($_SESSION['Pas']))
 {
?>
<fieldset style="width:30%">
 <legend>Thêm thành viên</legend>
 <form action='add_user.php' method='POST'>
 Tên đăng nhập: <br><input type='text' name='user' size='40' /><br />
 Mật khẩu: </br><input type='password' name='pass' size='40' /> <br />
 Nhập lại mật khẩu: <br><input type='password' name='re_pass' size='40' /><br />
 <br>
 Active: <select name='active'>
 <option value='1'>Active</option>
 <option value='2'>No Active </option>
 </select>
 <br />
 <br />
 <input type='submit' name='adduser' value='Thêm thành viên' />
 </form>
 </legend>
</fieldset>

<?php
 // Kiểm tra xem đã submit chưa
 if(isset($_POST['adduser']))
 {
 add();
 }
 }
 else
 {
 header("location: login.html");
 exit();
 }
?>

Code trên mình đã comment đầy đủ để các bạn dễ hiểu. Bạn nào chưa hiểu comment ở dưới nhé.

Vậy mình đã hướng dẫn các bạn hoàn thành chức năng Thêm thành viên với PHP và MySQL. Các bạn code như trên hoặc download ở dưới mình sẽ update lên sau.

Tổng hợp: Lộ trình tự học lập trình web bằng PHP và MySQL

Tổng hợp: Tổng hợp hướng dẫn về xây dựng ứng dụng lập trình web PHP

Link Download:

Chân thành cảm ơn các bạn theo dõi. Nếu thấy hay xin chia sẻ và like bài viết của mình.

[Ứng dụng PHP] Quản lý thành viên với PHP và MySQL

[Ứng dụng PHP] Quản lý thành viên với PHP và MySQL
Trong bài này mình xin trình bày đến các bạn ứng dụng Quản lý thành viên với PHP và MySQL ở bài trước mình đã hướng dẫn các bạn cách login và thêm thành viên, ở bài này mình xin hướng dẫn các bạn sau khi đăng nhập sẽ là danh sách quản lý thanh viên trong quản trị. Với các bước sau:

Tạo file list_user.php với các nội dung như sau:

Bước 1: Tạo kết nối đến CSDL

Trong bước này mình sẽ kết nối CSDL của mình là “dbtest” và bảng mình sử dụng là bảng user ở bài trước.

//Cấu hình CSDL
define('DB_HOST', 'localhost'); // Tên host
define('DB_NAME', 'dbtest'); // Tên DB
define('DB_USER','root');
define('DB_PASSWORD','');
// kết nối CSDL
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Không thể kết nối tới MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Không thể kết nối tới MySQL: " . mysql_error());

Bước 2: Check session Use và Pas

Ta cần kiểm tra xem hõ đã đăng nhập chưa để được truy cập vào trang thêm thành viên với check sau:

<?php
session_start();
if(!empty($_SESSION['Use']) and !empty($_SESSION['Pas']))
{
// tại đây thực thi các hoạt động khi đăng nhập thành công.
}
else
{
header("location: login.html");
exit();
}
?>

Bước 3: Viết hàm “list_all()” để lấy dữ liệu


function list_all()
{
$query = mysql_query("select * from user order by id DESC") or die(mysql_error());
if(mysql_num_rows($query) == "")
{
echo "<tr><td>";
echo "Không có dữ liệu";
echo "</td></tr>";
}
else
{
$i=0;
while($row=mysql_fetch_array($query))
{
$i++;
echo "<tr>";
echo "<td>$i</td>";
echo "<td>$row[username]</td>";
if($row['active']==1)
{
echo "<td>Kích hoạt</td>";
}
else{
echo "<td>Chưa kích hoạt</td>";
}
echo "<td><a href='edit_user.php?userid=$row[id]'>Edit</a></td>";
echo "<td><a href='del_user.php?userid=$row[id]'>Del</a></td>";
echo "</tr>";
}
}
}

Code hoàn chỉnh

{html]

<?php
session_start();
//Cấu hình CSDL
define(‘DB_HOST’, ‘localhost’); // Tên host
define(‘DB_NAME’, ‘dbtest’); // Tên DB
define(‘DB_USER’,’root’);
define(‘DB_PASSWORD’,”);
// kết nối CSDL
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die(“Không thể kết nối tới MySQL: ” . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die(“Không thể kết nối tới MySQL: ” . mysql_error());
// Hàm list all
function list_all()
{
$query = mysql_query(“select * from user order by id DESC”) or die(mysql_error());
if(mysql_num_rows($query) == “”)
{
echo “<tr><td>”;
echo “Không có dữ liệu”;
echo “</td></tr>”;
}
else
{
$i=0;
while($row=mysql_fetch_array($query))
{
$i++;
echo “<tr>”;
echo “<td>$i</td>”;
echo “<td>$row[username]</td>”;
if($row['active']==1)
{
echo “<td>Kích hoạt</td>”;
}
else{
echo “<td>Chưa kích hoạt</td>”;
}
echo “<td><a href=’edit_user.php?userid=$row[id]‘>Edit</a></td>”;
echo “<td><a href=’del_user.php?userid=$row[id]‘>Del</a></td>”;
echo “</tr>”;
}
}
}
?>
<?php
if(!empty($_SESSION['Use']) and !empty($_SESSION['Pas']))
{
?>
<table align=’center’ width=’400′ border=’1′>
<tr>
<td>STT</td>
<td>Tên đăng nhập</td>
<td>Active</td>
<td>Edit</td>
<td>Del</td>
</tr>

<?php
list_all();
}
else
{
header(“location: login.html”);
exit();
}
?>

[/html]

Chạy chương trình và được kết quả:

Trên đây là hướng dẫn về Ứng dụng PHP Quản lý thành viên với PHP và MySQL.

[Ứng dụng php] phân trang với Ajax jquery và PHP

[Ứng dụng php] phân trang với Ajax jquery và PHP

Để phân trang với Ajax Jquery và PHP trong CSDL MySQM bạn cần tạo ra 1 CSDL có dữ liệu ban đầu, để xây dưng chương trình cần các bước sau:

Bước 1: Tạo CSDL “dbtest” và bảng “program”

Các bạn tạo một CSDL “dbtest” trong phpMyAdmin và bảng “program” như sau:

Bước 2: Insert nội dung vào bảng

Insert nội dung vào bảng để tý nữa test. Chúng ta insert nội dung các ngôn ngữ như sau:

Bước 3: Tạo file “config.php“

Tạo file config.php để kết nối đến CSDL của bạn.


<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'dbtest';
$item_per_page = 5; //mỗi item trên 1 trang
//kết nối CSDL
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);
?>

Bước 4: Tạo file “index.php” để đổ dữ liệu load Ajax vào đây

Javascript

Mình sẽ sử dụng phương pháp của jQuery load() để thực hiện việc gọi Ajax vào file PHP.

js1

HTML

Ở đây mình sẽ tạo ra để load dữ liệu ajax từ php vào thẻ div của HTML


<div class="loading-div"><img src="ajax-loader.gif" ></div>
<div id="results"><! - Nội dung sẽ được trả ở đây -></div>

CSS

CSS cho phân trang và dữ liệu của mình

<style>
body,td,th {
font-family: Georgia, "Times New Roman", Times, serif;
color: #333;
}
.contents{
margin: 20px;
padding: 20px;
list-style: none;
background: #F9F9F9;
border: 1px solid #ddd;
border-radius: 5px;
}
.contents li{
margin-bottom: 10px;
}
.loading-div{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.56);
z-index: 999;
display:none;
}
.loading-div img {
margin-top: 20%;
margin-left: 50%;
}

/* Pagination style */
.pagination{margin:0;padding:0;}
.pagination li{
display: inline;
padding: 6px 10px 6px 10px;
border: 1px solid #ddd;
margin-right: -1px;
font: 15px/20px Arial, Helvetica, sans-serif;
background: #FFFFFF;
box-shadow: inset 1px 1px 5px #F4F4F4;
}
.pagination li a{
text-decoration:none;
color: rgb(89, 141, 235);
}
.pagination li.first {
border-radius: 5px 0px 0px 5px;
}
.pagination li.last {
border-radius: 0px 5px 5px 0px;
}
.pagination li:hover{
background: #CFF;
}
.pagination li.active{
background: #F0F0F0;
color: #333;
}
</style>

Bước 5: Tạo file “fetch_pages.php”

Trong file này mình chia làm 2 phần là 1 phần xử lý và 1 hàm phân trang với PHP

Hàm phân trang

Bước 6: Kết quả khi chạy chương trình:

Trên đây là hướng dẫn xây dựng ứng dụng php phân trang với Ajax jquery và PHP của mình. Code mình sẽ upload sau gửi các bạn.

[Ứng dụng PHP] Xếp hạng sao với jQuery, Ajax và PHP

[Ứng dụng PHP] Xếp hạng sao với jQuery, Ajax và PHP
Trong bài này mình xin giới thiệu đến các bạn ứng dụng Xếp hạng sao với jQuery, Ajax và PHP với giao diện như sau:

Bước 1: Tạo CSDL “dbtest” và bảng “rating”


CREATE TABLE IF NOT EXISTS `rating` (
`rating_id` int(11) NOT NULL,
`post_id` int(11) NOT NULL,
`rating_number` int(11) NOT NULL,
`total_points` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1 = Block, 0 = Unblock'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Bài 2: Tạo file “config.php“

<?php
//cấu hình CSDL
$dbHost = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'dbtest';
//kết nối CSDL
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
if($db->connect_errno):
die('Kết nối thất bại:'.$db->connect_error);
endif;
?>

Bước 3: Tạo file “index.php” với nội dung sau

javascript

j12

HTML


<h1>Xếp hạng sao với jQuery, Ajax và PHP</h1>
<input name="rating" value="0" id="rating_star" type="hidden" postID="1" />
<div class="overall-rating">(Đánh giá trung bình <span id="avgrat"><?php echo $ratingRow['average_rating']; ?></span>
Dựa trên <span id="totalrat"><?php echo $ratingRow['rating_number']; ?></span> Lượt)</span></div>

CSS


.vnfit_rating_widget{
padding: 0px;
margin: 0px;
float: left;
}
.vnfit_rating_widget li{
line-height: 0px;
width: 28px;
height: 28px;
padding: 0px;
margin: 0px;
margin-left: 2px;
list-style: none;
float: left;
cursor: pointer;
}
.vnfit_rating_widget li span{
display: none;
}
.overall-rating{font-size: 14px;margin-top: 5px;color: #8e8d8d;}



Bước 4: Tạo file “rating.php” để lấy dữ liệu CSDL


<?php
include_once 'config.php';
if(!empty($_POST['ratingPoints'])){
$postID = $_POST['postID'];
$ratingNum = 1;
$ratingPoints = $_POST['ratingPoints'];
//Kiểm tra hàng đánh giá với cùng một ID bài
$prevRatingQuery = "SELECT * FROM post_rating WHERE post_id = ".$postID;
$prevRatingResult = $db->query($prevRatingQuery);
if($prevRatingResult->num_rows > 0):
$prevRatingRow = $prevRatingResult->fetch_assoc();
$ratingNum = $prevRatingRow['rating_number'] + $ratingNum;
$ratingPoints = $prevRatingRow['total_points'] + $ratingPoints;
//Cập nhật đánh giá dữ liệu vào cơ sở dữ
$query = "UPDATE post_rating SET rating_number = '".$ratingNum."', total_points = '".$ratingPoints."', modified = '".date("Y-m-d H:i:s")."' WHERE post_id = ".$postID;
$update = $db->query($query);
else:
//insert đánh giá dữ liệu vào cơ sở dữ
$query = "INSERT INTO post_rating (post_id,rating_number,total_points,created,modified) VALUES(".$postID.",'".$ratingNum."','".$ratingPoints."','".date("Y-m-d H:i:s")."','".date("Y-m-d H:i:s")."')";
$insert = $db->query($query);
endif;
//Lấy chi tiết từ cơ sở dữ liệu đánh giá
$query2 = "SELECT rating_number, FORMAT((total_points / rating_number),1) as average_rating FROM post_rating WHERE post_id = ".$postID." AND status = 1";
$result = $db->query($query2);
$ratingRow = $result->fetch_assoc();
if($ratingRow){
$ratingRow['status'] = 'ok';
}else{
$ratingRow['status'] = 'err';
}
//Trả dữ liệu đánh giá vào Json
echo json_encode($ratingRow);
}
?>

Bước 5: Tạo file “rating.js”


(function(a){
a.fn.vnfit_rating_widget = function(p){
var p = p||{};
var b = p&&p.starLength?p.starLength:"5";
var c = p&&p.callbackFunctionName?p.callbackFunctionName:"";
var e = p&&p.initialValue?p.initialValue:"0";
var d = p&&p.imageDirectory?p.imageDirectory:"images";
var r = p&&p.inputAttr?p.inputAttr:"";
var f = e;
var g = a(this);
b = parseInt(b);
init();
g.next("ul").children("li").hover(function(){
$(this).parent().children("li").css('background-position','0px 0px');
var a = $(this).parent().children("li").index($(this));
$(this).parent().children("li").slice(0,a+1).css('background-position','0px -28px')
},function(){});
g.next("ul").children("li").click(function(){
var a = $(this).parent().children("li").index($(this));
var attrVal = (r != '')?g.attr(r):'';
f = a+1;
g.val(f);
if(c != ""){
eval(c+"("+g.val()+", "+attrVal+")")
}
});
g.next("ul").hover(function(){},function(){
if(f == ""){
$(this).children("li").slice(0,f).css('background-position','0px 0px')
}else{
$(this).children("li").css('background-position','0px 0px');
$(this).children("li").slice(0,f).css('background-position','0px -28px')
}
});
function init(){
$('<div style="clear:both;"></div>').insertAfter(g);
g.css("float","left");
var a = $("<ul>");
a.addClass("vnfit_rating_widget");
for(var i=1;i<=b;i++){
a.append('<li style="background-image:url('+d+'/widget_star.gif)"><span>'+i+'</span></li>')
}
a.insertAfter(g);
if(e != ""){
f = e;
g.val(e);
g.next("ul").children("li").slice(0,f).css('background-position','0px -28px')
}
}
}
})(jQuery);

Kết quả thu được là:

k123

Trên đây là hướng dẫn tạo xếp hạng với Jquery, Ajax và PHP cho các bạn.

[Ứng dụng php] đăng nhập (Login) với Twitter sử dụng PHP

[Ứng dụng php] đăng nhập (Login) với Twitter sử dụng PHP
Trong bài này mình xin hướng dẫn đến các bạn làm chức năng đăng nhập với Twitter sử dụng ngôn ngữ PHP. Dưới đây là mô hình của nó.

Cấu trúc của dự án:

Bước 1: Tạo Twitter Apps

Truy cập vào: https://apps.twitter.com/app/new đăng nhập tài khoản Twitter

Tạo app twitter với thông số sau:

Name: Tên ứng dụng của bạn. Điều này được hiển thị cho người dùng trong khi cho phép.
Description: Mô tả ứng dụng của mình.
Website: website của mình.
Callback URL(*): Sau khi authorization, URL này được gọi với oauth_token.
Bước 2: Tạo CSDL


CREATE TABLE `users` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `oauth_provider` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `oauth_uid` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `fname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `lname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `locale` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
 `oauth_token` text COLLATE utf8_unicode_ci NOT NULL,
 `oauth_secret` text COLLATE utf8_unicode_ci NOT NULL,
 `picture` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
 `created` datetime NOT NULL,
 `modified` datetime NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Bước 3: Kết nối CSDL

Mở file includes/functions.php kết nối CSDL:


function __construct(){
 //Config database
 $dbServer = 'localhost';
 $dbUsername = 'root';
 $dbPassword = '';
 $dbName = 'vnfit_tw';

 //kết nối CSDL
 $con = mysqli_connect($dbServer,$dbUsername,$dbPassword,$dbName);
 if(mysqli_connect_errno()){
 die("Failed to connect with MySQL: ".mysqli_connect_error());
 }else{
 $this->connect = $con;
 }
}

Bài 4: Tạo config với TW

Mở file config.php rồi truy cập vào site https://apps.twitter.com vào app bạn vừa taoh để lấy các thông số.


define('CONSUMER_KEY', 'KEY cho Twitter ');
define('CONSUMER_SECRET', 'Twitter Consumer Secret');
define('OAUTH_CALLBACK', 'http://localhost/login_with_twitter_using_php/process.php');

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

[Ứng dụng php] đăng nhập (Login) với Google account sử dụng PHP

[Ứng dụng php] đăng nhập (Login) với Google account sử dụng PHP
Trong bài này mình xin hướng dẫn đến các bạn làm chức năng đăng nhập với Google account sử dụng ngôn ngữ PHP. Dưới đây là mô hình của nó.

Google OAuth API cho phép các nhà phát triển web để tích hợp hệ thống đăng nhập vào trang web bằng cách nhanh chóng, dễ dàng và mạnh mẽ. Hệ thống đăng nhập Google giúp tăng đăng ký trang web của bạn. Bởi vì hầu hết người dùng đều có một tài khoản google và họ có thể dễ dàng đăng nhập vào trang web của bạn bằng cách sử dụng tài khoản google của họ. Ở đây tôi đã thực hiện một hệ thống đăng nhập đơn giản bằng cách sử dụng thư viện Google API PHP và làm cho việc chứng thực đơn giản google.

Bước 1: Tạo Google Project:

Truy cập vào: https://console.developers.google.com/ Chọn create project trong này có:

project name: tên project
project ID: ID của project
sau khi điền bạn đồng ý và tạo project.

Vòa menu bên trái: APIs & auth > APIs ra danh sách các APIs

Tìm xuông cái Google+ API. chọn Enable

Trong Menu trái, chọn Credentials dưới API & auth.

Trong OAuth của trang, chọn Create New Client ID.

Create Client ID hộp thoại sẽ xuất hiện cho việc lựa chọn loại ứng dụng.
Trong Application type của hộp thoại, chọn ứng dụng web và kích vào nút màn hình Configure sự đồng ý.
Chọn địa chỉ email, nhập Product name và lưu mẫu.
Trong Authorized JavaScript origins nhập nguồn gốc ứng dụng của bạn. Nếu bạn muốn cho phép ứng dụng của bạn để chạy trên các giao thức khác nhau, tên miền, hoặc tên miền phụ, sau đó bạn có thể nhập nhiều nguồn gốc.
Trong Authorized redirect URI nhập URL chuyển hướng.

Nhấn vào Create Client ID.

google-project-creation-client-id-for-web-application-by-codexworld

Bước 2: Tạo CSDL

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`oauth_provider` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`oauth_uid` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`fname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`lname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`gender` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`locale` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`gpluslink` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`picture` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Bước 3: Kết nối CSDL

Mở includes/functions.php


function __construct(){
//config CSDL
$dbServer = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'vnfit_g';

//kết nối CSDL
$con = mysqli_connect($dbServer,$dbUsername,$dbPassword,$dbName);
if(mysqli_connect_errno()){
die("Failed to connect with MySQL: ".mysqli_connect_error());
}else{
$this->connect = $con;
}
}

Bước 4: Config Google API

Mở config.php


<?php
session_start();
include_once("src/Google_Client.php");
include_once("src/contrib/Google_Oauth2Service.php");

/**
* Google Project API
**/
$clientId = 'ID cho Google Project Client'; //Google CLIENT ID
$clientSecret = 'Google Project Client Secret'; //Google CLIENT SECRET
$redirectUrl = 'http://localhost/login-with-google-using-php'; //return url (url to script)
$homeUrl = http://localhost/login-with-google-using-php'; // trả về

/**
* Confi Google Client
**/
$gClient = new Google_Client();
$gClient->setApplicationName('Login to codexworld.com');
$gClient->setClientId($clientId);
$gClient->setClientSecret($clientSecret);
$gClient->setRedirectUri($redirectUrl);

$google_oauthV2 = new Google_Oauth2Service($gClient);
?>

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

Nếu thấy hay hãy chia sẻ bài viết này đến người khác nhé!

[Ứng dụng php] đăng nhập (Login) với facebook sử dụng PHP

[Ứng dụng php] đăng nhập (Login) với facebook sử dụng PHP
Trong bài này mình xin hướng dẫn đến các bạn làm chức năng đăng nhập với Facebook sử dụng ngôn ngữ PHP. Dưới đây là mô hình của nó.

Trong ứng dụng này mình xin tạo cấu trúc thư mục như sau:

Bước 1: Tạo app Facebook

các bạn tới địa chỉ: https://developers.facebook.com/apps/ và đăng nhập vào tài khoản Facebook developers

Tạo một ứng dụng Facebook mới với tên mong muốn của bạn như Vnfit.

Bước 2: Tạo CSDL


CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`oauth_provider` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`oauth_uid` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`fname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`lname` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`gender` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`locale` varchar(10) COLLATE utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Bước 3: mở file includes/functions.php để kết nối CSDL


function __construct(){
//Config CSDL
$dbServer = 'localhost';
$dbUsername = 'root';
$dbPassword = '';
$dbName = 'vnfit_fb';

//kết nối CSDL
$con = mysqli_connect($dbServer,$dbUsername,$dbPassword,$dbName);
if(mysqli_connect_errno()){
die("Failed to connect with MySQL: ".mysqli_connect_error());
}else{
$this->connect = $con;
}
}

Bước 4: Config Facebook với file config.php


<?php
include_once("inc/facebook.php"); //include facebook SDK
######### Facebook API Configuration ##########
$appId = 'Điền ID của Facebook App'; //ID cho Facebook App
$appSecret = 'Điền Facebook App Secret'; // Facebook App Secret
$return_url = 'http://localhost/facebook_login_with_php/';
$homeurl = 'http://localhost/facebook_login_with_php/';
$fbPermissions = 'email'; //

//Gọi đến Facebook API
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret
));
$fbuser = $facebook->getUser();
?>

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

[Ứng dụng PHP] Lấy feed post fanpage facebook với facebook api sdk php

[Ứng dụng PHP] Lấy feed post fanpage facebook với facebook api sdk php
Giới thiệu qua về bài viết này:

Đã lâu rồi không ngồi viết bài, hôm nay sự trở lại của mình mình sẽ hướng dẫn anh em cách lấy bài viết trên fans page facebook. Sau bài viết này bạn có thể làm nhiều hơn với facebook api sdk php như bạn có thể: Post bài lên facebook, lấy ảnh, lấy thông tin user facebook,..

Oki giới thiệu qua bài viết “How to get all feeds of my fanpage in facebook using facebook api” dịch nó ra là “cách lấy bài viết trên fanpage facebook sử dụng facebook api“. Lý do vì sao lại phải dùng facebook api vì cách làm lấy facebook qua rss format R20 đã cũ rồi và facebook đã chặn không cho lấy tin như thế nữa. Anh em phải chuyển qua dùng API để lấy nhé.

Bài viết gồm các bước sau:

Bước 1: Tạo 1 app trên facebook: (bài sau mình sẽ hướng dẫn cách tạo app bài này giả định các bạn đã có app trên facebook rồi nhé)

Bước 2: Lấy các thông tin như : App ID, App Secret cái này dễ nên chỉ cần nhìn ảnh là hiểu thôi.

Bước 3: Làm theo hướng dẫn trong code mình demo nhé là okie.

Bước 4: Ngồi tận hưởng thành quả đạt được.

Bắt đầu thực thiện:

Bước 1: Tạo 1 app trên facebook: (bài sau mình sẽ hướng dẫn cách tạo app bài này giả định các bạn đã có app trên facebook rồi nhé)

Okie cái này như mình đã nói để bài tiếp theo mình sẽ hướng dẫn còn tạm thời giả định các bạn đã có tài khoản facebook và tạo thành công 1 app trên facebook rồi nhé.

Bước 2: Lấy các thông tin như : App ID, App Secret cái này dễ nên chỉ cần nhìn ảnh là hiểu thôi.

Các bạn hãy nhìn ảnh bên dưới nhé sẽ hiểu thôi cái này đơn giản

App ID and App Secret facebook app

Như ảnh trên giả sử app của mình là “Login demo” nhé và các bạn để ý sẽ thấy ngay bên dưới nó là App ID and App Secret facebook app. Các bạn nhớ lưu thông tin này lại nhé.

Bước 3: Làm theo hướng dẫn trong code mình demo nhé là okie.

Hướng dẫn 1 này dành cho bạn nào dùng Facebook PHP SDK (v.3.2.2) nhé:

Chú ý: Các bạn phải download Facebook SDK 3.2.3 về trước nhé. Các bạn có thể download tại đây:

https://github.com/facebookarchive/facebook-php-sdk

<?php
$app_id             = '909173739107879';  //Facebook App ID đây chính là App ID như trên ảnh nhé
$app_secret         = 'd68039d753c1fd614d788b9d8701ee44'; //Facebook App Secret Đây là App Secret của cái app của login demo của mình
// mình lấy đại cái fanpage này https://www.facebook.com/fanpagengoalong?ref=ts&fref=ts và tìm được ID của tương ứng là [200364423372482]. Các bạn có thể tìm ID fanpage tại đây nhé: http://findmyfbid.com/
$facebookPageId = '200364423372482';

//include autoload.php from SDK folder, just point to the file like this:
require_once __DIR__ . "/facebook-php-sdk/src/facebook.php";

$facebook = new Facebook(array(
    'appId'  => $app_id,
    'secret' => $app_secret
));

$pageProfile = $facebook->api($facebookPageId);
$result   = $facebook->api($facebookPageId . '/feed',array('fields'=>'message,created_time,updated_time','limit' => 6));

echo 'My Page wall';
echo "<pre>";
print_r($result);
echo "</pre>";
//die;
?>

Hướng dẫn 2 này dành cho bạn nào dùng Facebook PHP SDK (v.4) nhé:

Chú ý: Các bạn cũng nhớ phải download PHP SDK V.4 về trước nhé. Các bạn có thể download tại đây nhé: https://github.com/facebook/facebook-php-sdk-v4

Sau đó copy đoạn code này và chạy để tận hưởng kết quả hi hì ^^

<?php

$app_id             = '909173739107879';  //Facebook App ID
$app_secret         = 'd68039d753c1fd614d788b9d8701ee44'; //Facebook App Secret
$facebookPageId    = '200364423372482';

//include autoload.php from SDK folder, just point to the file like this:
require_once __DIR__ . "/facebook-php-sdk-v4/autoload.php";

//import required class to the current scope
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRedirectLoginHelper;

FacebookSession::setDefaultApplication($app_id, $app_secret);
$session = FacebookSession::newAppSession($app_id, $app_secret);

try {
  $session->validate();
} catch (FacebookRequestException $ex) {
  // Session not valid, Graph API returned an exception with the reason.
  echo $ex->getMessage();
} catch (\Exception $ex) {
  // Graph API returned info, but it may mismatch the current app or have expired.
  echo $ex->getMessage();
}

try {
$request = new FacebookRequest(
 $session,
 'GET',
 '/'.$facebookPageId.'/feed',
 array('fields'=>'link,full_picture,message','limit' => 40)
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
    //do stuff below, save user info to database etc.
    $result = $graphObject->asArray();
/*for($i=0;$i<count($result['data']);$i++){
echo $result['data'][$i]->message;

echo "<br><br><br>";
}*/
} catch (FacebookRequestException $ex) {
  echo $ex->getMessage();
} catch (\Exception $ex) {
  echo $ex->getMessage();
}

?>

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

[Ứng dụng PHP] Like và Unlike với PHP và MySQL

[Ứng dụng PHP] Like và Unlike với PHP và MySQL
Trong bài này mình xin hướng dẫn đến các bạn xây dựng ứng dụng  like và Unlike với PHP và MySQL.

Ở đây thư viện giao diện mình sử dụng là bootstrap nhé.

Bước 1: Tạo bảng dữ liệu “like_web”


CREATE TABLE `lieke_web` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`details` text COLLATE utf8_unicode_ci NOT NULL,
`image` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`like_num` bigint(10) NOT NULL,
`dislike_num` bigint(10) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=Active, 0=Inactive',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Nhập dữ liệu mẫu vào bảng “like_web”

d1

Bước 2: Tạo class like với file like.php

Trong bước này mình tạo class like với các hàm xử lý như như kết nối CSDL, insert, update dữ liệu lấy dữ liệu này như sau:

<?php
class Like{
function __construct(){
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'dbtest';
$con = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name, $con);
}
function get_rows($id = ''){
if($id != ''){
$query = mysql_query("SELECT * FROM like_web WHERE id = $id");
$data = mysql_fetch_assoc($query);
}else{
$query = mysql_query("SELECT * FROM like_web");
while($row = mysql_fetch_assoc($query)){
$data[] = $row;
}
}
return $data;
}
function insert($data = array()){
$data_array_num = count($data);
$columns = "";
$values = "";
$i=0;
foreach($data as $key=>$val){
$i++;
$sep = ($i == $data_array_num)?"":", ";
$columns .= $key.$sep;
$values .= $val.$sep;
}
$insert = mysql_query("INSERT INTO like_web ($columns) VALUES ($values)");
return $insert?TRUE:FALSE;
}
function update($data = array(), $conditions = array()){
$data_array_num = count($data);
$cols_vals = "";
$condition_str = "";
$i=0;
foreach($data as $key=>$val){
$i++;
$sep = ($i == $data_array_num)?'':', ';
$cols_vals .= $key."='".$val."'".$sep;
}
foreach($conditions as $key=>$val){
$i++;
$sep = ($i == $data_array_num)?"":" AND ";
$condition_str .= $key."='".$val."'";
}
$update = mysql_query("UPDATE like_web SET $cols_vals WHERE $condition_str");
return $update?TRUE:FALSE;
}
}
?>

Bướ 3: Trình bày file “index.php” với nội dung sau

<?php
include_once("like.php");
$liek_web = new Like();
$trows = $liek_web->get_rows();
?>
<!DOCTYPE html>
<html lang="vi">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Like và Dislike sử dung jQuery, Ajax và PHP</title>
<link type="text/css" rel="stylesheet" href="css/bootstrap.min.css"/>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<style type="text/css">
.row{ margin:20px 20px 20px 20px;}
.ratings{ font-size:25px !important;}
.thumbnail img {
width: 100%;
}
.ratings {
padding-right: 10px;
padding-left: 10px;
color: #d17581;
}
.thumbnail {
padding: 0;
}
.thumbnail .caption-full {
padding: 9px;
color: #333;
}
.glyphicon-thumbs-up:hover{ color:#008000; cursor:pointer;}
.glyphicon-thumbs-down:hover{ color: #E10000; cursor:pointer;}
.counter{ color:#333333;}
.thumbnail img{height:200px;}
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
function cwRating(id,type,target){
$.ajax({
type:'POST',
url:'rating.php',
data:'id='+id+'&type='+type,
success:function(msg){
if(msg == 'err'){
alert('Một số vấn đề xảy ra, xin vui lòng thử lại.');
}else{
$('#'+target).html(msg);
}
}
});
}
</script>
</head>
<body>
<div class="container">
<div class="row">
<?php foreach($trows as $trow){ ?>
<div class="col-sm-4 col-lg-4 col-md-4">
<div class="thumbnail">
<img src="<?php echo 'images/'.$trow['image']; ?>" alt="" />
<div class="caption">
<h4><a href="javascript:void(0);"><?php echo $trow['title']; ?></a></h4>
</div>
<div class="ratings">
<p class="pull-right"></p>
<p>
<!-- Like Icon HTML -->
<span class="glyphicon glyphicon-thumbs-up" onClick="cwRating(<?php echo $trow['id']; ?>,1,'like_count<?php echo $trow['id']; ?>')"></span>&nbsp;
<!-- Like Counter -->
<span class="counter" id="like_count<?php echo $trow['id']; ?>"><?php echo $trow['like_num']; ?></span>&nbsp;&nbsp;&nbsp;
<!-- Dislike Icon HTML -->
<span class="glyphicon glyphicon-thumbs-down" onClick="cwRating(<?php echo $trow['id']; ?>,0,'dislike_count<?php echo $trow['id']; ?>')"></span>&nbsp;
<!-- Dislike Counter -->
<span class="counter" id="dislike_count<?php echo $trow['id']; ?>"><?php echo $trow['dislike_num']; ?></span>
</p>
</div>
</div>
</div>
<?php } ?>
</div>
</div>
</body>
</html>

Bước 4: tạo file rating.php với nội dung

<?php
include_once("like.php");
$liek_web = new Like();
if($_POST['id']){
//lấy dữ liệu trong CSDL ra theo ID
$prev_record = $liek_web->get_rows($_POST['id']);
//Tổng thích
$prev_like = $prev_record['like_num'];
//Tổng ko thích
$prev_dislike = $prev_record['dislike_num'];
//tính toán số lượng như thích với không thích
if($_POST['type'] == 1){
$like = ($prev_like + 1);
$dislike = $prev_dislike;
$return_count = $like;
}else{
$like = $prev_like;
$dislike = ($prev_dislike + 1);
$return_count = $dislike;
}
$data = array('like_num'=>$like,'dislike_num'=>$dislike,'modified'=>date("Y-m-d H:i:s"));
$condition = array('id'=>$_POST['id']);
//update dữ liệu
$update = $liek_web->update($data,$condition);
//trả lại dữ liệu
echo $update?$return_count:'err';
}
?>

Trên đây là hướng dẫn về xây dựng ứng dụng like và Unlike với PHP và MySQL.

Tạo - Viết file bằng PHP

Tạo - Viết file bằng PHP
Tạo File – fopen () trong PHP

Fopen () chức năng cũng được sử dụng để tạo ra một tập tin.

Nếu bạn sử dụng fopen () vào một tập tin không tồn tại, nó sẽ tạo ra nó, cho rằng các tập tin được mở ra cho văn bản (w) hoặc (a)

$myfile = fopen("myfile.txt", "w")

Viết vào file với fwrite() trong PHP

fwrite () chức năng được sử dụng để ghi vào một tập tin.

Giờ mình sẽ VD về việc ghi nội dung vào file newfile.txt

<?php
$myfile = fopen("newfile.txt", "w") or die("Không thể mở tập tin!");
$txt = "Xin Chào\n";
fwrite($myfile, $txt);
$txt = "Vnfit.com\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

Kết quả là tạo ra một file là newfile.txt với nội dung: Xin Chào Vnfit.com

Ghi đè vào file trong PHP

<?php
$myfile = fopen("newfile.txt", "w") or die("Không thể mở tập tin!");
$txt = "HungLV\n";
fwrite($myfile, $txt);
$txt = "Longdt\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

Với cú pháp trên sẽ ghi đè nội dùng vào file newfile.txt như sau: HungLVLongdt

Bài trên mình đã hướng dẫn đến các bạn cách Tạo / Viết file bằng PHP.

Tổng hợp: Lộ trình tự học lập trình web bằng PHP và MySQL

Chân thành cảm ơn các bạn theo dõi.

Date và Time trong PHP

Date và Time trong PHP
Hàm PHP date() được sử dụng để định dạng ngày tháng và / hoặc một thời gian.

Date() trong PHP

Cấu trúc:

date(format,timestamp)

Thông số Mô tả
format Yêu cầu. Chỉ định định dạng của thời gian
timestamp Tùy chọn. Chỉ định một thời gian. Mặc định là ngày hiện tại và thời giane
Đưới đây là một số đặc trưng của Date()

d – Là định dạng ngày của tháng (01-31)
m – Là định dạng tháng (01-12)
Y – Là định dạng năm (trong bốn chữ số)
l (‘L’ chữ thường) – Đại diện cho các ngày trong tuần

VD:

Config năm trong php


©<?php echo date("Y")?>

Kết quả: ©2015

Time trong PHP

Dưới đây là một số các đặc trung mà thường được sử dụng cho times:

h –  định dạng của một giờ (01-12)
i – định dang của phút (00-59)
s – định dạng của giây(00-59)
a – am và pm(sáng hay buổi chiều)

<?php
echo "Thời gian: " . date("h:i:sa");
?>

Kết quả: Thời gian: 07:53:48am

Time Zone trong PHP


<?php
date_default_timezone_set("Asia/Ho_Chi_Minh");
echo "Hôm nay là: " . date("h:i:sa");
?>

Tạo một ngày Với PHP mktime ()

cấu trúc:

mktime(giờ, phút, giây, tháng, ngày, năm)


<?php
$d=mktime(11, 14, 54, 10, 15, 2015);
echo "Ngày tạo ra là: " . date("Y-m-d h:i:sa", $d);
?>

Kết quả: Ngày tạo ra là: 2015-10-15 11:14:54am

Tạo một ngày Từ một String Với PHP strtotime ()

cấu trúc:

strtotime(time,now)


<?php
$d=strtotime("10:30pm October 15 2015");
echo "Ngày tạo là:" . date("Y-m-d h:i:sa", $d);
?>

Kết quả: Ngày tạo là:2015-10-15 10:30:00pm

Trên đây là các hàm cũng như ví dụ về thời gian trong PHP.

Upload file trong PHP

Upload file trong PHP
Trong bài này mình xin giới thiệu đến các bạn cách Upload file trong PHP. Dể upload file trong php bạn cần cấu hình php.ini và tạo form upload file bằng php

Cấu hình php.ini cho Upload file trong PHP

Để upload file trong php các bạn cần cấu hình sever của mình. Các bạn vào file php.ini trong sever để cấu hình:

file_uploads = On

Tạo form upload bằng html

Để upload bạn cần tạo ra một form upload bắng html với nội dung nhu sau:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 Upload image:
 <input type="file" name="fileToUpload" id="fileToUpload">
 <input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
Tạo Upload file bằng mã PHP

để upload được file lên sever ta code mã php với nội dung như sau (tạo file upload.php)

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
//Kiểm tra nếu file ảnh đã được submit chưa
if(isset($_POST["submit"])) {
 $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
 if($check !== false) {
 echo "File là một hình ảnh - " . $check["mime"] . ".";
 $uploadOk = 1;
 } else {
 echo "Tập tin không phải là một hình ảnh.";
 $uploadOk = 0;
 }
}
?>

Giải thích:

$target_dir = “uploads /” – xác định thư mục chứa tập tin là sẽ được upload vào
$target_file xác định đường dẫn của tập tin được tải lên
$uploadOk = 1 chưa sử dụng (sẽ được sử dụng sau này)
$imageFileType giữ tập tin mở rộng của tập tin
Tiếp theo, kiểm tra xem các tập tin hình ảnh là một hình ảnh thực tế hoặc một hình ảnh giả
Kiểm tra nếu tập tin đã tồn tại

// Kiểm tra nếu tập tin đã tồn tại
if (file_exists($target_file)) {
echo "Xin lỗi, file đã tồn tại.";
$uploadOk = 0;
}

Kiểm tra kích cỡ file upload lên

// Kiểm tra kích thước tập tin
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Xin lỗi, file của bạn là quá lớn.";
$uploadOk = 0;
}

Kiểm tra loại file là jpg, png..

// Cho phép các định dạng tập tin nhất định
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Rất tiếc, chỉ JPG, JPEG, PNG và GIF các tập tin được phép.";
$uploadOk = 0;
}

Upload file với PHP hoàn thiện upload.php

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Kiểm tra nếu file ảnh đã được submit chưa
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File là một hình ảnh - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "Tập tin không phải là một hình ảnh";
$uploadOk = 0;
}
}
// Kiểm tra nếu tập tin đã tồn tại
if (file_exists($target_file)) {
echo "Xin lỗi, file đã tồn tại.";
$uploadOk = 0;
}
// Kiểm tra kích thước tập tin
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Xin lỗi, file của bạn là quá lớn.";
$uploadOk = 0;
}
// Cho phép các định dạng tập tin nhất định
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Rất tiếc, chỉ JPG, JPEG, PNG và GIF các tập tin được phép.";
$uploadOk = 0;
}
// Kiểm tra nếu $ uploadOk được thiết lập là 0 bởi một lỗi
if ($uploadOk == 0) {
echo "Xin lỗi, file của bạn không được tải lên.";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "File ". basename( $_FILES["fileToUpload"]["name"]). " đã được tải lên.";
} else {
echo "Xin lỗi, có lỗi khi tải tập tin của bạn.";
}
}
?>

Trên đây là hướng dẫn Upload file trong PHP của mình gửi đến các bạn.

15/12/16

[Ứng dụng PHP] Thêm thành viên với PHP và MySQL

[Ứng dụng PHP] Thêm thành viên với PHP và MySQL
add
Trong ứng dụng trước đăng nhập với PHP và MySQL mình đã hướng dẫn các bạn. Trong bài này mình sẽ hướng dẫn các bạn làm chức năng thêm thành viên với PHP và MySQL. Để làm chức năng thêm thành viên với PHP và MySQL các bạn làm các bước sau.

[Ứng dụng PHP] Xuất dữ liệu sang Excel trong PHP

[Ứng dụng PHP] Xuất dữ liệu sang Excel trong PHP
Trong hướng dẫn này mình sẽ hướng dẫn các bạn về dữ liệu xuất sang Excel trong PHP. Chức năng này khá cần thiết đối với nhiều trang bán hàng cần để xuất dữ liệu sang Excel cho đễ quản lý. Với kịch bản dưới đây đơn giản, bạn có thể dễ dàng thực hiện các dữ liệu xuất khẩu sang Excel chức năng bằng cách sử dụng PHP.