Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Switch per web linker?

  1. #1

    Switch per web linker?

    Ciao a tutti!
    Sto cercando di imparare un po' di php e mi sono subito scontrato con un problema. Ho la netta sensazione che si tratti di una banalità, ma viste le mie conoscenze (nulle) in programmazione non riesco a venirne a capo.

    Vorrei realizzare (il condizionale è d'obbligo) una pagina in cui sono presenti 3 div contenenti include richiamati dinamicamente da 3 diversi 'case'. Per intenderci un link a questa pagina sarebbe qualcosa come "/main.php?page=01?middle=05?last=03" e il php ricomporrebbe la pagina invocando le rispettive pagine nei vari include, riportanto una generica pagina 404.php nel caso il valore di un 'case' non facesse capo ad alcun file esistente. In questo caso la pagina 01.php nel campo regolato da 'page', la 05.php nel div di 'middle' e così via.
    Sono riuscito a realizzare questa cosa includendo 3 diversi switch esterni ma, volendo evitare di aggiornarli ogni volta, ho fatto ricorso ad un altro tipo di codice.



    <?php
    if (isset($_GET['page']))

    {
    if (is_file("include/".$_GET['page'].".php"))
    {
    require ("include/".$_GET['page'].".php");
    }
    else
    {
    require ('include/404.php');
    }
    }

    else
    {
    require ('include/01undeclared.php');
    }

    ?>

    Per il div relativo a 'page'

    <?php
    if (isset($_GET['middle']))

    {
    if (is_file("include/".$_GET['middle'].".php"))
    {
    require ("include/".$_GET['middle'].".php");
    }
    else
    {
    require ('include/404.php');
    }
    }

    else
    {
    require ('include/02undeclared.php');
    }

    ?>

    Per quello relativo a 'middle'


    <?php
    if (isset($_GET['last']))

    {
    if (is_file("include/".$_GET['last'].".php"))
    {
    require ("include/".$_GET['last'].".php");
    }
    else
    {
    require ('include/404.php');
    }
    }

    else
    {
    require ('include/03undeclared.php');
    }

    ?>

    Per quello relativo a 'last'

    In sostanza, se io richiamo main.php (il contenitore dei vari include) senza specificare nessun 'case' funziona tutto bene, nel senso che vengono invocati tutti gli include relativi al 'case' non specificato. Questo script funziona anche nel caso io richiami un solo tipo di case, tipo ad esempio main.php?middle=02 (in questo caso 02.php viene caricato con successo nel div relativo a 'middle' mentre gli altri 2 div riportano i php previsti per i rispettivi case non dichiarati).

    Quando invece il link richiede due o più case il codice cessa di funzionare correttamente.

    Avevo pensato di usare questo script per poter includere dei php da una cartella precisa invocando solo il nome file senza estensione e senza percorso, evitando al tempo stesso di dover aggiornare uno switch ogni volta che aggiungo una pagina.

    Qualcuno sarebbe così gentile da fornirmi supporto?

    posto l'url cui fa capo la mia pagina di prova e quello dell'archivio rar contenente i file incriminati.

    sorta di switch
    rar contenente i php

    Vi ringrazio in anticipo!!!
    Amedeo

  2. #2

    If e switch!

    Qualche anima pia??? Help!

  3. #3
    up

  4. #4

    up

    up

  5. #5
    up
    up
    up

  6. #6
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    L'errore è nel modo in cui scrivi gli url: il separatore delle variabile è & e non ?:

    Codice PHP:
    http://www.raffaeleberetta.com/php/main.php?page=01&middle=02&last=05 
    Ti sconsiglio comunque di fare una cosa del genere: manca ogni forma di controllo sull'input dell'utente: potrei visualizzare qualunque cosa nei tuoi div.

    Luca

  7. #7
    !!!
    Mi domando dove avessi gli occhi (e il cervello)...
    Grazie per l'illuminazione!

    Ho visto anch'io che si potrebbe visualizzare più o meno qualsiasi cosa nei div.
    Ritieni che questo sia ancora un problema nel caso l'include dinamico php faccia capo solo a file presenti in un certo folder e contenenti un determinato prefisso nel nomefile?

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.