09/10/2018, 18:03

Nhờ các cao thủ php giúp đỡ

Mình có đoạn script sau:

PHP Code:
<?php
if( isset($_GET***91;'cat'***93;) || isset($_POST***91;'cat'***93;) )
    {
        echo 
"Cat = ";
        isset(
$_GET***91;'cat'***93;)? $cat $_GET***91;'cat'***93;: $cat $_POST***91;'cat'***93;;
        echo 
$cat;
    }
    else
    {
        echo 
"Index";
    }
?>


PHP Code:
<?php
if( !isset($_GET***91;'cat'***93;) || !isset($_POST***91;'cat'***93;) )
    {
        echo 
"Index";
    }
    else
    {
        echo 
"Cat = ";
        isset(
$_GET***91;'cat'***93;)? $cat $_GET***91;'cat'***93;: $cat $_POST***91;'cat'***93;;
        echo 
$cat;
    }
?>
sao đoạn trên chạy đúng mà đoạn dưới không chạy đúng.

Ai biết xin giãi thích dùm mình.

Rất cám ơn.
normal viết 20:15 ngày 09/10/2018
tui thất có vấn đề ở dòng đầu tiên, dòng if (đoạn 2 đó)

if( !isset($_GET['cat']) || !isset($_POST['cat']) )

nên là:

if (!(isset($_GET['cat']) || isset($_POST['cat'])))
thì hợp lý hơn !!
kid1110 viết 20:14 ngày 09/10/2018
Mình cũng đã thử cách đó rồi nhưng cũng vậy thôi.

thank.
gate2vn viết 20:06 ngày 09/10/2018
Quote Được gửi bởi kid1110
Mình có đoạn script sau:

PHP Code:
<?php
if( isset($_GET***91;'cat'***93;) || isset($_POST***91;'cat'***93;) )
    {
        echo 
"Cat = ";
        isset(
$_GET***91;'cat'***93;)? $cat $_GET***91;'cat'***93;: $cat $_POST***91;'cat'***93;;
        echo 
$cat;
    }
    else
    {
        echo 
"Index";
    }
?>


PHP Code:
<?php
if( !isset($_GET***91;'cat'***93;) || !isset($_POST***91;'cat'***93;) )
    {
        echo 
"Index";
    }
    else
    {
        echo 
"Cat = ";
        isset(
$_GET***91;'cat'***93;)? $cat $_GET***91;'cat'***93;: $cat $_POST***91;'cat'***93;;
        echo 
$cat;
    }
?>
sao đoạn trên chạy đúng mà đoạn dưới không chạy đúng.

Ai biết xin giãi thích dùm mình.

Rất cám ơn.
tôi ko dùng ký tự tắt nên ko sure || có phải là "or" hay ko? nếu đúng thì bạn có thể dịch ra ngôn ngữ bình thường thì thấy ngay.

- đoạn trên: nếu có giá trị ở $_GET['cat'] hoặc $_POST['cat'] thì thực thi câu lệnh. nếu ko có giá trị ở cả 1 biến đó thì đưa ra "index"

- đoạn dưới: nếu ko có giá trị ở $_GET['cat'] hoặc ko có giá trị ở $_POST['cat'] thì thực thi câu lệnh. như vậy thực ra điều kiện cũng chẳng khác gì đoạn trên cả

ko biết tôi nói vậy có đúng ko nhỉ
kid1110 viết 20:11 ngày 09/10/2018
Mọi người giúp với, đoạn code ở dưới chạy không đúng dù url sao nó cũng thực thi câu lệnh trước else.

Ví dụ mình gõ vào trình duyệt: index.php?cat=1
hay index.php thì nó cũng trã về trình duyệt: Index.

Mong mọi người giãi thích hộ.
nguyenthu viết 20:12 ngày 09/10/2018
Nếu tôi không lầm, bạn có định lý về tân toán học (cũng có trong xác-xuất học mà sinh viên IT phải học) :
!(A || B) = !A || !B - !A & !B
với nghĩa :
|| hợp
và & là giao.
Trong không gian mà A và B là hai tập hợp, một phần tử nếu không là A hoặc không là B thì lúc nào cũng có trừ khi A chính là B. Vì vậy !A || !B lớn lắm, là tất cả không gian.
Điều kiện này sai rồi, tôi không biết bạn muốn gì hay thử sửa lại như sau :
if( !isset($_GET['cat']) & !isset($_POST['cat']) )
Chúc bạn thành công.
vanlang viết 20:12 ngày 09/10/2018
yet bạn nguyenthu đúng rùi ... khi lấy phủ định của || thì sẽ thành && ...
kid1110 viết 20:18 ngày 09/10/2018
Mình hiểu ra rồi, thành thật cám ơn nguyenthu.
crab viết 20:16 ngày 09/10/2018
Những cái cơ bản thì không học trước. Đơn giản vậy mà post cả đống bài.
mrnetsun viết 20:16 ngày 09/10/2018
ai tra loi duoc tra loi mot lan thoi. viec con con the nay ma bao toi bao lui
hoc lap trinh ma lam lan giua && va || thi lam an noi gi`. cac anh ma viet web chac de~ down nhu choi.
Bài liên quan
0