Programming HandBook part 55 potx

5 248 0
Programming HandBook part 55 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

<? switch($_GET["page"]) { case "about": include ("about.htm"); exit; break; default: include ("default.htm"); } ?> Nội dung trang about.htm HTML Code: <html> Đây là nội dung trang about.htm </html> Nội dung trang default.htm HTML Code: <a href="index.php?page=about">Link đến trang about.htm</a><br> <a href="index.php">Default</a> Bạn hãy upload 3 file này lên server. + Bây giờ thử chạy file index.php (vd: http://server/index.php ), nội dung của bạn nhận được sẽ là nội dung của trang default. Vì ở đây biến page không được xác định. + Bạn hãy click vào link: Link đến trang about.htm bạn sẽ nhận được nội dung của file about.htm là: “Đây là nội dung trang about.htm” + Bây giờ bạn hãy nhìn lên thanh address bar, đường dẫn trên thanh address bar không còn là http://server/about.htm mà đã thành http://server/index.php?page=about Với cách làm trên không những giúp bạn tạo ra những liên kết đẹp mắt và chuyên nghiệp , mà giúp bạn tiết kiệm rất nhiều công sức khi muốn chỉnh sửa trang web.Ví dụ bạn muốn chỉnh sửa trang gioithieu.htm thành about.htm thì trước đây bạn sẽ phải sửa toàn bộ những liên kết đến trang gioithieu.htm có trên website, nhưng với cách làm giới thiệu trong bài viết bạn chỉ việc sửa đổi trong tệp tin index.php. nguồn http://hanhhn.chuyenlequydon.com/19 hanhdb(UDS) Chuyển đổi kiểu dữ liệu Như chúng ta đã được học, PHP có rất nhiều kiểu dữ liệu. Nhưng khác một chút với các ngôn ngữ khác, các biến trong PHP lại không được gán một kiểu dữ liệu nhất định, và các kiểu dữ liệu đó được tự do chuyển đổi từ kiểu này sang kiểu khác trong quá trình thực thi. Trong phần này, chúng ta sẽ bàn luận về việc chuyển đổi kiểu dữ liệu trong PHP. Có 2 cách cơ bản để chuyển từ kiểu dữ liệu này sang kiểu dữ liệu khác trong PHP. Chuyển đổi toàn vẹn (Implicit Type Conversions) Đó là cách phổ biến nhất trong việc chuyển kiểu dữ liệu mà bạn thấy, thật ra, đó là do PHP tự động làm cho bạn. Nghĩa là thay vì tự bạn yêu cầu một kiểu dữ liệu xác định, PHP tự quyết định xem đó là kiểu dữ liệu gì cho chúng ta. Đó là những loại chuyển đổi sau: Các phép tính có toán tử: Nếu PHP nhận thấy một phép toán giữa số nguyên và số phức, thì kết quả nó trả về là số phức. Nếu một chuỗi cộng với một số bất kỳ, PHP sẽ cố chuyển chuỗi đó sang dạng số trước khi làm phép cộng với số đã cho. Ví dụ: PHP Code: <?php echo "5" + 2; // kết quả là 7 ?> Các biểu thức boolean: Được dùng khi PHP thấy một biểu thức phải phát sinh ra kết quả Boolean. Khi đó, nó sẽ được tự chuyển sang Boolean trước khi tiếp tục. Những phương thức xuất ra chuỗi: Có những phương thức mà kết quả BẮT BUỘC phải xuất ra chuỗi (như print, echo ) hoặc những toán tử nối kết (.). Khi đó, PHP luôn cố gắng để chuyển đổi các kiểu không-phải-chuỗi (non-string) ra kiễu chuỗi (string). Chuyển đổi không toàn vẹn (Explicit Type Conversions) Trong trường hợp này, PHP không chuyển đổi một cách thông thường, bạn phải quyết định xem kiểu dữ liệu nào bạn muốn có. Hãy xem xét ví dụ này: PHP Code: <? $doubleNumber = 10.5; echo("We have a double number: ".$doubleNumber."<br>"); // Kết quả là 10.5 $intNumber = (int) $doubleNumber; echo("Now, it is integer: ".$intNumber); // Kết quả là 10 ?> Rõ ràng, cách chuyển đổi kiểu dữ liệu này không giữ nguyên tính toàn vẹn của dữ liệu của chúng ta (từ 10.5, chúng ta chỉ còn 10 khi chuyển từ dạng số phức sang dạng số nguyên). Các khai báo để chuyển dữ liệu dạng không toàn vẹn như sau: • (int), (integer) Chuyển sang dạng số nguyên. • (float), (double), (real) Chuyển sang dạng số có phần thập phân • (string) Chuyển sang dạng chuỗi • (bool), (boolean) Chuyển sang dạng Boolean • (array) Chuyển sang dạng mảng • (object) Chuyển sang một đối tượng nào đó (có thể người dùng tự định nghĩa) Hãy tham khảo phần bài tập để có cái nhìn tổng quan hơn về việc chuyển kiểu dữ liệu. isheep(UDS) Chuyển hướng người dùng với PHP Đôi lúc người dùng sẽ gửi 1 yêu cầu và ta muốn chuyển hướng họ đến 1 trang khác trước hoặc sau khi xử lý. Ví dụ đơn giản như: khi người dùng điền vào form đăng ký để tạo tài khoản mới, form gửi theo method post đến file process_new_user.php, đoạn mã này, sau khi chạy thành công sẽ chuyển người dùng (đã đăng ký) đến trang welcome_new_user.php như sơ đồ: Nếu ta muốn xử lý gì đó rồi sau đó chuyển người dùng đến 1 trang mới trong PHP thì có thể sử dụng hàm header. Hàm này cho phép chúng ta gửi trở lại cho máy người dùng những "HTTP header" để thực hiện những yêu cầu khác nhau. Nó có thể sử dụng nhiều loại header khác nhau, nhưng ta sẽ sử dụng header Location để giải quyết nhu cầu của mình. Ví dụ, ta có file process_new_user.php như sau PHP Code: <?php // Tao tai khoan moi voi thong tin trong $_POST $processing_error = create_new_user_account( $_POST['username'], $_POST['fullname'], $_POST['password']); // Chuyen huong den trang moi neu khong co loi gi xay ra if ($processing_error === FALSE) { header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/welcome_new_user.php'); } else { // Co loi! Chuyen huong lai trang tao tai khoan header('Location: http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/create_account.php?err=' . $processing_error); } ?> Phải chú ý 1 điều quan trọng khi sử dụng hàm header là không được in ra bất cứ kí tự nào trước khi sử dụng hàm, nếu không sẽ báo lỗi! Đoạn mã sau chắc chắn sẽ báo lỗi: PHP Code: <?php header('Location: http://' . $_SERVER['HTTP_HOST'] . '/welcome2.php'); ?> Lý do báo lỗi vì có phần khoảng trắng trước <?php. Nếu 1 trong các file bạn include vào cũng có khoảng trắng nằm ngoài phần mã PHP thì cũng sẽ gặp lỗi tương tự Có 1 cách khác là sử dụng header META. Với cách này, bạn có thể yêu cầu trình duyệt tự động chuyển hướng tới 1 trang mới: PHP Code: <?php echo <<EOH <meta http- equiv='refresh' content='0; url="http://$_SERVER['HTTP_HOST']/welcome2.php" /> EOH; ?> Tuy nhiên cách này có 1 nhược điểm là nếu trình duyệt đã bị tắt chức năng này thì sẽ không có gì xảy ra hết! Nói chung, chúng ta sẽ thường sử dụng hàm header khi muốn chuyển hướng người dùng với PHP End Mr.paint(UDS) Hằng số và biến Do trong giáo trình của chúng ta còn khuyết mất phần này nên hôm nay xin phép viết 1 chút cho anh em nào còn chưa biết (mấy bác pro rồi nhìn đừng chê em :P) Định nghĩa 1 hằng số

Ngày đăng: 03/07/2014, 09:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan