• User Attivo

    Variabile indefinita

    Ciao a tutti, spero che qualcuno mi faccia capire come va fatto questo che sto per descrivervi.
    Ho un menu laterale e tramite uno switch vorrei includere delle pagine.
    Per metà mi va bene, però quando entro la prima volta mi da un errore:

    
    
    **Notice**: Undefined variable: sezioni in **c:\programmi\easyphp1-8\www\template\gestione\first.php** on line **92**
    
    ```Questo è il codice che uso
    first.php
    [php]
    <table border="1" cellpadding="0" cellspacing="0" background="immagini/corpo.jpg" height="207">
     <tr>
      <td height="205" valign="top">
     <table border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td width="35" valign="top">&nbsp;</td>
       <td width="139" valign="top">&nbsp;</td>
       <td width="361" valign="top">&nbsp;</td>
       <td width="32" valign="top">&nbsp;</td>
      </tr>
      <tr>
       <td height="165" valign="top">&nbsp;</td>
       <td valign="top">
        <table border="0" cellpadding="0" cellspacing="0">
         <tr>
          <td width="20" valign="top">
                            <img src="immagini/7.jpg" border="0" width="20" height="24"></td>
          <td width="106" valign="top">
                            <img src="immagini/8.jpg" border="0" width="106" height="24"></td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/12.jpg" border="0" width="20" height="21"></td>
          <td valign="bottom" background="immagini/13.jpg">
           <font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">
           <a href="?sezione=menu">Componi il menu</a></font>
          </td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/12.jpg" border="0" width="20" height="21"></td>
          <td valign="bottom" background="immagini/13.jpg">
           <font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">
           <a href="?sezione=articoli">inserisci articoli</a></font>
          </td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/12.jpg" border="0" width="20" height="21"></td>
          <td valign="bottom" background="immagini/13.jpg">
           <font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Offerta del mese</font>
          </td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/12.jpg" border="0" width="20" height="21"></td>
          <td valign="bottom" background="immagini/13.jpg">
           <font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Inserisci banner</font>
          </td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/12.jpg" border="0" width="20" height="21"></td>
          <td valign="bottom" background="immagini/13.jpg">
           <font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Cerca articolo</font>
          </td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/12.jpg" border="0" width="20" height="21"></td>
          <td valign="bottom" background="immagini/13.jpg">
           <font size="1" color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif">Modifica il menu</font>
          </td>
         </tr>
         <tr>
          <td valign="top">
                            <img src="immagini/17.jpg" border="0" width="20" height="15"></td>
          <td valign="top">
                            <img src="immagini/18.jpg" border="0" width="106" height="15"></td>
         </tr>
        </table>
       </td>
       <td valign="top">
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
         <tr>
          <td>
           <?php
            if(isset($_GET['sezione']))
             {
              $sezioni=$_GET['sezione'];
             }
            switch($sezioni)
             {
              case'menu':include('menu.php');
              break;
              case'articoli':include('articoli.php');
              break;
              default:include('home.php');
             }
           ?>
          </td>
         </tr>
        </table>
       </td>
       <td valign="top">&nbsp;</td>
      </tr>
      <tr>
       <td height="19" valign="top">&nbsp;</td>
       <td valign="top">&nbsp;</td>
       <td valign="top">&nbsp;</td>
       <td valign="top">&nbsp;</td>
      </tr>
     </table>  </td>
     </tr>
    </table>
    [/php]Grazie tante, ma perché quella notifica?
     
    Ciao ciao

  • User Attivo

    Prova cosi:

       <?php
        if(isset($_GET['sezione']))
         {
          $sezioni=$_GET['sezione'];
         
        switch($sezioni)
         {
          case'menu':include('menu.php');
          break;
          case'articoli':include('articoli.php');
          break;
          default:include('home.php');
         }
    

    }
    ?>


  • User Attivo

    [...]

    Ciao, l'errore è scomparso, ma non visualizza il default dello switch.
    Come mai?

    Ciao


  • User Attivo

    Inserisci questo codice all'inizio del tuo script:

    [php]$_GET['sezione'] = isset($_GET['sezione']) ? $_GET['sezione'] : '';[/php]


  • User Attivo

    Ricorda, anche il default vuole il break...
    default:
    include('home.php');
    break;


  • User Attivo

    [...]

    Non è che lo "voglia". Si può mettere come anche no, dipende da quello che si vuole ottenere. Nell'esempio specifico, essendo l'ultimo elemento dello switch, si può tranquillamente omettere.


  • User Attivo

    Ciao e grazie, visto che va bene mi visualizza il default e non da errori.
    Adesso gentilmente potresti spiegarmi cosa ha scritto?
    Con l'ultimo pezzo di codice che mi hai dato mi sono perso.
    [php]
    $_GET['sezione'] = isset($_GET['sezione']) ? $_GET['sezione'] : '';
    if(isset($_GET['sezione']))
    {
    $sezioni=$_GET['sezione'];
    switch($sezioni)
    {
    case'menu':include('menu.php');
    break;
    case'articoli':include('articoli.php');
    break;
    default:include('home.php');
    }
    }
    [/php]Grazie


  • User Attivo

    $_GET['sezione'] = isset($_GET['sezione']) ? $_GET['sezione'] : '';

    Si tratta dell'operatore ternario...

    vuol dire:

    $_GET['sezione'] = esiste $_GET['sezione'] ? se si, il suo valore sarà $_GET['sezione'] :altrimenti, il valore sarà '', vuoto;

    In poche parole, in una riga ti risparmi questo codice:

    if(isset($_GET['sezione'])){

    }
    else
    {
    $_GET['sezione'] = '';
    }


  • User Attivo

    [...]

    Grazie per la spiegazione è tutto ok adesso.