2016-04-05 12 views
0

Ich habe den folgenden Code, den ich verlangen für jeden $_SESSION

if(isset($_SESSION['profile_status']) OR isset($_SESSION['building_name']) OR isset($_SESSION['building_street']) OR isset($_SESSION['building_postcode']) OR isset($_SESSION['building_locality']) OR isset($_SESSION['building_country'])){ 
    $getProfileStatus = $_SESSION['profile_status']; 
    $buildingNameSelected = $_SESSION['building_name']; 
    $streetAddSelected = $_SESSION['building_street']; 
    $postcodeAddSelected = $_SESSION['building_postcode']; 
    $localityAddSelected = $_SESSION['building_locality']; 
    $countryAddSelected = $_SESSION['building_country']; 
    $vatNumber = $_SESSION['vat_number']; 
    $businessWebsite = $_SESSION['business_website']; 
    $businessEmail = $_SESSION['business_email']; 
    $contactPerson = $_SESSION['contact_person']; 
    $telephone1 = $_SESSION['telephone_1']; 
    $telephone2 = $_SESSION['telephone_2']; 
    $telephone3 = $_SESSION['telephone_3']; 
    $telephone4 = $_SESSION['telephone_4']; 
} 

Gibt es einen Reiniger/besserer Weg tan isset($_SESSION für jedes Variable tun zu definieren, ohne Fehler zu bekommen.

Ich versuchte mit einer foreach-Schleife, aber ich habe Fehler, dass Variablen nicht definiert wurden.

$sessionArrays = array(
    'profile_status' => array(
     'variable' => $getProfileStatus, 
     'session' => 'profile_status', 
     ), 
    'building_name' => array(
     'variable' => $buildingNameSelected, 
     'session' => 'building_name', 
     ), 
    'building_street' => array(
     'variable' => $streetAddSelected, 
     'session' => 'building_street', 
     ), 
    'building_postcode' => array(
     'variable' => $postcodeAddSelected, 
     'session' => 'building_postcode', 
     ), 
    'vat_number' => array(
     'variable' => $vatNumber, 
     'session' => 'vat_number', 
     ), 
    'business_website' => array(
     'variable' => $businessWebsite, 
     'session' => 'business_website', 
     ), 
    'business_email' => array(
     'variable' => $buildingNameSelected, 
     'session' => 'business_email', 
     ), 
    'contact_person' => array(
     'variable' => $contactPerson, 
     'session' => 'contact_person', 
     ), 
    'building_name' => array(
     'variable' => $buildingNameSelected, 
     'session' => 'building_name', 
     ), 
    'telephone_1' => array(
     'variable' => $telephone1, 
     'session' => 'telephone_1', 
     ), 
    'telephone_2' => array(
     'variable' => $telephone2, 
     'session' => 'telephone_2', 
     ), 
    'telephone_3' => array(
     'variable' => $telephone3, 
     'session' => 'telephone_3', 
     ), 
    'telephone_4' => array(
     'variable' => $telephone4, 
     'session' => 'telephone_4', 
     ), 
    ); 

foreach ($sessionArrays as $sessionArray){ 
    if(isset($_SESSION[$sessionArray['session']])){ 
     $sessionArray['variable'] = $_SESSION[$sessionArray['session']]; 
    }else{ 
     $sessionArray['variable'] = null; 
    } 
+0

was ist falsch mit isset()? – syck

+0

Sie müssten nur die isset() für jede einzelne Zuweisung verwenden, zum Beispiel innerhalb einer Foreach. Oder iteriere über die Schlüssel von '$ _SESSION'. – syck

+0

@syck Ich denke, dass es zu lang wird, deshalb. – user6043723

Antwort

0

Sie können es foreach mit überprüfen und mit empty() statt isset() dann sind Sie sicher, dass dieser Wert gesetzt ist und nicht leer.

$keys = [ 
    'profile_status', 
    'building_name', 
    'building_street', 
    'building_postcode', 
    'building_locality', 
    'building_country', 
    'vat_number', 
    'business_website', 
    'business_email', 
    'contact_person', 
    'telephone_1', 
    'telephone_2', 
    'telephone_3', 
    'telephone_4' 
    ]; 

foreach ($keys as $key) { 
    if (empty($_SESSION[$key])) { 
     echo $key . ' is missing in session!'; 
    } 
} 
+0

Ich habe meine Antwort mit der foreach-Schleife aktualisiert, aber ich habe immer noch einen Fehler. – user6043723

Verwandte Themen