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?
Đâ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 »
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 »
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?
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 »
=== 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
-
$a = 123;
-
$b = ‘123′;
-
if($a === $b)
-
{
-
exit(‘TRUE’);
-
}
-
else
-
{
-
exit(‘FALSE’);
-
}
Read the rest of this entry »
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 »

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 »
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?
^_^
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 »
- 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 »
- 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ố.
- 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{
}
- 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.
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 »
Đâ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 Domain và Server 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 »