Visualizzazione dei risultati da 1 a 10 su 10

Discussione: problema con switch

  1. #1

    problema con switch

    ciao,

    uso il sistema delle inclusioni delle pagine:

    Codice PHP:
    $p="main";              //pagina di default per i contenuti centrali
    if(isset($_GET['page'])){      //pagina passata via parametro
        
    $p=$_GET['page'];
        if(
    $p!=basename($p) || !preg_match("/^[A-Za-z0-9\-_]+$/",$p) || $p=="main" || !file_exists($p.".php"))
            
    $p 'error';     //pagina di errore
        

    adesso voglio utilizzare uno switch

    Codice PHP:
    switch ($_GET['page']) {
        case 
    'page1':
        echo 
    "<style type=\"text/css\">
            @import \"css/layout2.css\";</style>"
    ;
       break;

    case 
    'main':
    echo 
    "<style type=\"text/css\">
            @import \"css/layout3.css\";</style>"
    ;
       break;

    default:
    echo 
    "<style type=\"text/css\">
            @import \"css/layout.css\";</style>"
    ;


    il case 'main' non funziona. Perchè?

    immagino che abbia a che fare con il sistema di inclusione delle pagine...
    soluzioni?

    grazie

  2. #2
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    proposta... prima della switch prova a fare una $_GET['page'] e vediamo se butta fuori davvero "main" o altro
    Guybrush Threepwood

  3. #3
    quando apro index.php al suo interno per default mi carica già "main"

    Codice PHP:
    $p="main";              //pagina di default per i contenuti centrali 
    quindi normalmente (senza switch) mi funziona.

  4. #4
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    te la butto li... ogni tanto php ha le sue convinzioni...

    prova a mettere anche nella switch i doppi apici

    case "main"

    ogni tanto (per esperienze personali) php vuole un po' di affetto
    Guybrush Threepwood

  5. #5
    non funziona...

    :master:

  6. #6
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    strano... andiamo x tentativi : nel DEFAULT mettici un echo $_GET['page']; e vediamo che succede...
    Guybrush Threepwood

  7. #7
    il problema è questo:

    se io la pagina 'main' la passo a $_GET['page'] in questo modo:

    index.php?page=main

    funziona.

    ma siccome 'main' è la pagina di default che viene caricata all'apertura di index, non mi viene passata in $_GET['page'].

    quindi non so come fare in modo che mi venga passata.

  8. #8
    dovresti switchare su $p, non su $_GET[page]

  9. #9
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    fai $page=$_GET['page']; e vai sul sicuro
    Guybrush Threepwood

  10. #10
    o meglio fai un controllo del genere
    Codice PHP:
    if (isset($_GET['page']))
         
    $p $_GET['page'];
    else 
    $p "main"
    in modo che controlli che la pagina sia passata tramite get....altrimenti la forzi a main.....

    logicamente lo switch lo fai sulla variabile $p

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.