Thuộc tính Background
January 12, 2010 by admin
Filed under Công cụ hỗ trợ, Ngôn ngữ lập trình
Có 2 cách để làm nền bằng thuộc tính Background
- Dùng màu nền.
- Dùng ảnh nền.
Cú pháp như sau:
Ví dụ 1.
background:URL(ten_file_anh.jpg) ;
Ví dụ 1 có thuộc tính background. Thuộc tính này có nhiệm vụ tạo nền cho website.
Dòng 1: Dùng màu nền. (Màu đỏ)
Dòng 1: Dùng ảnh nền. (ten_file_anh.jpg)
background-color: và background-image: có tác dụng như ví dụ 1.
background-attachment: Trượt ảnh nền theo nội dung.
Khi bạn dùng ảnh làm nền. Trong trường hợp nội dung trang web dài sẽ có 2 trường hợp có thể xảy ra đối với ảnh nền.
- Ảnh đứng im. (Ảnh nền luôn luôn đứng im mặc dù nội dung dài hay ngắn.)
- Ảnh trượt theo nội dung. (Kéo nội dung đến đâu, ảnh nền chạy theo đến đấy.)
Cú pháp:
Vií dụ 2
background-attachment: none;
Trong ví dụ 2. Dòng đầu tiên sẽ làm cho ảnh nền luôn luôn đứng im.
Dòng 2 sẽ làm cho ảnh nền di chuyển theo nội dung.
Làm gì khi không truy cập được trang web do bị chặn
January 6, 2010 by admin
Filed under Góc tin học phổ thông, Thủ thuật PC
Đôi khi trong quá trình lướt net bạn không thể truy cập vào một trang web cụ thể nào đó mà không hiểu tại sao. Có 2 tình huống xảy ra là có thể do tường lửa của hệ thống đã chặn các trang web hoặc nó bị hạn chế địa chỉ thông qua thông số IP của người truy cập.
Để giải quyết tình huống này, bạn có thể trải qua các công việc như sau:
Đó là giải pháp đầu tiên bạn có thể nghĩ đến bởi sau một thời gian nhất định (phụ thuộc vào cấu hình máy chủ) các bức tường lửa sẽ tự động bỏ việc cấp địa chỉ IP truy cập của bạn. Điều này có thể trải qua một giờ, một tuần hoặc thậm chí là vô hạn. Vì vậy bạn có thể chờ sau vào ngày để xem có thể truy cập vào trang web đó nữa không.
Để có thể kiếm một địa chỉ IP phù hợp, bạn có thể sử dụng đến những công cụ chuyên dụng hoặc dịch vụ trực tuyến có tên Glypeproxy được cung cấp tại địa chỉ http://glypeproxy.com/. Tại trang web hiện ra, bạn chỉ cần điền địa chỉ trang web không truy cập được vào ô dưới trường Enter URL và nhấn Go để truy cập.
Khi khởi động lại modem bạn sẽ cần phải thiết lập lại kết nối Internet và thông số mà các nhà cung cấp dịch vụ Internet trang bị cho bạn. Thế nhưng, nhờ việc này mà bạn có thể tiến hành thay đổi địa chỉ IP của mình mỗi khi reset lại modem để truy cập được dễ hơn
Để tiến hành reset modem, bạn chỉ cần dùng một cây kim nhỏ chọc vào lỗ đằng sau của modem (có chữ Reset bên trên), giữ trong vòng khoảng 10 giây để chấp nhận việc reset modem..
Sau khi truy cập trang web, bạn chỉ cần gõ tên địa chỉ trang web muốn biết địa chỉ IP vào ô bên cạnh mục Enter URL và nhấn Go để xác nhận. Đợi một lúc, trang web sẽ thông báo địa chỉ IP đó cho bạn dễ dàng trong việc truy cập hơn.
Code quảng cáo đẹp
January 6, 2010 by admin
Filed under Các loại web khác, Web
Hôm nay webblogvn.com qua FCVN.com thấy quả code quảng cáo này đẹp và cũng hay hay nên rinh về share cho anh xài tạm coi thê nào nhé.
| This image has been resized. Click this bar to view the full image. The original image is sized 1024×768. |

