Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

116

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang cố gắng kiểm tra xem một $ _POST có tồn tại hay không và nếu có, hãy in nó bên trong một chuỗi khác, nếu không, không in.

một cái gì đó như thế này:

$fromPerson = '+from%3A'.$_POST['fromPerson'];

function fromPerson() {
    if !($_POST['fromPerson']) {
        print ''
    } else {
        print $fromPerson
    };
}

$newString = fromPerson();

Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời!

Hỏi ngày 16 tháng 8 năm 2010 lúc 20:15Aug 16, 2010 at 20:15

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}

Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:29Aug 16, 2010 at 20:29

Ehmadehmadehmad

2.4934 Huy hiệu vàng20 Huy hiệu bạc19 Huy hiệu đồng4 gold badges20 silver badges19 bronze badges

1

Giản dị. Bạn có hai lựa chọn:

1. Kiểm tra xem có bất kỳ dữ liệu bài đăng nào không

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}

(OR)

2. Chỉ kiểm tra xem một khóa cụ thể có khả dụng trong dữ liệu bài đăng không

if (isset($_POST['fromPerson']) )
{
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}

Molimo

Huy hiệu Bạc 911 Huy hiệu Đồng1 silver badge5 bronze badges

Đã trả lời ngày 6 tháng 10 năm 2014 lúc 18:33Oct 6, 2014 at 18:33

Dheeraj Bhaskardheeraj BhaskarDheeraj Bhaskar

18.1k9 Huy hiệu vàng63 Huy hiệu bạc66 Huy hiệu Đồng9 gold badges63 silver badges66 bronze badges

1

Ngạc nhiên là nó đã không được đề cập

