Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178

    Switch che non funziona come dovrebbe..

    Ne approfitto per rendervi partecipi di un curioso e parecchio fastidioso intoppo in cui mi sono imbattuto.

    Riguarda la dichiarazione "switch", ecco il problema:

    Ho cercato di ridurre il numero di pagine del mio sito utilizzando nella homepage la suddetta dichiarazione e passando la variabile $ctrl nei link per visualizzare la pagina desiderata.

    Come per magia questo semplice procedimento sembra non funzionare più; eccone un esempio:

    codice:
    switch($ctrl){
         case 1:
        echo "FUNZIONA";
        break;
    	}
    Ovviamente il link è www.miosito.com/index.php?ctrl=1
    Ma come è possibile??

    Ebbene, la condizione è sana, anche perchè in una pagina pulita funziona eccome, allora l'ho spostata all'inizio della index e difatti ha preso a funzionare.

    Alla fine, spostando quel piccolo blocco per gradi sempre più in fondo alla pagina mi sono accorto quale fosse la riga di codice che la bloccasse.

    Eccola:

    codice:
    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");
    include_once("include/license.lib.php");
    include_once("include/utils.lib.php");
    
    // Inclusioni phpbb
    define('IN_PHPBB', true);
    $phpbb_root_path = 'forum/';
    include($phpbb_root_path . 'extension.inc');
    include($phpbb_root_path . 'common.'.$phpEx); <-------
    common.php..

    Premetto che queste due ultime inclusioni sono necessarie per far partire la sessione phpbb contemporaneamente a quella del sito.

    Aprendo "common.php" mi sono accorto che include tantissime altre librerie e quindi il problema avrebbe potuto trovarsi un pochino ovunque nel forum phpbb.

    C'è qualcuno che magari così a colpo d'occhio può dirmi dove sta il problema?

    Come è possibile che la condizione switch soffrà di queste debolezze...
    :

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Prova con

    CASE '1': ...; break;

  3. #3
    Per prima cosa sostituirei switch($ctrl) con switch($_GET['ctrl'])

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 © 2024 vBulletin Solutions, Inc. All rights reserved.