| This image has been resized. Click this bar to view the full image. The original image is sized 1024×768. |

| This image has been resized. Click this bar to view the full image. The original image is sized 1024×768. |

download : http://kymljnk.com/manguon/qc888.rar
Hướng dẫn : Chỉnh file config.php ,UsersOnline.php,dbcon.php ở cùng với file index
download xong chạy : http://localhost/qc888/mydata/ >> backup dử liệu
id: admin pass: 201203
hết
http://kymljnk.com/manguon/dulich.tar.gz
Insert text vào textarea và giữ nguyên vị trí con trỏ
December 19, 2009 by admin
Filed under Công cụ hỗ trợ, Ngôn ngữ lập trình
|
|
| <script> function BASIC_InsertTag(tagOpen, tagClose, sampleText) { var clientPC = navigator.userAgent.toLowerCase(); // Get client info var is_gecko = ((clientPC.indexOf(’gecko’)!=-1) && (clientPC.indexOf(’spoofer’)==-1) && (clientPC.indexOf(’khtml’) == -1) && (clientPC.indexOf(’netscape/7.0′)==-1)); var areas = document.getElementsByTagName(’textarea’); var txtarea = areas[0]; if (document.selection && !is_gecko) { var theSelection = document.selection.createRange().text; if (!theSelection) { theSelection=sampleText; } txtarea.focus(); if (theSelection.charAt(theSelection.length – 1) == ” “) { // exclude ending space char, if any theSelection = theSelection.substring(0, theSelection.length – 1); document.selection.createRange().text = tagOpen + theSelection + tagClose + ” “; } else { document.selection.createRange().text = tagOpen + theSelection + tagClose; } // Mozilla } else if(txtarea.selectionStart || txtarea.selectionStart == ‘0′) { var replaced = false; var startPos = txtarea.selectionStart; var endPos = txtarea.selectionEnd; if (endPos-startPos) { replaced = true; } var scrollTop = txtarea.scrollTop; var myText = (txtarea.value).substring(startPos, endPos); if (!myText) { myText=sampleText; } var subst; if (myText.charAt(myText.length – 1) == ” “) { // exclude ending space char, if any subst = tagOpen + myText.substring(0, (myText.length – 1)) + tagClose + ” “; } else { subst = tagOpen + myText + tagClose; } txtarea.value = txtarea.value.substring(0, startPos) + subst + txtarea.value.substring(endPos, txtarea.value.length); txtarea.focus(); if (replaced) { var cPos = startPos+(tagOpen.length+myText.length+tagClose.length); txtarea.selectionStart = cPos; txtarea.selectionEnd = cPos; } else { txtarea.selectionStart = startPos+tagOpen.length; txtarea.selectionEnd = startPos+tagOpen.length+myText.length; } txtarea.scrollTop = scrollTop; } if (txtarea.createTextRange) { txtarea.caretPos = document.selection.createRange().duplicate(); } }</script> <form id=”form1″ name=”form1″ method=”post” action=”"> <textarea name=”textfield” id=”textfield”></textarea> <a href=”javascript:BASIC_InsertTag(’‘, ‘‘, ‘In đậm’);”>Insert B</a> </form> Theo phpbasic |
Menu CSS 4
December 19, 2009 by admin
Filed under Công cụ hỗ trợ, Ngôn ngữ lập trình
Bạn muốn tạo cho mình một cái menu các chuyên mục của blog mình, web mình một cách chuyên nghiệp , có dạng như của webblogvn.com/blog chẳng hạn nhưng mà trình độ về CSS chưa cao thì sao? Hãy xem và tham khảo đoạncode này nhé
<script type=”text/javascript”>
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById(’smenu’+i)) {document.getElementById(’smenu’+i).style.display=’none’;}
}
if (d) {d.style.display=’block’;}
}
</script>
<style type=”text/css”>
dl, dt, dd, ul, li {
margin: 0;
padding: 0;
list-style-type: none;
}
#menu {
position: absolute;
top: 1em;
left: 1em;
width: 10em;
}
#menu dt {
cursor: pointer;
background: #A9BFCB;
height: 20px;
line-height: 20px;
margin: 2px 0;
border: 1px solid gray;
text-align: center;
font-weight: bold;
}
#menu dd {
position: absolute;
z-index: 100;
left: 8em;
margin-top: -1.4em;
width: 10em;
background: #A9BFCB;
border: 1px solid gray;
}
#menu ul {
padding: 2px;
}
#menu li {
text-align: center;
font-size: 85%;
height: 18px;
line-height: 18px;
}
#menu li a, #menu dt a {
color: #000;
text-decoration: none;
display: block;
}
#menu li a:hover {
text-decoration: underline;
}
#mentions {
font-family: verdana, arial, sans-serif;
position: absolute;
bottom : 200px;
left : 10px;
color: #000;
background-color: #ddd;
}
#mentions a {text-decoration: none;
color: #222;
}
#mentions a:hover{text-decoration: underline;
}
</style>
<dl id=”menu”>
<dt onmouseover=”javascript:montre(’smenu1′);”><a href=”#”>Menu 1</a></dt>
<dd id=”smenu1″ onmouseover=”javascript:montre(’smenu1′);” onmouseout=”javascript:montre();”>
<ul>
<li><a href=”#”>Sub Menu 1.1</a></li>
<li><a href=”#”>Sub Menu 1.2</a></li>
<li><a href=”#”>Sub Menu 1.3</a></li>
</ul>
</dd>
<dt onmouseover=”javascript:montre(’smenu2′);” onmouseout=”javascript:montre();”>Menu 2</dt>
<dd id=”smenu2″ onmouseover=”javascript:montre(’smenu2′);” onmouseout=”javascript:montre();”>
<ul>
<li><a href=”#”>Sub Menu 2.1</a></li>
<li><a href=”#”>Sub Menu 2.2</a></li>
</ul>
</dd>
<dt onmouseover=”javascript:montre(’smenu3′);” onmouseout=”javascript:montre();”>Menu 3</dt>
<dd id=”smenu3″ onmouseover=”javascript:montre(’smenu3′);” onmouseout=”javascript:montre();”>
<ul>
<li><a href=”#”>Sub Menu 3.1</a></li>
<li><a href=”#”>Sub Menu 3.1</a></li>
<li><a href=”#”>Sub Menu 3.1</a></li>
<li><a href=”#”>Sub Menu 3.1</a></li>
<li><a href=”#”>Sub Menu 3.1</a></li>
<li><a href=”#”>Sub Menu 3.1</a></li>
</ul>
</dd>
<dt onmouseover=”javascript:montre(’smenu4′);” onmouseout=”javascript:montre();”>Menu 4</dt>
<dd id=”smenu4″ onmouseover=”javascript:montre(’smenu4′);” onmouseout=”javascript:montre();”>
<ul>
<li><a href=”#”>Sub Menu 4.1</a></li>
<li><a href=”#”>Sub Menu 4.1</a></li>
</ul>
</dd>
</dl>
Demo

