Tự tay tạo một trang Blog đơn giản với PHP

23/07/2012

Tự tay tạo một trang Blog đơn giản với PHP

Những đoạn code mà mình sẽ post sau đây là những kiến thức cơ bản dành cho những ai lập trình php , nếu bạn không thích php thì cũng có thể tham khảo vì nó rất đơn giản và dễ hiểu và bạn có thể áp dụng với ngôn ngữ lập trình nào khác mà bạn ưa thích.

Chúng ta sẽ lần lượt tạo các file sau đây :

1. db.php
2. functions.php
 3. add_blog
4. edit_blog.php
5. delete_blog.php
 6. theme.html
7. index.php
8. admin.php
9. style.css

Bước 1 : Tạo CSDL cho blog
– Đầu tiên bạn vào phpMyadmin và tạo cơ sở dữ liệu với tên mà bạn đặt là ” test “, nếu bạn nào chưa biết làm thì có thể xem qua Tạo Database trong PhpMyadmin ở các bài viết trước.
– Click vào  link SQL và past đoạn code sau :

CREATE TABLE `blog` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`title` TEXT NOT NULL ,
`html` TEXT NOT NULL ,
`date` TEXT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM

Như hình sau :

Tự tay tạo một trang Blog đơn giản với PHP
Bước 2 : Copy các đoạn code sau và past vào từng file tương ứng :

db.php

<?php
$host = "localhost";
$user = "root";
$pass = "";
$db_name = "test";
mysql_connect($host,$user,$pass) or die('problem on database connection !');
mysql_select_db($db_name) or die('database not exists !');
?>

funcions.php

<?php
require('db.php');
function html_form($title='',$html='',$id=''){
echo '
<pre><form method="post" id="form">
<input value="'.$id.'" name="id" type="hidden">
TITLE : <input value="'.$title.'" name="title" type="text">
HTML : <textarea style="width:350px;" name="html" placeholder="Put your html here..">'.$html.'
</textarea>
<input value="submit" type="submit">
</form></pre>
';
}

function create_blog($title,$html){
$date = date('d.m.Y');
$html = mysql_real_escape_string($html);
$sql = "INSERT INTO blog (title, html, date) VALUES ('$title','$html','$date');";
$q = mysql_query($sql);
if($q) return true;
else return false;
echo mysql_error();
mysql_close();
}

function get_title_id($title){
$sql = "select * from blog where title='$title'";
$q = mysql_query($sql);
while($ks = mysql_fetch_array($q)){
return $ks['id'];
}
echo mysql_error();
}

function edit_blog($title,$html,$id){
$date = date('d.m.Y');
$html = mysql_real_escape_string($html);
$sql = "UPDATE blog SET title = '$title', html = '$html', date = '$date' WHERE id = '$id'";
$q = mysql_query($sql);
if($q) return true;
else return false;
mysql_close();
}

function delete_blog($id){
$sql= "delete from blog where id='$id'";
$q = mysql_query($sql);
if($q) return true;
else return false;
mysql_close();
}

function menu(){
$sql = "SELECT * FROM blog ORDER BY id DESC LIMIT 0 , 8 ";
$q = mysql_query($sql);
while($data = mysql_fetch_array($q)){
echo '<a id="left_menu" href="?id='.$data['id'].'"> '.$data['title'].'</a><br>';
}
mysql_close();
}

function blog_list(){
$sql = "select * from blog";
$q = mysql_query($sql);
echo '<form method="post"><select name="id">';
while($data = mysql_fetch_array($q)){
echo '<option value=".$data[" id'].'"=""> '.$data['title'].'</option>';
}
echo '</select><br><input value="submit" type="submit"></form>';
}
function get_title($id){
$sql = "select * from blog where id='$id'";
$q = mysql_query($sql);
while($data = mysql_fetch_array($q)){
return $data['title'];
}
}
function get_html($id){
$sql = "select * from blog where id='$id'";
$q = mysql_query($sql);
while($data = mysql_fetch_array($q)){
return $data['html'];
}
}
function check_id($id){
$sql = "select * from blog where id='$id'";
$q = mysql_query($sql);
if(mysql_num_rows($q)>0) return true;
else return false;
}
?>

add_blog.php

<?php
require('functions.php');
if($_SERVER['REQUEST_METHOD']== "POST"){
if(create_blog($_POST['title'],$_POST['html'])){
echo '<font color="lightgreen>">your blog '.$_POST['title'].' had been created </font>
url: index.php?id='. get_title_id($_POST['title']);
}
else echo '<font color="red"> Some problem please check your database connection <font>';
}
html_form();
?>
</font></font>

edit_blog.php

<?php
require('functions.php');
if(isset($_POST['html'])){
if(edit_blog($_POST['title'],$_POST['html'],$_POST['id'])){
echo '<font color="lightgreen>">your blog '.$_POST['title'].' had been edited </font>';
}
else echo '<font color="red"> Some problem please check your database connection <font>';
}
if(isset($_POST['id'])){
html_form(get_title($_POST['id']),get_html($_POST['id']),$_POST['id']);
}
else blog_list();
?>
</font></font>

delete_blog.php

<?php
require('functions.php');
if(isset($_POST['id'])){
delete_blog($_POST['id']);
}
blog_list();
?>

