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

    strano problema!

    Stò creando un sito in php che in locale non mi da problemi mentre se lo carico sul server (non quello di altervista ma un altro) mi crea dei problemi che provo a spiegare brevemente:

    In fase di login, se i dati inseriti sono corretti metto una var in sessione
    $_SESSION['login']=1;

    In alcune pagine (protette) controllo se la variabile suddetta è impostata ad 1;
    se è 1 visualizzo la pagine
    altrimenti segnalo l'errore

    nella pagina di controllo faccio la cosa seguente:
    $login = $_SESSION['login'];
    if($login != 1)
    ...
    errore
    ...
    else
    carica pagina

    Come sopra ho detto in locale non ho problemi mentre sul server che utilizzo se faccio $login = $_SESSION['login']; in login non mi restituisce nulla quindii va sempre in errore, se invece uso $login senza importarla dalla sessione funziona!

    Come se lui vede $login come se fosse $_SESSION['login']

    Come posso fare?
    Credo che la versione corretta sia quella che implemento in locale, come posso fare?



    Grazie

  2. #2
    sul server remoto hai una versione di php precedente alla 4.1... ?

    dovresti usare il vecchio array: $HTTP_SESSION_VARS[] se non erro.. .

    ti va $login perchè è attivo il register globals che per questioni di sicurezza è stato disattivato nelle recenti vrsioni di php... fai una ricerchina sul forum e troverai mollto materiale.

    Com risolvere?


    $login = isses($_SESSION['login']) ? $_SESSION['login'] : $login;


  3. #3

    grazie

    Proverò a risolvere in questo modo, ma cmq la versione di php è la stessa!

    Sul server è settato così:
    session
    Session Support enabled
    Registered save handlers files user

    Directive Local Value Master Value
    session.auto_start Off Off
    session.bug_compat_42 On On
    session.bug_compat_warn On On
    session.cache_expire 180 180
    session.cache_limiter nocache nocache
    session.cookie_domain no value no value
    session.cookie_lifetime 0 0
    session.cookie_path / /
    session.cookie_secure Off Off
    session.entropy_file no value no value
    session.entropy_length 0 0
    session.gc_dividend 100 100
    session.gc_maxlifetime 1440 1440
    session.gc_probability 1 1
    session.name PHPSESSID PHPSESSID
    session.referer_check no value no value
    session.save_handler files files
    session.save_path c:\\tmp c:\\tmp
    session.serialize_handler php php
    session.use_cookies On On
    session.use_only_cookies Off Off
    session.use_trans_sid Off Off

    Grazie cmq

  4. #4
    senza sapere che versione è....

    cmq tieni presente che ci sono 2 problemi:

    fino alla 4.1 esistevano solo gli aray "lunghi"... tipo $HTTP_SESSION_VARS

    dalla 4.1 alla 4.2 hanno convissuto, per compatibilità, i vecchi array lunghi e quelli nuovi...

    dalla 4.2 in poi esistono solo gli array nuovi, come $_SESSION



    in tutto questo c'è anche la direttiva register globals che una volta era attiva e dava direttamente variabili tipo $var.. mentre ora è disattivata di default e le variabili le dei andare a prendere negli opportuni array.. esmepio: $_SESSION['var']


    spero sia chiaro... fa' un po' di prove facendo

    var_dump($_SESSION);

    e

    var_dump($HTTP_SESSION_VAR);



  5. #5

    Grazie

    Sul server c'è la versione PHP Version 4.3.1
    e anche in locale!!!

    Grazie mille ancora

  6. #6

    :(

    Facendo come dici tu ho problemi in locale cavolo!
    Perchè se trova una var non definita da problemi!!!

    Notice: Undefined variable: login in c:\programmi\easyphp\www\liga7\controllo_diritti.p hp on line 10

    mi consigli una soluzione che va bene sia per il server che per il sito in locale?

    Grazie

  7. #7
    hai le stesse versioni sia in locale che in pvt?

    non ho ancora capitto bene qual è il tuo problema...

    com funziona in remoto?

    su che riga da errore in locale?


  8. #8

    cerco di spiegare

    Se faccio:
    $login = isses($_SESSION['login']) ? $_SESSION['login'] : $login;

    sul server funziona benissimo!

    in locale no perche dice che la variabile $login non esiste!!!

    infatti l'istruzione sarebbe:
    $login = $login!!!

    cioè in locale se utilizzo una variabile non definita mi da errore!!!

    Sia in locale che in remoto ho la versione PHP Version 4.3.10

    Stò uscendo pazzo!!!

    Help

    Sei in chat da qualche parte?

  9. #9
    Come se i NOTICE fossero disabilitati....

    isset($_SESSION['login']) ? $login = $_SESSION['login'] : $login = '' ;

    isset rende false o true non il contenuto di $_SESSION['login']


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10

    ?

    mi spieghi meglio scusa?

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.