10/10/2018, 11:23
Lỗi khó hiểu của hàm isset($_POST[]) - cần giúp đỡ
Lúc đầu em có làm mấy cái hàm kiểm tra isset($_POST[]) thì nó chạy ok, thông báo lỗi nếu thấy lỗi.
Sau một hồi làm công việc khác test lại thì mấy cái hàm đó không còn kiểm tra được nữa nó cứ như nó không hiểu cái hàm isset ấy.
một đoạn code nhỏ trong nó đây:
em không nhập gì nó cũng báo là thành công, mà nó không kiểm tra xem đã có gì trong $_POST["ID"] chưa.
ai biết lỗi gì có thể giúp em với!
Thanks ac!
Sau một hồi làm công việc khác test lại thì mấy cái hàm đó không còn kiểm tra được nữa nó cứ như nó không hiểu cái hàm isset ấy.
một đoạn code nhỏ trong nó đây:
Code:
if(isset($_POST["ID"]) && isset($_POST["Pass"]) && isset($_POST["PassR"])) { $ID = $_POST["ID"]; $pass = $_POST["Pass"]; $passr = $_POST["PassR"]; if($pass == $passr) { $Sql = "Insert into account values(','$ID','$pass')"; $result = mysql_query($Sql,$db); if($result) echo"<script> alert('Đăng ký thành công');</script>"; else echo"<script> alert('Đăng ký thất bại');</script>"; } }
ai biết lỗi gì có thể giúp em với!
Thanks ac!
Bài liên quan
Hàm isset() trả về FALSE ngay khi biến đó là chuỗi rỗng hoặc biến đó có giá trị = 0;
=> thay vì dùng hàm isset() bạn nên dùng:
if (isset($_POST["ID"] != "")
hoặc if (isset($_POST["ID"] != NULL)
hoặc if (!empty(isset($_POST["ID"]))
Dựa theo chỗ này http://php.net/manual/en/function.isset.php thì ham isset sẽ trả về false khi biến là null;
Ví dụ:
trong khi
Cho dù bạn không nhập gì cả thì mấy cái $_POST["ID"] cũng là chuỗi rỗng "" chứ không phải là null cho nên isset sẽ trả về true;
Nếu bạn muốn kiểm tra xem có nhập hay không thì có thể xài hàm empty http://php.net/manual/en/function.empty.php
Hy vọng sẽ giải quyết được vấn đề của bạn.