theme.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<title> <?php echo ks_title;?> KAMESHsoft</title>
</head>
<body>
<table>
<tbody>
<tr>
<td id="top-menu">KAMESHsoft BLOGGER (www.ksoft.isgreat.org)</td>
</tr>
</tbody>
</table>

<table id="menu">
<tbody>
<tr>
<td ><div><?php menu(); ?></div></td>
</tr>
</tbody>
</table>

<table id="content">
<tbody>
<tr>
<td ><?php echo ks_content;?></td>
</tr>
</tbody>
</table>
</body>
</html>

style.css

body{background:#717883;font-family:MetaBlack,"Trebuchet MS",sans-serif}
#top-menu{border:1px solid lightblue;margin:25px;width:2600px;padding:50px;
font-family:comic sans ms; font-size:28px;background:#234B6F;
color:white}
#menu{position:absolute;margin-top:0px;width:235px;padding:5px;}
.menu{border:1px solid black;background:#4E7BA3;margin-top:-5px;margin-left:-4px;padding:5px}
#content{position:absolute;border:1px solid black;margin-top:2px;margin-left:245px;width:1100px;
background:#D1DBE5;padding:5px;min-height:250px;}
#left_menu{color:white;text-decoration:none}
#left_menu:hover{text-decoration:underline}

index.php

<?php
require('functions.php');
if(isset($_GET['id'])){
$id = $_GET['id'];
if(check_id($id)){
define('ks_title',get_title($id));
define('ks_content',get_html($id));
}
else {
define('ks_title','404 - PAGE NOT FOUNDED');
define('ks_content','404 page not found<br>  please try after some days ! <br> -thanks');
}
}
else {
define('ks_title',get_title(1));
define('ks_content',get_html(1));
}
require('theme.html');
?>

admin.php

<a href="add_blog.php">add blog</a><br>
<a href="edit_blog.php">edit blog</a><br>
<a href="delete_blog.php">delete blog</a>

Các bạn nhớ đặt tất cả các file này trong cùng một thư mục nhá. Chúc các bạn thành công !

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • tuan

    bi loi file funcions.php 61 banjn ơi

    • phong

      đúng rồi, functions.php 61 Parse error: syntax error, unexpected T_STRING, expecting ‘,’ or ‘;’ in blog/functions.php on line 61

  • tuan

    sua loi dum nhe

  • tuan

    ok dc rui

  • tuan

    Cai nay no ko hoat dong chu top ơi, fix dùm với. nó ko link dc

    • Bạn có thể nói rõ nó ở dòng nào , của phần nào không ? Nói vậy mình vẫn chưa nắm rõ .

      • tuan

        ở phần link đến bài viết tại hàm này
        —–
        function menu(){$sql = “SELECT * FROM blog ORDER BY id DESC LIMIT 0 , 10 “;$q = mysql_query($sql);while($data = mysql_fetch_array($q)){echo ‘ ‘.$data[‘title’].’‘;}mysql_close();}
        ——–
        cụ thể nó ko hiểu chỗ href=”?id=%27.$data[%27id%27].%27″

        • Oh, xin lỗi bạn vì phần lỗi này, mình đã cập nhật lại code, bạn xem test xem the nao nhe

      • Tuân

        function menu(){
        $sql = “SELECT * FROM blog ORDER BY id DESC LIMIT 0 , 10 “;
        $q = mysql_query($sql);
        while($data = mysql_fetch_array($q)){
        echo ‘ ‘.$data[‘title’].’‘;
        }
        mysql_close();
        }
        Cụ thể thì khi xuất ra thì mình linh ko dc: href=”?id=%27.$data[%27id%27].%27
        ——
        khi click vào linh title thì báo lỗi này
        404 page not foundplease try after some days !
        -thanks

      • Tuân

        cảm ơn mình làm dc rùi, ra là cái này index.php?id=’.$data[‘id’].’
        hihi
        Luôn tiện cho hỏi bạn có thể cho nó ra dạng như forum ứng với mỗi tiêu đề thì có nội dung luôn dc ko

        • Thực ra cái này chỉ dành cho blog đơn giản, chủ yếu để có kinh nghiệm về ngôn ngữ PHP, nếu bạn muốn làm dạng như forum thì lại là một chủ đề khác.

          • Tuân

            Bạn cho mình hỏi sao mình liên kết link hình ảnh thì nó ko hiển thị ra dc. ko biết lỗi j nửa.

  • tuan

    ?id=%27.$data[%27id%27].%27

  • Hùng

    Bạn giúp dùm chỗ phần trang cho cái title đó dc ko.

  • tuân

    Bạn cho mình hỏi sao mình liên kết link hình ảnh thì nó ko hiển thị ra dc.
    ko biết lỗi j nửa.
    Và bạn có thể viết thêm code add hình ảnh vào bài viết dc ko.
    thank nhiều.

    • Nếu bạn muốn add hình ảnh thì phải dùng đến editor như JCE chẳng hạn, còn nếu không bạn có thể upload hình ảnh lên một trang lưu trữ hình ảnh nào đó, rồi copy đường dẫn về bài viết.

  • tuan

    giúp minh với đi khi thi hiển thị ra ngoài kho có j hết lun.
    thank!

  • Duy

    mình viết trên netbean báo đoạn này bị lỗi
    echo ‘ ‘.$data[‘title’].”;