Lỗi session_start();

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\PHP\session\registerSession.php:2) in C:\AppServ\www\PHP\session\registerSession.php on line 3Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\PHP\session\registerSession.php:2) in C:\AppServ\www\PHP\session\registerSession.php on line 3

// đoạn code đặt ở đầu trang web, hoàn toàn chưa gọi bất kỳ biến nào khác
Xin hỏi tôi gặp phải lỗ gì và phải khắc phục như thế nào?

Share This Post

Thẻ Meta name revisit-after

Đây là một thẻ quan trọng với bộ máy tìm kiếm, nó đưa ra thời gian sau bao lâu thì máy tìm kiếm nên quay lại trang web đó để lưu lại. Tuy nhiên thẻ meta này hiện nay hầu như không được hỗ trợ bởi những máy tìm kiếm phổ biến mà chỉ được hỗ trợ trong trang Vancouver Webpages và bộ máy tìm kiếm cục bộ searchBC.
Read the rest of this entry »

Share This Post

Các thẻ Meta trong HTML

Thẻ <meta> là một thành phần quan trọng trong file HTML, nó chứa các thông tin về file HTML đó như tên tác giả, các từ khoá, các thông tin mô tả site đó,… Và có thể có 1 số thông tin điều khiển trình duyệt, chỉ định cho các máy tìm kiếm, …

Thẻ Meta có có cấu trúc như sau:

<META NAME=”"  HTTP-EQUIV=”" CONTENT=”" SCHEME=”" >
Read the rest of this entry »

Share This Post

Vòng for này lạ ghê

Này nhé: nếu dùng:

for($i="a";$i<"z";$i++)
echo $i."-";
?>

Kết quả: a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-

Còn nếu viết:

for($i="a";$i<="z";$i++)
echo $i."-";
?>

đố mọi người kết quả ra là j?

Share This Post

Làm nhanh một nội dung phân trang

Chắc chắn việc phân trang khi làm WEB là khá thường xuyên, beginner nào như mình cũng cần phải làm qua cái này. Sau đây sẽ giới thiệu nhanh cách làm:

Ví dụ của mình là hiển thị ra danh sách user từ table users nằm trên MySQL. Ứng với mỗi user sẽ hiện ra group, username, fullname, gender, RegisterDate. Mỗi trang hiển thị 10 user:
Cách làm là lấy từ CSDL ra bằng lệnh SELECT kèm theo LIMIT $offset,$rowsPerPage
Read the rest of this entry »

Share This Post

Tại sao === lại nhanh hơn ==

=== có nghĩa là tương đương. == có nghĩa là bằng, theo giá trị.

($a===$b) tức là ($a==$b && gettype($a) == gettype($b))

Ví dụ: Kết quả là FALSE

  1. $a = 123;

  2. $b = ‘123′;

  3. if($a === $b)

  4. {

  5. exit(‘TRUE’);

  6. }

  7. else

  8. {

  9. exit(‘FALSE’);

  10. }

Read the rest of this entry »

Share This Post

1 lỗi nữa hay gặp

Các bạn vào địa chỉ sau: http://phpvn.info/test/test.php

Và xem source của file test là đó, sau đó nhập 2 số a,b với các trường hợp khác nhau, sau đó nhấn Check, xem kết quả ra thế nào.

Ví dụ

nhập a=1, b=2 -> ra Not_Equal -> True

nhưng nhập a=1, b=1 vẫn ra Not_Equal -> False,

Bạn thử xem cách viết trong code có gì sai?
Read the rest of this entry »

Share This Post

URL Rewrite như thế nào ?

Figure 2: The back-reference flow through a rule

