[PHP] mehrere if & else vereinfachen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Schaluwiner, 1. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 1. Juni 2010
    mehrere if & else vereinfachen

    Hallöchen. Hab mal wieder was, wo ich nicht mit klarkomme ?(

    Kann man diesen Code irgendwie vereinfachen?
    PHP:
    if ( $country_code  ==  "DE" ) {  header ( 'Location: ' ); }
    elseif (
    $country_code  ==  "AT" ) {  header ( 'Location: ' ); }
    elseif (
    $country_code  ==  "CH" ) {  header ( 'Location: ' ); }
    elseif (
    $country_code  ==  "LU" ) {  header ( 'Location: ' ); }
    else { 
    header ( 'Location: off.php' ); }
    hab da so einiges ausprobiert, wie
    PHP:
    if ( $country_code  ==  "DE"  ==  "AT"  ==  "CH" ) {  header ( 'Location: ' ); }
    oder
    PHP:
    if ( $country_code  ==  "DE"  &&  "AT"  &&  "CH" ) {  header ( 'Location: ' ); }
    oder
    PHP:
    if ( $country_code  ==  "DE"  "AT"  "CH" ) {  header ( 'Location: ' ); }
    oder
    PHP:
    if ( $country_code  ==  "DE"  &&  $country_code  ==  "AT" ) {  header ( 'Location: ' ); }
    nur haben die keine Wirkung gezeigt und nur DE akzeptiert.
    Das erstere lange Code mit elseif funktionert.

    Mit diesen Code will ich nur Länderspezifische IP Adressen durchlassen und sonstige (else) woandershin leiten lassen. Klappt ganz gut, nur find ich den Code irgendwie zu lang und so.
     
  2. 1. Juni 2010
    AW: mehrere if & else vereinfachen

    was bringt dir denn header('Location: '); ?

    hier vereinfacht:
    PHP:
    if(! in_array ( $country_code , array( 'DE' 'AT' 'CH' 'LU' ))) {
        
    header ( 'Location: off.php' );
        exit;
     
  3. 1. Juni 2010
    AW: mehrere if & else vereinfachen

    Wollt grad nachtragen, dass das erste jetzt auch nicht mehr will ?(

    Ich probiers mal aus.

    Edit:
    Nun, eigentlich wollt ich damit bezwecken, wenn jemand auf eine page geht (Spiele - Jetzt Spiele kostenlos online spielen auf spielen.de)
    dass erst die IP vom surfer mit der datenbank abgeglichen wird, von wo die IP stammt und dann je nachdem weiterleitet. In diesem falle sollen DE, CH, AT usw normal weitergeleitet werden und die nicht auf diese Länder zutreffen woandershin geleitet werden.
    Aber irgendwie klappt es jetzt garnicht mehr ?(


    Edit2: Mein Fehler. Ich depp habs jetzt mit localhost ausprobiert! xD Sorry!
     
  4. 1. Juni 2010
    AW: mehrere if & else vereinfachen

    PHP:
    if(! in_array ( $country_code , array( 'DE' 'AT' 'CH' 'LU' ))) {
        
    header ( 'Location: off.php' );  // nicht aus DE, AT, CH oder LU
        
    exit;
    }

    header ( 'Location: de_at_ch_lu.php' );  // ändern!
    exit;
     
  5. 1. Juni 2010
    AW: mehrere if & else vereinfachen

    Danke, klappt.
    Jetzt müsst ich das ganze irgendwie in eine Homepage verlinken. Denn die verschicken ihre eigenen headers und ich lande immer in eine Endlosschleife.

    Der Befehl
    PHP:
    header ( 'Location: de_at_ch_lu.php' );
    funktioniert da leider nicht

    Aber das gehört jetzt nicht hier rein.
     
  6. 6. Juni 2010
    AW: mehrere if & else vereinfachen

    Du kannst es auch mit einem switch Statement vereinfachen.
    PHP:
    switch ( $country_code ) {
        case 
    'DE' :
        case 
    'AT' :
        case 
    'CH' :
            
    header ( 'Location: de_at_ch.php' );
            break;
        case 
    'en'
            
    header ( 'Location: en.php' );
            break;
        

        
    default:
            
    header ( 'Location: off.php' );
            break;
    }
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.