Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con in_array()

    Ciao a tutti.

    Sto cercando di implementare un sito dinamico, ma non avendolo mai fatto prima d'ora mi trovo un po' in difficoltà.

    Allora, io ho 4 pagine:
    • index.php
    • chisiamo.html
    • dovesiamo.html
    • contatti.html

    index.php è la struttura, mentre tutte le altre vengono incorporate nella struttura tramite include_once().

    Lo script che uso è il seguente:

    Codice PHP:
    <?php
                    $pages 
    = array("chisiamo","dovesiamo","contatti");
                    
    $pag $_GET['p'];
                if( isset(
    $pag) )
            {
                if( 
    in_array($pag$pages) )
                {
                    include_once 
    "$pag.html";
                            }
                else
                {
                    
    show_news();
                       }
                  }
    ?>
    Funziona, ma il problema è che la funzione show_news() non viene mai interpretata... o meglio, solo nel caso in cui provo a modificare manualmente l'url... scrivendo tipo:

    http: //www. miosito.it/?p=boh

    ..in tutti gli altri casi il contenuto della pagina rimane vuoto, cioè non viene incluso niente e non viene eseguita nessuna funzione.

    Ho controllato la documentazione e ho letto che "in_array — Checks if a value exists in an array". Ma se l'array è vuoto, perché non passa oltre ed interpreta quindi la funzione show_news()?

  2. #2
    Ho capito dov'era il problema... ho sbagliato a posizionare l'else! Scusate per il disturbo

  3. #3
    il problema è un rigo prima
    Codice PHP:
     $pag $_GET['p']; 
                if( isset(
    $pag) ) 
    //etc etc 
    Tu valorizzi/crei la variabile $pag (non importa con cosa... e che eventualmente $_GET['p'] non esite...)

    Da quel momento in poi $pag esiste... ergo:
    isset($pag) è una condizione sempre vera!

    Fai così
    Codice PHP:
    $pages = array("chisiamo","dovesiamo","contatti");               
    $pag = isset($_GET['p']) ? trim($_GET['p']) : '';
    if( !empty(
    $pag) AND in_array($pag$pages))
        {
        include_once 
    "$pag.html"
        }
    else
        {
        
    show_news(); 
        } 
    ho editato il post... avevo omesso una cosa...

  4. #4
    grazie preferisco usare la tua versione che è senz'altro più corretta rispetto a questa:

    Codice PHP:
    $pages = array("chisiamo","dovesiamo","contatti");
    $pag $_GET['p'];
    if(isset(
    $pag))
    {
       if(
    in_array($pag$pages))
       {
          include_once 
    "$pag.html";
       }
    }
    else
    {
       
    show_news();

    ciao!

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.