Tải bản đầy đủ (.pptx) (50 trang)

bai4form xuanhiens weblog

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (552.38 KB, 50 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>XỬ LÝ FORM TRONG </b>


<b>PHP</b>



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>FORM</b>



 <b><sub>Form được sử dụng để tương tác giữa người dùng và </sub></b>
chương trình bằng cách sử dụng các biến


 <b><sub>$ _GET, </sub></b>


 <b><sub>$ _POST </sub></b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>Phương thức gửi thơng tin đến server</b>



 <b><sub>Trình duyệt web giao tiếp với server bằng cách sử dụng một </sub></b>
<b>trong hai phương thức HTTP (Hypertext Transfer Protocol) </b>
<b>- GET và POST. </b>


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

<b>Phương thức GET</b>



 <b><sub>Trong phương thức GET, dữ liệu được gửi dưới dạng các </sub></b>


<b>tham số URL </b>gồm <b>các chuỗi tên và cặp giá trị được phân </b>


<b>tách bằng dấu &.</b>


 <sub>Ví dụ:</sub>


 <b><sub>Các phần in đậm trong URL là các tham số của GET và các phần </sub></b>


<i><b>in nghiêng là giá trị của các tham số.</b></i>



 <sub>Nếu nhiều hơn một tham số thì sử dụng dấu & để nối các cặp tham </sub>


số.


 <i><b><sub>Chỉ có thể gửi dữ liệu văn bản đơn giản bằng phương thức GET.</sub></b></i>


/>


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

<b>Phương thức GET</b>



 <b><sub>Ưu điểm của phương thức GET</sub></b>


 <sub>Phương thức GET dữ liệu được hiển thị trong URL, nên có thể đánh </sub>


dấu trang bằng các giá trị chuỗi truy vấn cụ thể.


 <b><sub>Nhược điểm của phương thức GET</sub></b>


 <sub>Phương thức GET không phù hợp để chuyển thông tin nhạy cảm </sub>


như tên người dùng và mật khẩu.


 <sub>Phương thức GET chỉ định dữ liệu cho biến môi trường máy chủ, độ </sub>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

<b>Phương thức GET</b>



 <b><sub>PHP cung cấp biến $ _GET để truy cập vào tất cả thông tin </sub></b>


được gửi qua URL hoặc được gửi qua form HTML bằng
phương thức GET.



 <sub>Ví dụ:</sub> <b><sub><</sub><sub>body</sub><sub>></sub></b>
<b>    <?php</b>


<b>        if(isset($_GET["name"])){</b>


<b>      echo "<p>Hi, " . $_GET["name"] . "</p>";</b>


<b>    }</b>


<b>    ?></b>


<b>    <form method="get" action="<?</b>
<b>php echo $_SERVER["PHP_SELF"];?>"></b>


<b>        <label for="inputName">Name:</label></b>


<b>        <input type="text" name="name" id="inputName"></b>


<b>        <input type="submit" value="Submit"></b>


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<b>Phương thức POST</b>



 <b><sub>Trong phương thức POST, dữ liệu được gửi đến server dưới </sub></b>


<b>dạng một gói riêng biệt với tập lệnh xử lý. </b>


 <sub>Dữ liệu gửi qua phương thức POST không hiển thị trên URL.</sub>


 <sub>Ví dụ: </sub>



<b><?php</b>


<b>    if(isset($_POST["name"])){</b>


<b>        echo "<p>Hi, " . $_POST["name"] . "</p>";</b>


<b>    }</b>
<b>?></b>


<b><form method="post" action="<?</b>


<b>php echo $_SERVER["PHP_SELF"];?>"></b>


<b>    <label for="inputName">Name:</label></b>


<b>    <input type="text" name="name" id="inputName"></b>


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<b>Phương thức POST</b>



 <b><sub>Ưu điểm của phương thức POST</sub></b>


 <sub>POST an tồn hơn GET vì thơng tin người dùng khơng hiển thị trên </sub>


URL hoặc trong nhật ký máy chủ.


 <sub>Có thể gửi lượng dữ liệu lớn, gồm văn bản, dữ liệu nhị phân </sub>


(uploading a file)



 <b><sub>Nhược điểm của phương thức POST</sub></b>


 <sub>Phương thức POST không hiển thị dữ liệu trên URL, nên khơng thể </sub>


đánh dấu trang có truy vấn cụ thể.


 <b><sub>PHP cung cấp một biến $ _POST </sub></b> <sub>để truy cập thông tin </sub>


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

<b>Ví dụ FORM</b>



 <sub>Tạo Form</sub>


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

<b>Ví dụ FORM</b>



 <b><sub>Tạo form </sub></b>


<b><input type="text" name="name" id="inputName"></b>
<b><input type="text" name="email" id="inputEmail"></b>


<b><input type="text" name="subject" id="inputSubject"></b>
<b><textarea name="message" id="inputComment" rows="5" </b>


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

<b>Lấy dữ liệu trên form</b>



 <b><sub>Khi người dùng click nút submit, dữ liệu trên form sẽ được </sub></b>


<b>gửi đến tệp "process-form.php" trên server để xử lý.</b>


<b><p>Here is the information you have submitted:</p></b>



<b>   <ol></b>


<b>      <li>Name:</b> <b> <?php echo $_POST["name"]?></li></b>


<b>      <li>Email:   <?php echo $_POST["email"]?></li></b>


<b>      <li>Subject:<?php echo $_POST["subject"]?></li></b>


<b>      <li>Message:<?php echo $_POST["message"]?></li></b>


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

<b>Biến </b>

<b>$_REQUEST</b>



 <b><sub>Biến $ _REQUEST chứa các giá trị của cả biến $ _GET và </sub></b>


<b>$_POST và các giá trị của biến $ _COOKIE.</b>
 <sub>Ví dụ: </sub>


<b><?php</b>


<b>    if(isset($_REQUEST["name"])){</b>


<b>        echo "<p>Hi, " . $_REQUEST["name"] . "</p>";</b>


<b>    }</b>
<b>?></b>


<b><form method="post" action="<?php echo $_SERVER["PHP_SELF"];?</b>
<b>>"></b>


<b>    <label for="inputName">Name:</label></b>



<b>    <input type="text" name="name" id="inputName"></b>


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

<b>Cookies </b>



 <b><sub>Cookie là một tập tin văn bản nhỏ cho phép bạn lưu trữ một </sub></b>
lượng nhỏ dữ liệu (gần 4KB) trên máy tính của người dùng.


 <b><sub>Cookie được sử dụng để theo dõi thông tin như tên người </sub></b>
dùng mà trang web có thể truy xuất để cá nhân hóa trang khi
người dùng truy cập lần sau.


 <i><b><sub>Mỗi khi trình duyệt yêu cầu một trang đến máy chủ, tất cả dữ </sub></b></i>


</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<b>Cài đặt Cookies</b>



 <b><sub>Hàm </sub><sub>setcookie (): </sub></b><sub>được sử dụng để đặt cookie. </sub>
 <b><sub>Cú pháp: </sub></b>


 <i><sub>Name: Tên của cookie.</sub></i>
 <i><sub>Value: Giá trị của cookie.</sub></i>


 <i><sub>Expire: Ngày hết hạn. Sau thời gian này, cookie sẽ không thể truy cập </sub></i>
được. Giá trị mặc định là 0.


 <i><sub>Path: đường dẫn trên máy chủ mà cookie sẽ khả dụng. </sub></i>


 <i><sub>Domain: miền mà cookie có sẵn cho ví dụ: www.example.com.</sub></i>


 <i><sub>Secure: nếu có, cookie sẽ được gửi khi tồn tại kết nối HTTPS an toàn.</sub></i>



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

<b>Cài đặt Cookies</b>



 <sub>Ví dụ:</sub>


 <b><sub>Giải thích</sub></b>


<b><?php</b>


<b>    </b><i><b>// Setting a cookie</b></i>


<b>    setcookie("username","John Carter",time()</b>


<b>+30*24*60*60);</b>
<b>?></b>


</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<b>Truy cập các giá trị cookie</b>



 <b><sub>Biến $ _COOKIE: truy xuất giá trị cookie, là một mảng kết </sub></b>


hợp có chứa danh sách tất cả các giá trị cookie được trình
duyệt gửi trong u cầu hiện tại.


 <sub>Ví dụ: </sub>


<b><?php</b>


<b>    </b><i><b>// Accessing an individual cookie value</b></i>


</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

<b>Truy cập các giá trị cookie</b>




 <sub>Kiểm tra cookie đã được đặt hay chưa trước khi truy cập giá </sub>
trị của nó, sử dụng hàm Isset ()


 <b><sub>Ví dụ: </sub></b>


<b><?php</b>


<b>    </b><i><b>// kiểểm tra cookies được cài đặt chưa</b></i>


<b>    if(isset($_COOKIE["username"])){</b>


<b>        echo "Hi " . $_COOKIE["username"];</b>


<b>    } else{</b>


<b>        echo "Welcome Guest!";</b>


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<b>Xóa cookies</b>



 <b><sub>Xóa cookie bằng cách gọi hàm </sub><sub>setcookie () với ngày hết </sub></b>


<i><b>hạn là ngày trong quá khứ.</b></i>


 <sub>Ví dụ: </sub>


<b><?php</b>


<b>    </b><i><b>// Deleting a cookie</b></i>



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

<b>Nhược điểm của cookies</b>



 <sub>Lưu trữ dữ liệu bằng cookie có vấn đề về bảo mật. Vì cookie </sub>


được lưu trữ trên máy tính của người dùng nên kẻ tấn cơng
có thể dễ dàng chèn dữ liệu gây hại vào ứng dụng và có thể
phá vỡ ứng dụng của người dùng.


 <sub>Khi trình duyệt yêu cầu một URL đến máy chủ, tất cả dữ liệu </sub>


</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<b>Sessions </b>



 <b><sub>Session</sub><sub> lưu trữ dữ liệu trên server, dựa trên phiên làm </sub></b>


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

<b>Khởi tạo một Sessions</b>



 <sub>Trước khi lưu trữ thông tin vào biến session, cần phải khởi </sub>


tạo session bằng cách gọi hàm <b>session_start (), </b> <b>một </b>


<b>session mới được tạo với một ID duy nhất cho người dùng.</b>
 <b><sub>Cú pháp </sub></b>


<b><?php</b>


<i><b>// Starting session</b></i>


<b>session_start();</b>
<b>?></b>



<b><?php</b>


<i><b>// Starting session</b></i>


</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

<b>Sắp xếp và truy cập biến session</b>



 <b><sub>Có thể lưu trữ tất cả dữ liệu dưới dạng các cặp key-value </sub></b>
trong mảng $ _SESSION[ ].


 <sub>Dữ liệu có thể được truy cập trong suốt thời gian tồn tại của </sub>
một session


 <sub>Ví dụ: </sub>


<b><?php</b>


<b>    </b><i><b>// Starting session</b></i>


<b>    session_start();</b>


<b>    </b><i><b>// Storing session data</b></i>


<b>    $_SESSION["firstname"] = "Peter";</b>


</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

<b>Sắp xếp và truy cập biến session</b>



 <b><sub>Để truy cập dữ liệu của session từ bất kỳ trang nào khác </sub></b>
trên cùng một miền web domain - chỉ cần tạo lại session
<b>bằng cách gọi session_start () và sau đó chuyển khóa </b>
<b>tương ứng vào mảng liên kết $ _SESSION.</b>



 <sub>Ví dụ: </sub>


<b><?php</b>


<b>    </b><i><b>// Starting session</b></i>


<b>    session_start();</b>


<b>    </b>


<b>    </b><i><b>// Accessing session data</b></i>


<b>    echo 'Hi, '. $_SESSION["firstname"] .' ' . $_SESSION["lastn</b>
<b>ame"];</b>


</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

<b>Hủy một session</b>



 <sub>Xóa dữ liệu của một session, chỉ cần bỏ khóa tương ứng của </sub>


mảng liên kết $ _SESSION
 <sub>Ví dụ: </sub>


<b><?php</b>


<b>        </b><i><b>// Starting session</b></i>


<b>    session_start();</b>


<b>        </b><i><b>// Removing session data</b></i>



<b>    if(isset($_SESSION["lastname"])){</b>


<b>        unset($_SESSION["lastname"]);</b>


</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

<b>Hủy một session</b>



 <b><sub>Hủy hoàn toàn một session, gọi hàm </sub><sub>session_destroy (). </sub></b>
Hàm này khơng có đối số.


 <sub>Ví dụ: </sub>


<b><?php</b>


<b>    </b><i><b>// Starting session</b></i>


<b>    session_start();</b>


<b>    </b>


<b>    </b><i><b>// Destroying session</b></i>


</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

<b>Form Validation</b>



 <b><sub>Kiểm tra tính hợp lệ trên form (Form Validation): kiểm tra </sub></b>
dữ liệu đầu vào do người dùng gửi. Có hai loại:


 <b><sub>Kiểm tra phía máy khách: Việc xác thực được thực hiện trên trình </sub></b>


duyệt web của máy khách.



 <b><sub>Kiểm tra phía máy chủ: dữ liệu đã được gửi đến máy chủ và thực </sub></b>


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

<b>Biểu thức chính quy- Regular Expressions</b>



 <b><sub>Biểu thức chính quy </sub></b><sub>là một chuỗi văn bản được định dạng </sub>


<i><b>đặc biệt được sử dụng để tìm các mẫu trong văn bản. </b></i>


</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

<b>Biểu thức chính quy- Regular Expressions</b>



 <b><sub>Cú pháp: bao gồm các ký tự đặc biệt, và các ký tự có ý </sub></b>
nghĩa đặc biệt trong một biểu thức chính quy, gồm:


 <b><sub>Các lớp ký tự: </sub><sub>Dấu ngoặc vuông bao quanh một mẫu ký tự </sub></b>


được gọi là một lớp ký tự.


</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

<b>Biểu thức chính quy- Regular Expressions</b>



 <b><sub>Lớp ký tự phủ định</sub><sub>: được xác định bằng ký hiệu dấu mũ (^) </sub></b>


<b>ngay sau dấu ngoặc mở, ví dụ: [^ abc].</b>


 <b><sub>Ngồi ra: có thể xác định một dải ký tự bằng cách sử dụng </sub></b>


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b>Biểu thức chính quy- Regular Expressions</b>



<b>[abc]</b> Khớp với bất kỳ một trong các ký tự a, b hoặc c.



<b>[^abc]</b> Khớp với bất kỳ các ký tự ngoài các ký tự a, b, or c.


<b>[a-z]</b> Khớp với bất kỳ các ký tự chữ thường từ a đến z.


<b>[A-Z]</b> Khớp với bất kỳ các ký tự chữ hoa từ A đến Z


<b>[a-Z]</b> Khớp với bất kỳ các ký tự chữ thường và chữ hoa từ A đến Z


<b>[0-9]</b> Khớp với các số từ 0 đến 9.


</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

<b>Biểu thức chính quy- Regular Expressions</b>



 <sub>Ví dụ:</sub>


<b><?php</b>


<b>    $pattern = "/ca[kf]e/";</b>


<b>    $text = "He was eating cake in the cafe.";</b>


<b>    if(preg_match($pattern, $text)){</b>


<b>        echo "Match found!";</b>


<b>    } else{</b>


<b>        echo "Match not found.";</b>


</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

<b>Biểu thức chính quy- Regular Expressions</b>




 <b><sub>Các lớp ký tự được xác định trước</sub></b>


<b>.</b> Khớp với bất kỳ ký tự đơn nào ngoại trừ dòng mới \n.


<b>\d</b> khớp với bất kỳ ký tự chữ số nào tương tự [0-9]


<b>\D</b> Khớp với bất kỳ ký tự nào không phải chữ số [^0-9]


<b>\s</b> Khớp với bất kỳ ký tự khoảng trắng (dấu cách, tab, dòng mới <sub>hoặc ký tự xuống dòng) tương tự [ \t\n\r]</sub>
<b>\S</b> Matches any non-whitespace character, tương tự [^ \t\n\r]


</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

<b>Form Validation</b>



 <b>Hàm preg_match(): được dùng để kiểm tra, so khớp </b>


và lấy kết quả của việc so sánh chuỗi dựa vào biểu
<b>thức chính quy Regular Expression,</b>


 <b>Cú pháp: </b>


</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

<b>Form Validation</b>



 <b><sub>Các tham số:</sub></b>


 <i><b><sub>$pattern: biểu thức chính quy (Regular Expression)</sub></b></i>
 <i><b><sub>$input: chuỗi cần kiểm tra</sub></b></i>


 <i><b><sub>$matches: kết quả trả về, đây là tham số truyền vào ở dạng tham </sub></b></i>
chiếu..



 <b><sub>Kết quả:</sub></b>


 <b><sub>Hàm preg_match() sẽ trả về TRUE nếu so khớp và FALSE nếu </sub></b>


</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

<b>Form Validation</b>



 <b><sub>Ví dụ: kiểm tra một chuỗi là số</sub></b>


 <b><sub>Kết quả in ra màn hình là giá trị của biến $maches, như vậy </sub></b>
<b>chuỗi 123 đã so khớp với pattern /^[0-9]+$/</b>


<b><?php</b>


<b>    if (preg_match(‘/^[0-9]+$/', '123', $maches)){</b>


<b>        var_dump($maches);</b>


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

<b>Form Validation</b>



 <b><sub>Ví dụ: kiểm tra một chuỗi là ký tự thường</sub></b>


 <b><sub>Như vậy chuỗi thehalfheart đã được so khớp với pattern </sub></b>


<b>/^[a-z]+$/</b>


<b><?php</b>


<b>   if (preg_match('/^[a-z]+</b>


<b>$/', 'thehalfheart', $maches)){</b>



<b>    var_dump($maches);</b>


<b>    }   </b>


</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

<b>Form Validation</b>



 <b><sub>Biến toàn cục: </sub><sub>$_SERVER[‘PHP_SELF’]: Trả về tên của tập </sub></b>
tin đang thực thi.


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

<b>Form Validation</b>



 <b><sub>Lưu ý: về bảo mật trên Form PHP</sub></b>


 <b><sub>Biến $ _SERVER ["PHP_SELF"] có thể bị tin tặc sử dụng!</sub></b>


 <sub>Tránh khai thác $ _SERVER ["PHP_SELF"] bằng cách sử dụng hàm </sub>


<b>htmlspecialchars ().</b>


 <b><sub>Hàm htmlspecialchars () </sub></b> <b><sub>chuyển đổi các ký tự đặc biệt thành </sub></b>


<b>các thực thể HTML. </b>


 <sub>Ví dụ: </sub>


</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

<b>Form Validation</b>



 <b><sub>Hàm filter_var (): lọc một biến với bộ lọc được chỉ định. Hàm </sub></b>



này được sử dụng để xác thực và làm sạch dữ liệu.


 <sub>Cú pháp:</sub>


 <b><sub>Var: biến để lọc</sub></b>


 <b><sub>Filtername: ID hoặc tên của bộ lọc sử dụng. Mặc định là </sub></b>


FILTER_DEFAULT.


</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

<b>Form Validation</b>



 <sub>Kiểm tra Email hợp lệ</sub>
<b><?php</b>


<b>   $email = input($_POST["email"]);</b>


<b>   if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {</b>


<b>      $emailErr = </b>
<b>"Invalid format and please re-enter valid email"; </b>


</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

<b>Form Validation</b>



 <b><sub>Hàm Isset (): </sub></b><sub>kiểm tra một biến đã được khởi tạo trong bộ </sub>


nhớ của máy tính, nếu nó được khởi tạo thì hàm sẽ trả về giá
trị là TRUE và ngược lại là FALSE.


 <sub>Ví dụ: </sub>



<b><?php</b>


<b>   if (isset($domain)){</b>


<b>    echo 'Biếến domain đã tồồn tại';</b>


<b>    }</b>


<b>    else{</b>


<b>        echo 'Biếến domain chưa tồồn tại';</b>


</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

<b>Form Validation</b>



</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

<b>Form Validation</b>



 <sub>Ví dụ: Lấy thông tin đăng ký từ form</sub>
<b><?php</b>


<b>    if (isset($_POST['submit']))</b>


<b>    {</b>


<b>        $fullname = isset($_POST['fullname']) ? $_POST['fullname']:</b>


<b>'';</b>


<b>        $address = isset($_POST['address']) ? $_POST['address'] : '</b>
<b>';</b>



<b>        $email = isset($_POST['email']) ? $_POST['email'] : '';</b>


<b>        $phone = isset($_POST['phone']) ? $_POST['phone'] : '';</b>


</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>

<b>Form Validation</b>



 <b><sub>Hàm empty(): kiểm tra một biến có giá trị rỗng hoặc chưa </sub></b>


<b>được khởi tạo.</b>


 <sub>Ví dụ: 6 trường hợp của biến $var, hàm empty() sẽ trả về </sub>
TRUE


 <sub>$var = 0 hoặc $var = '0'</sub>


 <sub>$var = NULL</sub>


 <sub>$var = '';</sub>


 <sub>$var = FALSE</sub>


</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

<b>Form Validation</b>



 <b><sub>Sử dụng hàm empty(): </sub></b><sub>để kiểm tra sự tồn tại và tính hợp lệ </sub>


của dữ liệu, hàm empty bao gồm chức năng của hàm isset()
 <sub>Ví dụ: </sub>


<b><?php</b>



<b>    $username = isset($_POST['username']) ? $_POST['username'] </b>


<b>: '';</b>


<b>    $password = isset($_POST['password']) ? $_POST['password'] </b>


<b>: '';</b>


<b>    if ($username == '') {</b>


<b>        echo 'Bạn chưa nhập tến đăng nhập';</b>


<b>    }</b>


<b>    if ($password == '') {</b>


<b>        echo 'Bạn chưa nhập mật khẩẩu';</b>


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

<b>Xử lý lỗi trong PHP</b>



 <b><sub>Xử lý lỗi là quá trình bắt lỗi do chương trình tạo ra và sau đó </sub></b>


thực hiện hành động xử lý thích hợp.
 <b><sub>Cấp độ lỗi: </sub></b>


<b>Error Level</b> <b>Value Description</b>


E_ERROR 1 Lỗi run-time, nghiêm trọng, không thể khôi phục. Việc thực thi tập <sub>lệnh bị dừng ngay lập tức.</sub>
E_WARNING 2 Cảnh báo run-time. Không nghiêm trọng, Việc thực thi tập lệnh <sub>không bị dừng.</sub>



E_NOTICE 8 Thông báo run-time, cho biết tập lệnh có thể bị lỗi.


</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>

<b>Xử lý lỗi trong PHP</b>



<b>Error Level</b> <b>Value</b> <b>Description</b>


E_USER_WARNIN


G 512 Một thông báo cảnh báo không nghiêm trọng do người dùng tạo ra.
E_USER_NOTICE 1024 Một thông báo thông báo do người dùng tạo. giống như <sub>một E_NOTICE.</sub>


E_STRICT 2048


Khơng hồn tồn là một lỗi, nhưng được kích hoạt bất cứ
khi nào PHP gặp mã có thể dẫn đến sự cố hoặc chuyển
tiếp khơng tương thích


</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

<b>Xử lý lỗi trong PHP</b>



 <b><sub>Xử lý lỗi là quá trình bắt lỗi do chương trình tạo ra và sau đó </sub></b>


thực hiện hành động xử lý thích hợp.


 <b><sub>Hàm die(): được sử dụng để hiển thị thông báo lỗi và kết </sub></b>


</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

<b>Xử lý lỗi trong PHP</b>



 <b><sub>Ví dụ: </sub></b>



 <sub>Nếu tập tin khơng tồn tại, thì chương trình hiển thị thơng báo </sub>
sau:


<i><b>Warning: fopen(sample.txt) [function.fopen]: failed to open </b></i>


<i><b>stream: No such file or directory in C:\wamp\www\project\test.php </b></i>
<i><b>on line 2</b></i>


<b><?php</b>


<b>    </b><i><b>// Try to open a non-existent file</b></i>


</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

<b>Xử lý lỗi trong PHP</b>



 <b><sub>Ví dụ (tt): Chương trình được viết lại như sau:</sub></b>
<b><?php</b>


<b>    if(file_exists("sample.txt")){</b>


<b>        $file = fopen("sample.txt", "r");</b>


<b>    } else{</b>


<b>        die("Error: The file you are trying to access doesn't exist</b>
<b>.");</b>


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×