Ben birden çok öğe ayarlayın ve PHP boş olup olmadığını kontrol etmek gerekir

4 Cevap

Aşağıda çalışma almak için gereken PHP bir pasajı, emin 3 ürün zaten ayarlanmış ve değil ==='' emin olmak gerekir

Ben set değil eğer kontrol yapmak parçası var ama değerler de boş olup olmadığını görmek için çalıştığınızda (ben bile şu anda net bir düşünce olabilir, ben tüm bu yapmak gerek olmayabilir) Ama emin olmak gerekir onlar değer boş olmadığından emin olmak için gereken bir değere ayarlanır eğer yönlendirme, Login_name, ve şifre tüm zaten bir değere ayarlanmış değildir.

I değerleri boşsa, ben böyle if / else blok 1 böyle 5-6 kontroller olmalıdır eğer da emin değil, benim sözdizimi hataları almak görmek için kontrol eklediğinizde birisi yardımcı olabilir, lütfen yardım

I need to check the following:
- $_GET['redirect'] is not set
- $_REQUEST['login_name'] is not set
- $_REQUEST['login_name'] is not != to ''
- $_REQUEST['password'] is not set
- $_REQUEST['password'] is not != to ''

if (!isset($_GET['redirect']) && (!isset($_REQUEST['login_name'])) && (!isset($_REQUEST['password']))){
    //do stuff
}



UPDATE

Maalesef çok açık değildir, ben bu konuda biraz karışık oldu. Hobodaves cevap dayanarak, bunu değiştirmek ve ben onu nasıl ihtiyaç çalışma almak başardı. Aşağıda bu gibi inşaat büyük, ihtiyacınız ne kodu ... Yani, geliştirilmiş olabilir eğer o ben sadece bu test, ihtiyaç işlevselliği.

if (!isset($_GET['redirect']) 
    && empty($_GET['redirect'])
    && isset($_REQUEST['login_name'])
    && !empty($_REQUEST['login_name'])
    && isset($_REQUEST['password'])
    && !empty($_REQUEST['password'])
) {
    echo 'load user';
}

Bu yüklendi ise o zaman oturum açma işlemini çalışacak

login.php?login_name=test&password=testing

Bu yüklenirse, o açma işlemini çalıştırmak GEÇMEZ

login.php?login_name=test&password=  

4 Cevap

if (!isset($_GET['redirect']) 
    && !isset($_REQUEST['login_name'])
    && empty($_REQUEST['login_name'])
    && !isset($_REQUEST['password'])
    && empty($_REQUEST['password'])
) {
    // do stuff
}

Bu exactly sen ne tarif, (değil! = Boş === boş). Ben yapmanız triyng konum ne açıklamak için olsa soruyu düzenlemek gerektiğini düşünüyorum, bu yüzden daha iyi alternatifler önerebilirsiniz.

Edit:

: Sizin güncellendi soru olarak basitleştirilmiş olabilir

if (empty($_GET['redirect'])
    && !empty($_REQUEST['login_name'])
    && !empty($_REQUEST['password'])
} {
    // load user
}

Bir daha sürdürülebilir bir çözüm dizideki her anahtar saklamak ve daha sonra üzerinde foreach ve isset veya boş olup olmadığını kontrol olacaktır. Eğer mevcut çözüm çok DRY değiliz.

Uygulama Someting gibi görünecektir:

<?php
$keys = array('login_name', 'password');

foreach($keys as $key)
{
   if(!isset($_REQUEST[$key]) || empty($_REQUEST['key'])
      // Show error message, kill script etc.
}


// Dot stuff

?>

Bir global değişken ayarlı değilse, o boş olarak aynıdır. Böylece:

!is_set(($_REQUEST['username'])) empty($_REQUEST['username']) ile aynıdır

Yani güncelleme dayanarak, size kolaylaştırabilirsiniz:

if (empty($_GET['redirect'])
    && !empty($_REQUEST['login_name'])
    && !empty($_REQUEST['password'])
) {
    echo 'load user';
}

please read!

Üzgünüm, ben verdim önceki cevabı ne istediğinizi vermeyecektir. Burada neden:

Eğer !_REQUEST['password'] kullanmak eğer ayarlı değilse şifre boş ise veya, bu doğru dönecektir. However Eğer if($_REQUEST['password']) o boş olsa bile, genel değişkeni ayarlanmış olduğunu her zaman koşullu geçecek kullanırsanız.

Bu nedenle tavsiye:

$no_redirect = (!$_GET['redirect']);
$login_name = (!$_REQUEST['login_name']) ? false : true;
$password = (!$_REQUEST['login_name']) ? false : true;

if($no_redirect && $login_name && $password) {
    echo 'load user';
}

Daha önce kötü bilgi için üzgünüm.

Sen bir dizi oluşturabilir

$array = array(
               $_GET['redirect'], 
               $_GET['redirect'],
               $_REQUEST['login_name'],
               $_REQUEST['login_name'],
               $_REQUEST['password'],
               $_REQUEST['password']
);

foreach($array as $stuf)
{
   if(!empty($stuff) && $tuff !=0) 
      //do something
}