09/10/2018, 22:35

Hỏi một chút về PHP!

Tôi mới học php chẳng biết giải quyết lỗi này bằng cách nào, file thì vẫn chạy nhưng bị Notice như sau:

Notice: Undefined index: act in D:workingPHPROOThoctaplistcat.php on line 24

Notice: Undefined index: page in D:workingPHPROOThoctaplistcat.php on line 29

Nhưng khi chạy thì file vẫn chạy bình thường vì kết quả in ra đều cần sử dụng các biến act và page ở trên:

Mình đã làm đủ mọi cách mà vẫn bị dính thông báo trên, Xin được trích nguyên từ dòng 24 đến dòng 29 nhờ các bạn chỉ giáo:

$act = $_GET["act"];
if (!isset($act)){$act="list";}
switch ($act)
{
case "list":
$page=$_GET["page"];
Violon viết 00:40 ngày 10/10/2018
Hà Anh thử test lại phiên bản PHP đang dùng xem, nếu version 4.1.0 trở lên thì mới dùng $_GET được, còn nếu phiên bản cũ hơn thì thay $_GET bằng $HTTP_GET_VARS

thử xem được không nha.
viết 00:39 ngày 10/10/2018
Cái này do config PHP chưa có cho phép gọi "tắt" hàm đó mà.
mita thì khuyên các bạn nên dùng $HTTP_GET_VARS, tuy nó dài nhưng khi thực thi thì nhanh lắm, đó mới là vấn đề
COTTONBELLY viết 00:48 ngày 10/10/2018
Quote Được gửi bởi mitavn
Cái này do config PHP chưa có cho phép gọi "tắt" hàm đó mà.
mita thì khuyên các bạn nên dùng $HTTP_GET_VARS, tuy nó dài nhưng khi thực thi thì nhanh lắm, đó mới là vấn đề
Thật không đó Nếu vậy thì sao PHP 5 tự động tắt $HTTP_*_VARS và khuyến cáo nên dùng $_* thui
nguyenhaanh_us viết 00:50 ngày 10/10/2018
Cám ơn các bạn thực ra không xảy ra lỗi mà nó chỉ là Notice thôi đoạn code vẫn chạy bình thường, khi mình sử dụng $PHP_SELF cũng xảy ra hiện tượng tương tự nên mình đoán là tại config php thôi, bạn nào có cao kiến gì vui lòng chỉ giáo với ....
gate2vn viết 00:44 ngày 10/10/2018
open cái php.ini, check phần "Error handling and logging", cho nó off đi
dungpt2003 viết 00:51 ngày 10/10/2018
Có cách khác nhanh hơn nhiều

đặt dòng này ở đầu cái file đấy nhé'

error_reporting (E_ERROR | E_WARNING | E_PARSE);

Nguyên nhân: Do các biến ($_GET["act"], $_GET["page"]) chưa được khởi tạo nên nó sẽ có cái cảnh báo thế.

Giải quyết triện để nếu được phép cấu hình cho file php.ini (khó đó nha)
đặt dòng có error_reporting = "giá trị hiện tại" thành error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
nguyenhaanh_us viết 00:44 ngày 10/10/2018
Cảm ơn các bạn đã nhiệt tình chỉ giáo nhé, chắc là sẽ giải quyết bằng thay đổi php.ini thôi vì mình làm trên localhost mà
khaplienhoa viết 00:44 ngày 10/10/2018
Hãy thử đổi đoạn mã của bạn như sau
Code:
if (isset($_GET["act"]))
{
   $act = $_GET["act"];

}
else
{
   $act = "list";
}
switch ($act) 
{
case "list":
if (isset($_GET["page"]))
{
    $page=$_GET["page"];
}
else
{
// default
}
Bài liên quan
0