if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['fromPerson'])){

Đã trả lời ngày 18 tháng 2 năm 2015 lúc 8:45Feb 18, 2015 at 8:45

John Magnoliajohn MagnoliaJohn Magnolia

16.2K33 Huy hiệu vàng154 Huy hiệu bạc261 Huy hiệu Đồng33 gold badges154 silver badges261 bronze badges

5

Mọi người đang nói để sử dụng isset () - có thể sẽ làm việc cho bạn.

Tuy nhiên, điều quan trọng là bạn phải hiểu sự khác biệt giữa

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
4 và
if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
5

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
6 sẽ trả về
if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
7 trong ví dụ đầu tiên, nhưng sẽ trả lại
if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
8 trên cái thứ hai mặc dù nếu bạn cố gắng in một trong hai, cả hai sẽ trả về một giá trị trống.

Nếu

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
9 của bạn đến từ một trường/biểu mẫu được đầu vào người dùng và bị bỏ trống, tôi tin rằng (tôi không chắc chắn 100% về điều này) rằng giá trị sẽ là "" nhưng không phải là null.

Ngay cả khi giả định đó không chính xác (ai đó xin vui lòng sửa cho tôi nếu tôi sai!) Điều trên vẫn tốt để biết sử dụng trong tương lai.

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

takrl

6.3483 Huy hiệu vàng59 Huy hiệu bạc67 Huy hiệu Đồng3 gold badges59 silver badges67 bronze badges

Đã trả lời ngày 16 tháng 8 năm 2010 lúc 21:15Aug 16, 2010 at 21:15

RafaelrafaelRafael

3832 Huy hiệu bạc6 Huy hiệu Đồng2 silver badges6 bronze badges

2

isset($_POST['fromPerson']) 

Robert Harvey

175K46 Huy hiệu vàng330 Huy hiệu bạc491 Huy hiệu Đồng46 gold badges330 silver badges491 bronze badges

Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:16Aug 16, 2010 at 20:16

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

h3xStreamh3xStreamh3xStream

6.0732 Huy hiệu vàng45 Huy hiệu bạc55 Huy hiệu Đồng2 gold badges45 silver badges55 bronze badges

0

Cách kiểm tra thích hợp nếu khóa mảng có tồn tại là chức năng

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
0

Sự khác biệt là khi bạn có

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
1, điều đó có nghĩa là chính tồn tại và được gửi nhưng giá trị là không

Tùy chọn khác là

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
2 sẽ kiểm tra xem phím mảng có tồn tại không và nếu nó được đặt

Tùy chọn cuối cùng là sử dụng

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
3 sẽ kiểm tra xem khóa Array có tồn tại không nếu được đặt và nếu giá trị không được coi là trống.

Examples:

$arr = [
  'a' => null,
  'b' => '',
  'c' => 1
];

array_key_exists('a', $arr); // true
isset($arr['a']); // false
empty($arr['a']); // true


array_key_exists('b', $arr); // true
isset($arr['b']); // true
empty($arr['b']); // true


array_key_exists('c', $arr); // true
isset($arr['c']); // true
empty($arr['c']); // false

Liên quan đến câu hỏi của bạn

Cách thích hợp để kiểm tra xem giá trị có được gửi không phải là sử dụng Array_Key_Exists () với phương thức kiểm tra yêu cầu

if ($_SERVER['REQUEST_METHOD'] == 'POST' && array_key_exists('fromPerson', $_POST)    
{
   // logic
}

Nhưng có một số trường hợp phụ thuộc vào logic của bạn trong đó

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
2 và
//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
3 cũng có thể tốt.

Đã trả lời ngày 13 tháng 4 năm 2016 lúc 13:03Apr 13, 2016 at 13:03

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

RobertrobertRobert

Huy hiệu vàng 19.3k554 Huy hiệu bạc82 Huy hiệu đồng5 gold badges54 silver badges82 bronze badges

1

  • Trong trường hợp đó bằng phương pháp
    //Note: This resolves as true even if all $_POST values are empty strings
    if (!empty($_POST))
    {
        // handle post data
        $fromPerson = '+from%3A'.$_POST['fromPerson'];
        echo $fromPerson;
    }
    
    6 không phù hợp.

Theo tài liệu PHP: http://php.net/manual/en/function.array-key-exists.php (xem ví dụ #2 mảng .
(see Example #2 array_key_exists() vs isset())
The method

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
7 is intended for checking key presence in array.

Vì vậy, mã trong câu hỏi có thể được thay đổi như sau:

function fromPerson() {
   if (array_key_exists('fromPerson', $_POST) == FALSE) {
        return '';
   } else {
        return '+from%3A'.$_POST['fromPerson'];
   };
}

$newString = fromPerson();
  • Kiểm tra sự hiện diện của mảng $ _POST là không cần thiết vì đó là biến toàn cầu của môi trường PHP kể từ phiên bản 4.1.0 (ngày nay chúng ta không đáp ứng các phiên bản cũ của PHP).

Đã trả lời ngày 19 tháng 7 năm 2012 lúc 10:12Jul 19, 2012 at 10:12

BronekbronekBronek

10,4K2 Huy hiệu vàng43 Huy hiệu bạc46 Huy hiệu đồng2 gold badges43 silver badges46 bronze badges

1

Tất cả các phương pháp thực sự không được khuyến khích, đó là một cảnh báo trong Netbeans 7.4 và chắc chắn là một thực tế tốt để không truy cập trực tiếpfilter instead

$fromPerson = filter_input(INPUT_POST, 'fromPerson', FILTER_DEFAULT);
if($fromPerson === NULL) { /*$fromPerson is not present*/ }
else{ /*present*/ }
var_dump($fromPerson);exit(0);

Đã trả lời ngày 5 tháng 12 năm 2013 lúc 8:43Dec 5, 2013 at 8:43

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

Linaticaticolinuxaticolinuxatico

1.85831 Huy hiệu bạc43 Huy hiệu đồng31 silver badges43 bronze badges

4

Thử

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
0

người sử dụng

6.27618 Huy hiệu vàng56 Huy hiệu bạc83 Huy hiệu Đồng18 gold badges56 silver badges83 bronze badges

Đã trả lời ngày 2 tháng 9 năm 2013 lúc 17:53Sep 2, 2013 at 17:53

Augustus Francisaugustus FrancisAugustus Francis

2.6924 Huy hiệu vàng20 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges20 silver badges32 bronze badges

3

Thử

//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
6
//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
    // handle post data
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
9?

Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:17Aug 16, 2010 at 20:17

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

Stragerstragerstrager

87.5K25 Huy hiệu vàng134 Huy hiệu bạc175 Huy hiệu đồng25 gold badges134 silver badges175 bronze badges

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
1

Đã trả lời ngày 16 tháng 8 năm 2010 lúc 20:25Aug 16, 2010 at 20:25

JEZMCKJEZMCKjezmck

1.0942 Huy hiệu vàng20 Huy hiệu bạc37 Huy hiệu đồng2 gold badges20 silver badges37 bronze badges

2

Tôi muốn thêm câu trả lời của mình mặc dù chủ đề này đã tuổi và nó được xếp hạng cao trong Google cho tôi.

Phương pháp tốt nhất của tôi là thử:

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
2

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
9 là một mảng, nếu tập lệnh tải và không có dữ liệu nào trong biến
if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
9, nó sẽ có độ dài mảng là 0. Điều này có thể được sử dụng trong câu lệnh IF.

Bạn cũng có thể tự hỏi liệu điều này có gây ra lỗi "chỉ mục không xác định" khi thấy như thể chúng tôi đang kiểm tra xem

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
9 có được đặt không ... thực tế
if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
9 luôn tồn tại, lỗi "Chỉ mục không xác định" sẽ chỉ xuất hiện nếu bạn cố gắng tìm kiếm $ _Post giá trị mảng không tồn tại.

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
9 luôn tồn tại trong chính nó là trống hoặc có các giá trị mảng.
if (isset($_POST['fromPerson']) )
{
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
5 có thể không tồn tại, do đó ném lỗi "chỉ mục không xác định".

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

toshiro92

1.2275 huy hiệu vàng28 Huy hiệu bạc42 Huy hiệu đồng5 gold badges28 silver badges42 bronze badges

Đã trả lời ngày 16 tháng 2 năm 2020 lúc 19:04Feb 16, 2020 at 19:04

Hướng dẫn php check if post variable exists - php kiểm tra xem có tồn tại biến bài đăng không

if (isset($_POST['fromPerson']) )
{
    $fromPerson = '+from%3A'.$_POST['fromPerson'];
    echo $fromPerson;
}
6 là đúng.

Bạn có thể sử dụng một chức năng và trả về, tốt hơn sau đó chỉ đạo Echo.

Đã trả lời ngày 14 tháng 7 năm 2014 lúc 13:07Jul 14, 2014 at 13:07

1

Tôi thích kiểm tra xem nó có phải là người phát hành và nếu nó trống trong một toán tử ternary.

if( isset($_POST['fromPerson']) )
{
     $fromPerson = '+from%3A'.$_POST['fromPerson'];
     echo $fromPerson;
}
3

Đã trả lời ngày 3 tháng 7 năm 2016 lúc 18:15Jul 3, 2016 at 18:15

1

Làm thế nào để bạn kiểm tra xem có một bài viết trong PHP?

Kiểm tra xem $ _Post có tồn tại với hàm isset (), hàm isset () là hàm tích hợp PHP có thể kiểm tra xem một biến được đặt không chứ không phải null. Ngoài ra, nó hoạt động trên các mảng và giá trị khóa mảng. PHP $ _POST chứa các giá trị khóa mảng, vì vậy, isset () có thể hoạt động trên nó. Để kiểm tra xem $ _Post có tồn tại không, hãy truyền nó dưới dạng giá trị cho hàm isset ().isset() The isset() function is a PHP built-in function that can check if a variable is set, and not NULL. Also, it works on arrays and array-key values. PHP $_POST contains array-key values, so, isset() can work on it. To check if $_POST exists, pass it as a value to the isset() function.

Làm thế nào có thể kiểm tra giá trị bài không trống trong PHP?

Hàm php trống () hàm trống () kiểm tra xem một biến có trống hay không.Hàm này trả về sai nếu biến tồn tại và không trống, nếu không nó sẽ trả về đúng.Các giá trị sau đánh giá là trống: 0.empty() Function The empty() function checks whether a variable is empty or not. This function returns false if the variable exists and is not empty, otherwise it returns true. The following values evaluates to empty: 0.

ISSET là gì ($ _ bài trong PHP là gì?

Hàm php isset () hàm isset () kiểm tra xem một biến được đặt, điều đó có nghĩa là nó phải được khai báo và không phải là null.Hàm này trả về đúng nếu biến tồn tại và không phải là null, nếu không nó sẽ trả về sai.checks whether a variable is set, which means that it has to be declared and is not NULL. This function returns true if the variable exists and is not NULL, otherwise it returns false.

Làm cách nào để sử dụng isset?

Hàm isset () là một hàm sẵn có trong PHP, kiểm tra xem một biến được đặt và không phải là null.Hàm này cũng kiểm tra xem một biến được khai báo, mảng hoặc khóa mảng có giá trị null, nếu có, isset () trả về false, nó trả về đúng trong tất cả các trường hợp có thể khác.checks whether a variable is set and is not NULL. This function also checks if a declared variable, array or array key has null value, if it does, isset() returns false, it returns true in all other possible cases.