Vài điều cần nói về biến.[r]
(1)Hướng dẫn học lập trình PHP &MySQL
(2)Cài đặt Web server - bước để học PHP!
"Trường học" vừa khai giảng, lúc đợi học lị, cho phép tớđược "múa rìu qua mắt thợ cái"!
Như bác ngocha85 nói, để học PHP MySQL, thứ cần chuẩn bị web server chạy PC Để cho nhanh chóng, theo tớ tốt nên cài XAMPP
Câu hỏi 1: XAMPP gì?
Trả lời: XAMPP giống với WAMP, nghĩa người học ko cần phải biết cách cài đặt riêng lẻ thành phần Apache, PHP MySQL Chỉ cần download gói xong
Các tính có XAMPP: Apache => server
2 PHP => ngơn ngữ lập trình MySQL => sở liệu
4 Webalizer => quản lý statistic site Mercury => giả lập gửi email
6 FileZilla => giả lập FTP server
7 Rất nhiều tính chuyên sâu khác
Câu hỏi 2: Tại ko dùng WAMP?
Trả lời: Vì tớ chưa dùng + Cái bác ngocha85 giới thiệu => tránh
đụng hàng Với lại XAMPP theo tớ hay, chí ko cần cài đặt, cần copy chạy
Câu hỏi 3: Down XAMPP đâu?
Trả lời: Ởđây: http://www.apachefriends.org/en/xampp.html
Có đủ XAMPP cho Windows, Linux, MacOS Solaris, hệđiều hành chấp tất!
Câu hỏi 4: Cài đặt sử dụng XAMPP nào?
Trả lời: Sau tải về, bạn có file zip Giải nén file thư mục bất kỳ, ví dụ C:\XAMPP
Để chạy web server, bạn kích hoạt file xampp_control.exe, bấm nút Start bên cạnh Apache nút close để XAMPP Control tựđộng chuyển xuống system tray
Ngoài ra, bạn khởi động MySQL dùng sở liệu, FileZilla dùng FTP Mercury dùng email
Để biết web server chạy đúng, bạn mở trình duyệt web mình, gõ http://localhost
vào Address, sau enter Một trang thơng báo ra, cho biết q trình "cài đặt" hồn tất
Câu hỏi 5: Làm để chạy script viết PHP?
Trả lời: Bạn cho script vào thư mục C:\XAMPP\htdocs\ sau gọi file qua URL
(3)Vậy hết "bài chuẩn bị cho khởi động" bác ngocha85 post vài ngày tới Tèn tén ten!
Thừa thắng xông lên, tớ làm "Hello World"
Bài 1: Nói "hello world" với PHP
Cần chuẩn bị gì?
1 Web server cần đảm bảo sẵn sàng Apache khởi động theo post Một script editor Cái có nhiều, PHP Designer, Dev-PHP, Thậm chí dùng notepad Nhưng tốt nên dùng editor có hỗ trợ unicode Như tớ dùng SCiTE
Bạn vào trang để xem list review PHP editor: http://www.php-editors.com/
3 phút thời gian rảnh rỗi
Bắt đầu!!!
1 Tạo file mang tên "helloworld.php" thư mục htdocs Mở file script editor Gõ đoạn code sau vào editor:
PHP Code:
<?php
echo "Hello World!";
?>
3 Mở trình duyệt web, gõ http://localhost/helloworld.php [enter]
4 Nhắm mắt lại 0.0001 giây Nếu mở mắt mà bạn thấy dòng chữ Hello World thành cơng đó!
Giải thích
1 Dịng thứ file helloworld.php "<?php" dòng cuối "?>" Đây thẻ (tag)
để báo cho server biết điểm bắt đầu kết thúc đoạn code PHP Nói cách khác, cách bạn nhúng code PHP file HTML có sẵn Khi thực thi file PHP, web server thực đoạn code đặt thẻ bỏ qua phần lại
2 Dòng lệnh PHP: Lệnh echo Lệnh làm nhiệm vụ in xâu ngồi hình Cần nhớ lệnh PHP kết thúc dấu chấm phẩy ";" Nếu thiếu dù dấu chấm phẩy, code bạn ko chạy dừng lại biểu tình
3 Cũng dòng 2, xâu "Hello World" đặt dấu ngoặc kép Nếu ko, có lỗi
Một vài câu hỏi
1 Có cần thiết phải trình bày ko?
=> Ko Bạn trình bày code theo cách bạn muốn Lùi vào 10 dấu cách, dòng cách hàng, Điều tùy bạn Tuy nhiên cần phải viết code cho thật dễđọc dễ hiểu để tiện cho việc sửa đổi chia sẻ code sau
(4)PHP Code:
<?
// Code ởđây
?>
Tuy nhiên cách khác thơng dụng khuyến cáo ko nên sử dụng Có thểđặt xâu Hello World dấu ngoặc đơn ko?
=> Có thể Bạn dùng dấu ngoặc kép dấu nháy đơn để chứa xâu Sự khác chúng sẽđược thảo luận sau
4 Nếu xâu có dấu ngoặc / xâu đoạn văn dài sao?
=> Ko có phải lo lắng Cái có cách giải Vấn đề cách ko nằm học hôm Hết phút rồi, bạn nghỉ ngơi :P
Bài tập
Vì Bài đơn giản, theo tinh thần Hello World nên tập có bài, rất đơn giản
Hãy cho biết lỗi sai đoạn code sau:
PHP Code:
echo "Hello World!";
2
PHP Code:
<?php
echo "Hello World!" ?>
3
PHP Code:
<?php
echo "Hello World!'; ?>
(5)PHP Code:
<?php
echo "Hello World!";
?>
Bài - Mục 1: Lưu trữ liệu PHP Vài điều cần nói biến.
Trước bắt đầu 2, tớ xin trình bày cách thích (comment) PHP Đây coi kỹ được, bạn KHƠNG NÊN viết code mà ko có thích Có thểđoạn code dễ hiểu vào thời điểm viết, ko có thích, vài tháng sau bạn qn viết Viết thích vào thời điểm code cách tốt Trong PHP, dịng thích đặt sau dấu sổ chéo //
Ví dụ
PHP Code:
// Đây dịng thích
Nếu thích bạn dài dịng, bạn có thểđể block, mởđầu /* kết thúc */
PHP Code: /*
Chú thích dịng thứ Thứ
Thứ Vân vân */
Cịn cách nữa, KHƠNG phổ biến (ít tớ thấy thế), thích đặt sau dấu # Chú thích cho phép dòng giống //
Một điều khác cần ý PHP ko cho phép đặt thích thích (nested comment)
Ta bắt đầu vào Bài
Bài 2: Lưu trữ liệu PHP
(6)http://www.php.net/manual/en/ref.strings.php
Coming Up Next: Sử dụng Regular Expression để tìm kiếm thay xâu TẠO FORM ĐỂ UPLOAD FILE
Form để upload file cần thoã mãn điều kiện sau: * method POST
* enctype multipart/form-data
Mã HTML form từa tựa sau:
<form method="POST" enctype="multipart/form-data" action="process_upload.php"> <input type="hidden" name="MAX_FILE_SIZE" value="30000">
<input type="file" name="file_upload" size="20"> <input type="submit" value="Upload">
</form>
Đoạn code tạo form với nút Browse để ban chọn file cần upload, nút Upload
để bạn submit form Form sẽđược submit tới file process_upload.php nằm thư mục với file chứa form
Một số browser support MAX_FILE_SIZE kiểm tra dung lượng file trước form submit, nhiên browser Cho nên bạn đừng nên tin tưởng tuyệt đối vào server! Ở ví dụ trên, browser hỗ trợ, file có dung lượng lớn 30000 byte
được browser thông báo lỗi submit form XỬ LÝ DỮ LIỆU ĐƯỢC SUBMIT LÊN SERVER
Bây ta xem xét tới phần xử lý liệu submit lên server file
process_upload.php PHP lưu thông tin file upload lên server biến global $_FILES Với form ví dụ trên, PHP truyền cho script process_upload.php thông tin sau:
* $_FILES['file_upload']['name']: tên file gốc máy client Tuỳ vào browser, tên file
được truyền lên server dạng C:\folder\filename.ext filename.ext Chương trình phải tự kiểm tra trích tên file cần thiết
* $_FILES['file_upload']['type']: kiểu file, lưu dạng MINE (Ví dụ: image/gif, audio/wav)
* $_FILES['file_upload']['size']: dung lượng file tính theo byte
* $_FILES['file_upload']['tmp_name']: sau upload, server lưu file vào file tạm server, biến cho ta biết đường dẫn tên file tạm Chương trình sẽđọc file tạm
để lấy nội dung file upload
* $_FILES['file_upload']['error']: mã lỗi, chương trình nên kiểm tra biến để bảo đảm q trình upload khơng xảy lỗi
o UPLOAD_ERR_OK ( = ): khơng có lỗi, q trình upload thành cơng
o UPLOAD_ERR_INI_SIZE ( = ): dung lượng file upload vượt giới hạn chỉđịnh file php.ini
o UPLOAD_ERR_FORM_SIZE ( = ): dung lượng file upload vượt giới hạn chỉnh
định MAX_FILE_SIZE
o UPLOAD_ERR_PARTIAL ( = ): file chỉđược upload phần (có thể lỗi đường truyền trình upload)
(7)tồn tại)
Khi có tồn thơng tin cần thiết, xử lý file quyến định bạn Bạn có thểđọc nội dung file lưu vào database, di chuyển file lưu vào thư mục upload bạn Sau ví dụ file process_upload.php
Đầu tiên, kiểm tra xem tác vụ có phải upload hay không: if ( $_SERVER["REQUEST_METHOD"] != "POST" ) { //thông báo lỗi method POST
//và thoát exit(-1); } //end if
Tiếp theo kiểm tra xem q trình upload có lỗi khơng: if ( !isset($_FILES["file_upload"]["error"] ||
$_FILES["file_upload"]["error"] != ) {
//thông báo lỗi dựa vào giá trị $_FILES["file_upload"]["error"] //và thoát
exit(-1); } //end if
//ta kiểm tra xem dung lượng file có vượt q giới hạn //của chương trình hay khơng
if ( $_FILES["file_upload"]["size"] > $MAX_FILE_SIZE ) { //thông báo lỗi
//và thoát exit(-1); }
Tách tên file từ client:
$temp = preg_split('/[\/\\\\]+/', $_FILES["file_upload"]["name"]); $filename = $temp[count($temp)-1];
//ta kiểm tra phần mở rộng file cần thiết if ( !preg_match('/\.(gif|jpg)$/i', $filename ) {
//thông báo lỗi file upload dạng GIF JPG //và thoát
exit(-1); } //end if
Và cuối cùng, lưu file upload vào nơi cần thiết: $upload_dir = "/home/nbthanh/public_html/uploads/"; $upload_file = $uploaddir $filename;
if ( move_uploaded_file($_FILES["file_upload"]["tmp_name"], $upload_file) ) { //file upload copy sang thư mục lưu trữ thành công
(8)CÁC HÀM PHP ĐƯỢC DÙNG TRONG VÍ DỤ * exit: dừng/thốt chương trình
* isset: kiểm tra xem biến có tồn hay khơng Trong ví dụ viết, ta dùng hàm isset để kiểm tra xem biến $_FILES["file_upload"]["error"] có tồn hay không
* preg_split: tách chuỗi thành phần nhỏ theo regular expression Trong ví dụ viết, ta dùng hàm để tách tên file đường dẫn thành phần nhỏ (phân cách ký tự \ /, ta client Windows hay Linux nên ta tách theo trường hợp tổng quát) Sau tách, phần tử cuối tên file
Một cách khác để lấy tên file dùng hàm basename Tuy nhiên sử dụng hàm có số vấn đề nảy sinh, bạn tham khảo thêm ởđây:
http://www.php.net/manual/en/function.basename.php
* count: đếm số lượng phần tử mảng $a[count($a)-1] truy cập tới phần tử cuối mảng $a
* preg_match: sử dụng regular expression để tìm xem chuỗi có xuất chuỗi mẹ hay khơng Trong ví dụ viết, ta dùng hàm để kiểm tra xem tên của có kết thúc gif jpg hay không
* move_uploaded_file: di chuyển file upload từ client đến thư mục khác server TÀI LIỆU THAM KHẢO
* PHP Manual: http://www.php.net/manual/en/index.php
o Regular Expression Functions (Perl-Compatible): http://www.php.net/manual/en/ref.pcre.php
o Handling file uploads: http://www.php.net/manual/en/features.file-upload.php * Từ Google: từ khoá php tutorial upload file
http://www.apachefriends.org/en/xampp.html http://localhost/script_name.php : õ http://localhost/helloworld.php http://www.php.net/manual/en/ref.strings.php http://www.php.net/manual/en/function.basename.php http://www.php.net/manual/en/index.php http://www.php.net/manual/en/ref.pcre.php http://www.php.net/manual/en/features.file-upload.php