Theo phpbasic
Dùng thử dịch vụ Public DNS miễn phí của Google
December 7, 2009 by admin
Filed under Công cụ hỗ trợ, Host & Domain
Ra đời muộn hơn dịch vụ OpenDNS, thế nhưng với danh nghĩa là “con của người khổng lồ“, DNS mới mẻ này của Google có thể làm nên chuyện.
DNS là dịch vụ giúp phân giải tên miền thành địa chỉ IP để xác định vị trí máy chủ cần truy cập. DNS ra đời để thay thế chuỗi IP khó nhớ thành một tên miền ngắn gọn dễ nhớ hơn.
Cũng như OpenDNS, DNS của Google giúp người dùng cải thiện tốc độ truy cập web so với việc sử dụng DNS mặc định của nhà cung cấp dịch vụ Internet.

Những cái hay của Google Public DNS:
- Địa chỉ DNS server rất dễ nhớ, đó là 8.8.8.8 và 8.8.4.4
- Không chuyển sang trang có quảng cáo khi gõ nhầm địa chỉ web như dịch vụ OpenDNS.
- Hệ thống máy chủ DNS mạnh mẽ và bảo đảm về bảo mật.
Với những lý do trên, Google Public DNS thật sự là mối đe dọa lớn đối với OpenDNS – hiện dẫn đầu về dịch vụ DNS miễn phí.
Các hệ điều hành khác trên máy tính như Mac OS X, Linux hay điện thoại cầm tay và các thiết bị khác, người dùng có thể xem hướng dẫn tại đây.
Xem Cách thiết lập Google DNS đối với hệ điều hành Windows XP
Xem Cách thiết lập Google DNS Servers đối với hệ điều hành Windows 7 / Vista
Theo Vnexpress
Vài điểm nhỏ về UTF-8 cho cơ sở dữ liệu MySQL
December 7, 2009 by admin
Filed under Công cụ hỗ trợ, Web nâng cao
Khi làm web bằng PHP và MySQL thì vấn đề xử lý tiếng Việt rất được hay gặp. Đôi khi nó gây rắc rối cho người làm web ở các thao tác như: sao lưu và phục hồi cơ sở dữ liệu, tạo table mới, lưu trữ và lấy dữ liệu từ cơ sở dữ liệu và hiển thị đúng, … Bản thân tôi cũng đã gặp vài lần rắc rối với tiếng Việt trong việc xử lý dữ liệu, nên viết bài này tổng hợp 1 số cái đã trải qua để ghi nhớ cho sau này.
Tìm hiểu về charset và collation
Chúng ta tạm hiểu charset (viết đầy đủ là character set) là tập hợp các ký tự và mã hóa tương ứng của chúng, còn collation là quy tắc để so sánh các ký tự nằm trong 1 charset. Trang chủ của MySQL có ví dụ khá rõ ràng để giải thích 2 khái niệm này.
Thông thường (ở đây chúng ta chỉ nói đến MySQL) thì đối với mỗi charset có 1 collation mặc định đi kèm theo nó, VD latin1 <=> latin1_swedish_ci, utf8 <=> utf8_general_ci, …
Các tham số của charset và collation
Đối với MySQL, thì charset và collation hiện diện ở những vị trí sau:
- Phía client: dữ liệu của phía client trước tiên cần phải mã hóa theo 1 charset nào đó, thông thường chúng ta dùng utf-8. Giá trị của charset này được MySQL lưu giữ trong tham số hệ thống character_set_client
- Phía server: charset và collation được dùng để mã hóa dữ liệu lưu trong hệ thống, các tham số tương ứng là character_set_server và collation_server. Ngoài ra, khi server trả dữ liệu trở lại về cho client thì chúng cũng cần phải có charset tương ứng, và tham số ứng với nó là character_set_results
- Hơn thế nữa, nằm trung gian giữa client và server là 1 kết nối (connection) được tạo ra khi client gửi yêu cầu tới server (hoặc server trả kết quả về cho client). Connection này cũng yêu cầu phải có charset và collation, chúng được lưu trong các tham số hệ thống character_set_connection và collation_connection
Như vậy, tổng hợp lại có cả thảy 6 tham số lưu giữ những thuộc tính về charset và collation:
1 |
character_set_client |
2 |
character_set_server |
3 |
collation_server |
4 |
character_set_results |
5 |
character_set_connection |
6 |
collation_connection |
Từ đây chúng ta suy ra để server và client “có tiếng nói chung”, VD như chúng ta muốn ghi vào table dữ liệu ở đúng dạng utf8 mà chúng ta có, thì các tham số trên phải được thiết lập cùng 1 nhóm với nhau utf8 và utf8_general_ci.
Cách thiết lập charset và collation
Đối với người quản trị server, có quyền thao tác trên dòng lệnh với mysql thì có thể thiết lập chúng bằng câu lệnh sau:
1 |
SET character_set_client = utf8; |
2 |
SET character_set_server = utf8; |
3 |
SET collation_server = utf8_general_ci; |
4 |
... |
5 |
(các lệnh sau tương tự) |
(ở đây tôi lấy VD là utf8, đối với các charset và collation khác làm tương tự)
Tuy vậy, như thế khá dài dòng, MySQL có cung cấp cho chúng ta câu lệnh ngắn hơn như sau:
1 |
SET NAMES utf8 [COLLATE utf8_general_ci] |
Phần trong dấu ngoặc vuông [] là không bắt buộc, nghĩa là nếu không có phần đó, collation mặc định tương ứng với charset đó sẽ được dùng. Chỗ này lưu ý là với mỗi charset có thể có nhiều collation.
Câu lệnh trên không tương ứng với hoàn toàn 6 lệnh ban đầu, mà nó chỉ tương đương với 3 lệnh sau:
1 |
SET character_set_client = utf8; |
2 |
SET character_set_results = utf8; |
3 |
SET character_set_connection = utf8; |
Ở đây cũng lưu ý là các collation sẽ được thiết lập (mặc định) tương ứng với các charset đó. Tuy vậy, các bạn có thể thấy là vẫn thiếu lệnh thiết lập cho character_set_server, tôi cũng không rõ tại sao
.
Ngoài ra, MySQL còn cung cấp 1 lệnh rút ngắn khác, tương tư như SET NAMES ở trên, đó là:
1 |
SET CHARACTER SET utf8; |
Lệnh này cơ bản giống lệnh trên, tuy vậy, nó thiết lập charset và collation của connection (2 tham số character_set_connection, collation_connection) giống với charset và collation của database (2 tham số character_set_database, collation_database), nó tương đương với:
1 |
SET character_set_client = utf8; |
2 |
SET character_set_results = utf8; |
3 |
SET collation_connection = @@collation_database; |
Đối với lập trình viên, khi bạn không có quyền thao tác trên dòng lệnh của mysql, thì có thể dùng câu lệnh PHP sau:
1 |
mysql_query('SET NAMES utf8 COLLATE utf8_general_ci'); |
2 |
hoặc |
3 |
mysql_query('SET CHARACTER SET utf8'); |
Khi tôi thử nghiệm dùng các lệnh trên để thiết lập cho các kết nối tới cơ sở dữ liệu thì lệnh SET NAMES hoạt động tốt hơn lệnh SET CHARACTER SET. Có thể là do MySQL để kiểu charset và collation mặc định cho database là latin1, mà chúng ta thì cần utf8.
Như thế, sau khi chạy lệnh SET NAMES (thường thì chạy theo cách 2 trong PHP) thì bạn có thể yên tâm tạo các truy vấn tới CSDL. Dữ liệu được ghi vào CSDL lúc này bạn có thể đọc được tiếng Việt luôn khi xem bằng PHPMyAdmin.
Những gì trình bày ở trên nên được áp dụng khi bạn tự viết 1 ứng dụng web mới. Đối với các ứng dụng đã có thì cần lưu ý xem nó có ảnh hưởng tới những gì đã có hay không (VD trong trường hợp dữ liệu của bạn lưu trữ không phải với collation utf8_general_ci chẳng hạn).
Một vài rắc rối khác
Không phải tất cả đều đúng cho mọi phiên bản của MySQL. Những điều trên được áp dụng cho MySQL version 5.0 trở lên. Từ bản 5.0, MySQL đã hỗ trợ tốt hơn cho đa ngôn ngữ. Tuy vậy, nếu bạn đã từng dùng MySQL 4.x thì vấn đề trở nên rắc rối hơn hẳn.
Tôi cũng từng gặp vấn đề lỗi hiển thị tiếng Việt khi sao lưu và phục hồi bằng PHPMyAdmin giữa 1 host dùng MySQL 4.x và 1 host dùng MySQL 5.0. Lúc đó tôi phải làm thủ công, mở file CSDL đó ra, sửa tất cả các câu lệnh tạo bảng có CHARSET=latin1 thành CHARSET=utf8.
Tuy vậy, vấn đề sao lưu, phục hồi CSDL phụ thuộc vào charset và collation của nhiều thứ (ngoài những thứ trên), có thể kể ra đây gồm:
- charset, collation của database (và các table) ở host cũ
- charset của file SQL được sao lưu
- charset, collation của database ở host mới
Những thứ này liên quan trực tiếp đến database nhiều hơn (những thứ ở trên liên quan đến việc thao tác qua lại giữa ứng dụng web và MySQL). Kinh nghiệm của tôi cho thấy là để sao lưu và phục hồi được đúng thì nên thiết lập mọi tham số ở host mới giống hệt như host cũ. Ngoài ra thì với MySQL 4.x thì nên chuyển tất cả về latin1 (do nó chưa hỗ trợ tốt cho đa ngôn ngữ), còn với MySQL 5.x thì chuyển tất cả qua utf8.
Phần về sao lưu và phục hồi này tôi cũng chưa có nhiều kinh nghiệm lắm, nên để mở vậy, sau này khá hơn thì sẽ viết tiếp
Tham khảo: MySQL Documentation
Code tin tức (AT News 1.1)
November 22, 2009 by admin
Filed under Các loại web khác, Web
Mới lên đời cho bản 1.0 
Thật ra cũng không có gì mới lạ lắm, thêm được phần lấy trang chủ từ vnexress.net/GL/Home/ và rss của vnexpress
Bạn có thể xem demo tại http://tintuc.anhtrang.org hoặc http://atdemo.com/news
Link dạng rss http://tintuc.anhtrang.org/RSS/GL/Xa-hoi.rss
Download: http://atdemo.com/news/AnhTrang.Org_News_1.1.zip
Ban cần sửa lại link từ index.php và rss.php
Host windows mở index.php tìm
$rewrite = 1;
Thay số 1 thành 0
Chú ý: tin tức từ ngoisao.net vẫn chưa khắc khục hiện tất cả trên Firefox, mới chỉ hiện bài đầu (IE hiện chuẩn)
Bài viết trích từ diẽn đàn AT http://forum.anhtrang.org/code-tin-t…-11-t2248.html
Zing clone Fix New
October 26, 2009 by admin
Filed under Các loại web khác, Web
Hôm này www.webblogvn.com qua FCVN.com nhặt được code clone từ trang nhạc của zing.vn nên tha về cho các bạn tham khảo và phát triển thêm.
Demo phát: http://hatrang.net/music
Thêm phần thông tin ca khúc khi play
Thêm lời nhạc, host này phần lời bài hát không hiện, còn trên các host khác thì hiện
VD:http://music.hatrang.net <- Hiện lời nhạc
http://hatrang.net/music <- không hiện lời nhạc
Cái này là do host thôi, không phải do code
Bỏ nút Download ngoài trang chính (Chưa Fix được nên bỏ cho khỏe
)
Bỏ phần News vì không biết Fix, ai muốn news thì dùng code news zing clone nha
Cài đặt:
Import data
Vào code/includes mở file class_sql.php edit lại database cho đúng
| $db_host = ‘localhost’; $db_name = ‘tranhoang_music’; $db_user = ‘tranhoang_ben’; $db_pass = ‘123456′; |
Mở file config.php chỉnh lại cấu hình code cho đúng
VD:
| $link_folder = ‘/music/’ |
Thay music bằng tên thư mục chứa folder code
Những thứ khác không sửa, ai không biết sửa tầm bậy không hiện hình ráng chịu
JA Raite – Basic yet elegant Joomla template
An Overview of JA Raite features:
* Modern and beautiful web typeface
* 3 columns layout based template
* 4 color options: Default, Blue, Green, Orange
* Tableless design and 100% CSS-based
* Joomla 1.5.x compatible
* 3 Menu options: JA Split menu, JA Css menu, JA Moo menu
* XHTML 1.0 Transitional Check it ?
* CSS Validates Check it ?
* Valid 508 Accessibility
* Delivered with source .PSD and FONT files, Demo site sample database and detailed user guide which can be found in JA Raite downdoad and JA Raite forum.
* Well-commented template_css.css and index.php file for flexible customization




















