Visualizzazione risultati 1 fino 5 di 5

Discussione: Lo switch non viene eseguito!

  1. #1
    Guest

    Angry Lo switch non viene eseguito!

    Ciao a tutti,
    premetto che ho cercato sul forum ho trovato questa discussione ma non fa al caso mio...

    cio ho passato 2 ore e passa ora penso che sia altervista la causa? boh!


    quello che voglio fare è molto semplice...

    ho un index.php dove viene incluso un file che diciamo contiene un elenco di pagine da includere nell'index in base a GET, ora tutta una parte funziona è ok ma implementando un nuovo pezzo all'inizio lo switch non viene eseguito, ho provato in tanti modi...

    1^ Volta (le variabili le ho rinominate...)
    Codice:
    $variabile1 = trim(htmlspecialchars($_GET['variabile1']));
    $variabile2 = trim(htmlspecialchars($_GET['variabile2']));
    $variabile3 = trim(htmlspecialchars($_GET['variabile3']));
    
    if ($variabile3) {  
    switch ($variabile3) {         
    case "1010":
    $file = "percorso/percorso/file1.php"; //questo file viene incluso nell'index
    break;
    default:
    $sezione_file = "percorso/file2.php";			//Se l'id preso non esiste vado in homepage 
    break;
    }
    } else if (empty($variabile1)) {				//Se non prendo nè il primo get ne il 3 vado in home
    $sezione_file = "percorso/file2.php";
    }
    Premetto che quello che ce dopo sono altri switch ma non influenzano in nessun modo questa parte (che è la prima)

    siccome non funzionava ho cambiato così:

    Codice:
    $variabile1 = trim(htmlspecialchars($_GET['variabile1']));
    $variabile2 = trim(htmlspecialchars($_GET['variabile2']));
    $variabile3 = trim(htmlspecialchars($_GET['variabile3']));
    
     
    switch ($variabile3) {           
    case 1010:
    $file = "percorso/percorso/file.php"; //solito file d aincludere nell'index
    break;
    
    
    }  if ($variabile3) {
    //$file = ""          // in caso l'id ci sia ma non corrisponde a niente rimando a una pagina di errore
    echo "VARIABILE 3 NON CORRETTA...";
    }
    
    else if (empty($variabile1)) {				//Se non prendo nè la variabile 1 ne la 3 vado in home
    $file = "percorso/file.php";
    }
    Ne ho provati tanti altri... cmq se lo switch non viene proprio eseguito, la variabile3 viene presa (provato con print_r(); ) ho fatto tutti i test possibili ma niente...

    Questa cosa è abbastanza urgente senza non posso continuare...

    PS ora mi direte ma per uno case solo devi fare lo switch??? era un esempio perchè tra un pò ne dovrò aggiungere altri e altri ancora...

    Spero qualcuno mi aiuti al più presto...

    Altro PS: Premetto da subito che già conoscendo in passato AlterVista, in caso di non risposta dopo un pò di tempo (ricordo che questo forum è molto frequentato :P) rifarò un altro UP senza editare... (altrimenti non se ne accorge nessuno)

    Intanto ringrazio in anticipo per le possibili soluzioni...

    (non sto usando file .htaccess)

    EDIT: Approposito, nel secondo caso ricevo il messaggio che La variabile non è corretta quindi questo indica che anche se tramite get io glie la passo corretta lo switch non la prende lo stesso
    Ultima modifica di ffinalsqualodb : 04-05-2009 alle ore 07.35.00 Motivo: Solo un piccolo edit

  2. #2
    L'avatar di dapeco
    dapeco non è connesso Community Manager
    Data registrazione
    21-10-2003
    Residenza
    Brusasco (To)
    Messaggi
    4,909

    Predefinito

    Non ho capito molto quello che vuoi fare, quindi cerco di interpretare.

    Recuperi delle variabili via GET, da quel che vedo sono 3 le variabili. Hai un numero ben determinato di possibili variabili o possono passare qualunque cosa (tipo url, stringhe, intere pagine?)? Se è la prima (quindi solo variabili) conviene, invece di usare switch vari, semplici condizioni if i.e.:

    Codice:
    $var1 = $_GET['v1'];
    $file = "";
    
    if ($var1 == "mucca") {
      $file = "quello che serve per includere la parte di mucca";
    }
    if ($var1 == "toro") {
      $file = "quello che serve per includere la parte di toro";
    }
    
    // eventualmente controllo se non arrivato qualcosa di inaspettato
    
    if ($file == "") {
      echo "mi prendi in giro? non mi hai dato nessuna variabile!";
    }


    OT: ho riflettuto parecchio se rispondere o meno a questo topic, visto le tue velate allusioni, che credo siano insensate e fuori luogo, oltre che indisponenti nel caso qualcuno (che non è tenuto, ne tanto meno pagato) si sentisse preparato a rispondere.
    Ho visto cose che voi utenti non potreste immaginare... siti da combattimento irregolari al largo dei bastioni di Orione. E ho visto account balenare nel buio vicino alle porte di Tannhauser. E tutti quei momenti andranno perduti nel tempo come lacrime nella pioggia. È tempo di sospendere...

    ASD Brusasco - C'è altro sport oltre al calcio!

    "Io sono vivo, voi siete morti" (Philip Dick, Ubik)

  3. #3
    Guest

    Predefinito

    Intanto grazie per il suggerimento adesso proverò, riguardo a quello che ho detto si ammetto che sono insensate e fuori luogo, ma avendo siti su altervista da più di 3 anni qui sul forum sia come utente che come visitatore ne ho viste parecchio...

    Poi ho detto quello che ho detto perchè sicuramente il problema è di AlterVista (quindi lo paragono ad un problema tecnico) che penso meriti una delucidazione sul fatto...

    Dapeco, non era mia intenzione fare allusioni, mi scuso anche per questo lungo OT
    Ultima modifica di ffinalsqualodb : 04-05-2009 alle ore 14.02.45

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,266

    Predefinito

    presunzione cosmica Il problema e' ovviamente tuo e non di AlterVista.

    Il tuo codice e' assai raffazzonato, il fatto che non si comporti come previsto e' probabilmente dovuto al fatto che funzioni e confronti ritornano valori particolari in casi particolari - magari un false quando meno te lo aspetti.

    Riscrivilo decentemente, usa isset(), creati una funzione per gestire in modo univoco i parametri get e sapere quando non ci sono (restituire false?). Vedrai che funzionera'. Potresti anche rispiegare quale sia il comportamento corretto che ti aspetti? mi sembra ci sia un rigiro eccessivo, magari si riesce a semplificare qualcosa - uno switch piu' un if sulla stessa variabile sono gia' di troppo. (fra parentesi, quell'if attaccato allo switch nel secondo codice, non funziona come "else" - la dipendenza che dici di ottenere non c'e')


    Per gli Up, i prossimi che fai valgono triplo, ok?
    Ultima modifica di dreadnaut : 04-05-2009 alle ore 14.34.37

  5. #5
    Guest

    Predefinito

    dreadnaut XD ho sistemato, un mio amico aveva scambiato una versione dell'index nel modificarla (la variabile aveva un altro nome) mea culpa

    Per gli Up, i prossimi che fai valgono triplo, ok?
    Ancora non ne ho fatti dove valgono il triplo?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •