Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Controllo variabile sessione e require file con lo stesso valore

    Ciao a tutti, nn capisco perchè in alcuni spazi mi succede una cosa strana, stavo provando il mio cms, e nel file main.php c'è:
    Codice PHP:
    if(!isset($_SESSION['lang']))
        
    $_SESSION['lang'] = DEFAULT_LANG//(DEFAULT_LANG = 'italian')

    require_once (LANG_PATH."/".$_SESSION['lang'].".lang.php"); 
    Se entro per la prima volta nel sito quindi senza variabili di sessione impostate, tutto ok, altrimenti se refresho la pagina mi rivela un errore strano:
    codice:
    Fatal error: main(): Failed opening required 'languages/Ptalian.lang.php' (include_path='.;c:\php\includes') ...
    Se notate dopo required..c'è "Ptalian.lang.php" e non capisco dove prende quella P maiuscola...
    Avete qualche idea??
    Ciao
    Alberto
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  2. #2
    up
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  3. #3
    up
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  4. #4
    Metto qualche info in più:
    nel file main.php c'è esattamente questo:
    Codice PHP:
    session_start();
    require_once(
    "conf/config.php");
    if(!isset(
    $_SESSION['lang']))
        
    $_SESSION['lang'] = DEFAULT_LANG;

    require_once(
    LANG_PATH."/$_SESSION[lang].lang.php"); 
    Dentro quel config.php incluso in main.php c'è
    Codice PHP:
    define("DEFAULT_LANG","italian");
    define("LANG_PATH","languages"); 
    Il var_dump di $_SESSION['lang'] mi restituisce:
    string(7) "Ptalian" .
    Ma da dove esce quella P???
    Poi, disperato, ho provato a mettere direttamente:
    Codice PHP:
    require_once(LANG_PATH."/".DEFAULT_LANG.".lang.php"); 
    ....ed è ok...però a me serve $_SESSION['lang'] dentro il require_once non la costante.
    Non capisco dove sia il problema.
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  5. #5
    Prima cosa che mi viene in mente
    hai settato

    $_SESSION['lang']


    cioè hai fatto una cosa del genere

    Codice PHP:
    require_once("conf/config.php"); 
    if(!isset(
    $_GET['lang'])) 
        
    $_SESSION['lang'] = DEFAULT_LANG;
    else{
     
    $_SESSION['lang'] = $_GET['lang'];





    N.B

    Controlla il valore di $_GET['lang']
    una cosa del genere

    Codice PHP:
    $array = array('italiano','inglese','francese');
    if(!
    in_array($_GET['lang'])){
    $_SESSION['lang'] = DEFAULT_LANG;

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  6. #6
    require_once("conf/config.php");
    if(!isset($_GET['lang']))
    $_SESSION['lang'] = DEFAULT_LANG;
    else{
    $_SESSION['lang'] = $_GET['lang'];
    }
    Ciao,
    guarda ho fatto senza else, perchè c'è una pagina apposita che valorizza $_SESSION['lang'].
    Cioè, io metto il link nella index, ad esempio: <a href..lang.php?ln=english..>
    a questo punto, la pagina lang.php setta $_SESSION['lang'] ad english, ma se arrivo direttamente alla home c'è il codice di main.php che fa il controllo:
    Codice PHP:
    if(!isset($_SESSION['lang']))
        
    $_SESSION['lang'] = DEFAULT_LANG;

    require_once(
    LANG_PATH."/$_SESSION[lang].lang.php"); 
    In questo modo non ho nelle pagine valori GET da controllare, ma solo $_SESSION['lang'] e quindi se quest'ultimo è settato è perchè l'utente è passato da lang.php.
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  7. #7
    Ragazzi questo è il colmo, non la capisco proprio.
    Provo così e funziona:
    Codice PHP:
    if(!isset($_SESSION['lang']))
        
    $_SESSION['lang'] = DEFAULT_LANG;
    else
        
    $_SESSION['lang'] = $_SESSION['lang']; 
    Ma perchè non va bene così non lo capisco proprio:
    Codice PHP:
    if(!isset($_SESSION['lang']))
        
    $_SESSION['lang'] = DEFAULT_LANG;
    //NIENT'ALTRO, ma è cmq logico che $_SESSION['lang'] è uguale a se stesso 
    Che dite?
    [EDIT]
    Ah no troppo bello per essere vero, funziona su php5 ma sul 4 mi esce la linguaccia P.
    http://amen.altervista.org/project/main.php <---se alla prima va refreshate
    http://amen.altervista.org/php5/project/main.php

    .....mi stanno cadendo le palle...
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  8. #8
    uppetto
    sconsolato....
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

  9. #9
    session_start()

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    già c'è prima di qualsiasi output, altre idee?
    Sistemi di allarme, telecamere, autoradio, video proiettori e altri prodotti tecnologici: fedom.it

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.