Có bạn hỏi làm sao tạo được các đường dẫn đẹp (URL Rewrite) như các trang trên mạng. Mình cũng tìm hiểu qua và xung phong viết 1 bài về nó vậy. Trước tiên chúng ta tìm hiểu cơ chế rewite:Rewrite Engine là một phần dịch vụ của Webserver được dùng để thay đổi URL(đường dẫn trên trình duyệt) sang một dạng khác với nhiều mục đích khác nhau. Kỹ thuật được nói đến là URL rewriting và nó đem lại những tiện lợi sau:- Làm cho URL trở nên thân thiện với người dùng cũng như dễ dàng với các Search Engine (bộ máy tìm kiếm)- Tránh lộ các đường link quan trọng- Tránh lộ các công việc bên trong trước người dùng

Bản chất của việc rewrite này các bạn có thể hình dung như sau: khi bạn gõ 1 đường link lên trình duyệt như sau: http://vidu.com/news/2007/13/01 thì đây là đường dẫn ảo, và khi request đến Webserver nó sẽ đổi lại thành đường dẫn thật như sau: http://vidu.com/index.php?mod=news&year=2007&day=13&month=01 << có thể là như thế này vì có nhiều cách rewrite.

Đối với Server Apache: để thực hiện được URL Rewriting bạn làm các bước sau:

Read the rest of this entry »

Share This Post

Một số sách PHP theo yêu cầu

Thấy 1 số bạn chát với mình muốn có sách học PHP, nhưng có mấy cuốn sách sưu tầm được:

engine PHP.pdf
MySQL_PHP_Database_Applications_2001.pdf
PHP introduction_TAT.pdf
Tao_Web_dong_voi_PHP_va_MySQL.pdf
Tuhoc PHP.rar
tuhocphp2.rar
[Developer Shed Network] Server Side - PHP - PHP Application Development with ADODB (Part1).pdf
[Developer Shed Network] Server Side - PHP - PHP Application Development with ADODB (Part 2).pdf
PHP_tiengviet.PDF
PHP_How_To_2000.pdf

Các bạn nhắp chuột phải rồi Save as…

Share This Post

Một sai lầm có thể mắc phải

Trong khi viết ứng dụng chúng ta có rất nhiều file và vì thế khi Include vào để chạy có thể sẽ gặp 1 trường hợp sau:

Mình có 2 file a.php và b.php với nội dung như sau:

File 1: a.php

<?
$root_url_tmp = “http://”.$_SERVER[’HTTP_HOST’].dirname($_SERVER[’SCRIPT_NAME’]);
$root_url_tmp = trim($root_url_tmp, ” /”);
define(”ROOT_URL”, $root_url_tmp);
require_once(ROOT_URL.”/b.php”);

hello_world();
?>

File 2: b.php

<?
function hello_world(){
echo “Hello World”;
}
?>

Mục đích chạy là để gọi 1 hàm trong file đã include (b.php).

Khi chạy file a.php ví dụ http://localhost/Test/a.php  thì kết quả là FatalError:

Fatal error: Call to undefined function: hello_world() in c:\wamp\www\test20061108\a.php on line 7

Bạn biết lỗi này tại sao chưa?

^_^

Share This Post

Regular Expression

Biểu thức chính qui dùng bộ kí hiệu qui ước như sau:

- | nghĩa là hoặc (or)

- () nghĩa là nhóm các thành phần

- * nghĩa là lặp lại 0 hoặc nhiều lần kí tự đứng trước

- ? nghĩa là lặp lại 1 hoặc nhiều lần

- + nghĩa là lặp lại 0 hoặc 1 lần

Read the rest of this entry »

Share This Post

Session, Cookie, POST, GET,…

  1. Session

Dùng để lưu thông tin trong một phiên kết nối. Ví dụ: mỗi khi ta mở một trang web (diễn đàn), sẽ có một session được tạo ra trên máy chủ.

Để khởi tạo session ta dùng hàm :

session_start()

Session chỉ là một file, có thể ghi các thông tin cần thiết vào đó như username, password, địa chỉ IP…

Mỗi session được tạo ra sẽ có 1 ID là một số 32 kí tự, được tạo ra 1 cách ngẫu nhiên sao cho không có 2 session nào có ID giống nhau. Muốn ghi các biến vào trong session ta dùng hàm:

session_register()
Read the rest of this entry »

Share This Post

Hàm, Lớp, Include, Require

  1. Hàm: trong PHP hàm không cần định kiểu trả về.

Khai báo:

            function tên_hàm($doiso1 = “”, $doiso2 = “”, $doiso3 = “”){

            }

Hàm có thể có các đối số, và có thể khởi tạo lúc khai báo. Khi gọi hàm với những đối có khởi tạo sắn thì có thể không cần viết đối số.

  1. Lớp

Lớp trong PHP cũng linh hoạt, dễ khai báo, nhưng không có nhiều tính năng như trong C++.

Khai báo lớp trong PHP:

class tên_lớp{

            var $user;

            function tên_lớp($doiso1 = “”, $doiso2 = “”){

            }

}

$foo    = new tên_lớp();

$foo1  = new tên_lớp(doiso1, $doiso2);

Trong PHP lớp không thực sự mạnh nhưng ta nên viết dưới dạng đóng gói trong lớp.

Lớp cũng có tính kế thừa bằng cách dùng tư khoá extends

Class Lớp_A extends Lớp_B{

 

}

  1. Include(), require()

Giống như trong từ khoá #include trong C/C++. Nhưng không có các định nghĩa file header hay file nguồn gì cả. Mà các file include đều là file mã nguồn.

Khi include hay require thì mã nguồn của file được include sẽ được chèn vào file gọi include. Khi 1 file B được include vào file A thì các biến toàn cục trong file A thì file B có thể được sử dụng bình thường.

Có thể dùng thêm include_once() hoặc require_once(). Tìm hiểu sự khác nhau trong PHP_Manual.

Share This Post

Cú pháp, biến, các phép toán

PHP viết giống ngôn ngữ C, C++.

Đoạn mã PHP được bọc trong 2 thẻ ‘<?’ hoặc ‘<?php’ và ‘?>’. Có thể chèn vào bất kì chỗ nào trong file HTML, PHP.

Câu lệnh: trong PHP đều được kết thúc bằng dấu ; trừ câu lệnh cuối cùng trước dấu ‘?>’.

Chú thích: trong PHP hỗ trợ các kiểu chú thích giống C, C++

// chú thích trên một dòng

/* chú thích trên

nhiều dòng

*/

Read the rest of this entry »

Share This Post

Cài đặt Apache, PHP, Mysql

Đây là cài đặt riêng rẽ từng chương trình một và tự cấu hình, ngoài ra có nhiều bộ Setup chọn gói các bạn xem ở cuối bài.

(Đây là bài đựơc copy từ bên Quản trị mạng)

I : Cài Đặt Apache

Muốn cài đặt Apache thì ta phải download Apache về các bạn có thể tải Apache về tại đĩa chỉ http://www.apache.org , các bạn nhớ chú ý chọn phiên bản cho đúng nhé sau khi tải Apache về xong chúng ta tiến hành cài đặt nó Click vào file mới download về 1 hộp thoại sẻ hiện ra , click tiếp vào Next chọn mục

I accept the terms in the license agreement và nhấn Next và tiếp tục Next 1 lần nữa , trong hộp thoại Networl DomainServer Name các bạn điền localhost điền admin@localhost vào hộp thoại Aministrator’s Email Address Click Next để tiếp tục , chọn Custom và tiếp tục bây giờ sẻ xuất hiện 1 của sổ mới , chọn thư mục để cài đặt apache, muốn để đâu củng được cả, nhưng mặc định của nó là C:\Program Files\Apache Group. bây giờ Apache sẻ tự động cài đặt, công việc của bạn sẻ là ngồi đợi cho đến khi kết thúc và sau khi Apache cài xong các bạn nên reset lại máy của mình

Read the rest of this entry »

Share This Post