Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1

    [SESSIONI]utenti fantasmi, sessioni staccate

    Salve a tutti,
    nel sito di cui curo la programmazione ho riscontrato diversi errori, suppongo, a livello delle sessioni.
    Il sito in questione è www.struzzoreload.com.
    Mediamente su 10 volte che un utente effettua l'accesso, 3 risulta "invisibile" agli altri utenti; inoltre non può eseguire nessuna query che influenzi o ricavi dati dalle sessioni.
    Eseguendo un print della sessione su di un utente "invisibile", i dati vengono stampati correttamente.
    Ho sbattuto la testa in lungo e in largo per diversi mesi, ma devo ancora riuscire a capire quale sia il problema.
    Subito ho pensato che fosse un problema di server. Allora ho modificato il php.ini, inserendo la direttiva sess.trans-id (o simili, non mi ricordo) e un miglioramento c'è stato, anche se minimo.
    Meno utenti si ritrovavano "invisibili", ma meno non vuol dire nessuno.
    La maggior parte dello staff d'amministrazione ora si ritrova invisibile random, e all'aumentare del numero di utenti connessi, aumentano anche gli invisibili (es: 10 utenti connessi-0 invisibili, 12-1
    ,13-2 e così via anche se non proprio così sequenzialmente)
    Da cosa può essere causato un problema del genere?
    Ho imparato ad usare le sessioni nel classico dei modi:
    session_start() all'inizio di ogni pagina e session_unset()-session_destroy() al logout.
    La registrazione delle variaibli di sessione la faccio per assegnamento:
    $_SESSION['ciao'] = $ciao.
    Grazie in anticipo.
    Ciao!

  2. #2
    Modificando qua e la sono riuscito a causare questo errore:
    Warning: Unknown(): The session id contains invalid characters, valid characters are only a-z, A-Z and 0-9 in Unknown on line 0

    Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
    Cosa può provocarlo?
    Non ho nessuna istruzione che assegna caratteri invalidi all'id di sessione, ne tantomeno che cambia la directory di save_path...

  3. #3
    Ciao.
    Innanzitutto se avessi letto attentamente il manuale:

    session_unset
    (PHP 4, PHP 5)

    session_unset -- Libera tutte le variabili di sessione
    Descrizione
    void session_unset ( void )


    La funzione session_unset() libera tutte le variabili di sessione correntemente registrate.

    Nota: Se è usata $_SESSION (o $HTTP_SESSION_VARS per PHP 4.0.6 o inferiore), usate unset() per deregistrare una variabile di sessione. i.e. unset ($_SESSION['varname']);


    Quindi non devi usare session_unset!!!

    Poi, posta un attimo la configurazione del php.ini, dove c'è la parte riguardo le sessioni.

  4. #4
    Purtroppo non posso vedere il file php.ini ma posso modificarne il contenuto e, ovviamente, visualizzarlo:
    www.struzzoreload.com/info.php è il phpinfo() del server
    Grazie intanto per la dritta!
    Effettivamente non avevo notato che session_unset non deve essere usato nel mio caso.

  5. #5
    Originariamente inviato da KaNnA
    Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
    Cosa può provocarlo?
    In questo caso devi controllare che esista quella directory. Sinceramente non so come lavora linux, quindi non so da dove parte per trovare quella directory.


    Ma ora questo tipo di errore te lo dà sempre o solo ogni tanto?

  6. #6
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    - Usa $_SESSION = array(); per distruggere la sessione;

    - anche se per farti dare aiuto, mostrare la tua config di PHP dall'Internet NON è mai una buona idea;

    - \tmp è per caso pieno? Prova a modificare session.save_path in modo che punti ad una cartella DENTRO la www del tuo sito, non si sa mai che qualcuno (trattasi di server condiviso giusto?) modifichi tali file!!!

    [.:: JaguarXF ::.]
    __________________

  7. #7

    Attraverso ini_set ho puntato ad una cartella (che precedentemente era /tmp-quindi condivisa da tutti?) interna al mio spazio, ma nemmeno li risulta dare gli effetti sperati.
    Inoltre l'id di sessione continua a risultarmi invalido.
    Addirittura stampandolo a schermo risulta inesistente (non stampa nulla)
    Posso utilizzare session_regenerate_id() in questo caso, giusto?
    Ma se non riesco a salvare il file di sessione è comunque inutile.
    Qualche idea?

  8. #8
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Originariamente inviato da KaNnA

    Inoltre l'id di sessione continua a risultarmi invalido.
    L'id di sessione lo crea php quando usi un session_start. Come può essere invalido?
    Prova a riguardare la procedura di salvataggio sessioni...

    [.:: JaguarXF ::.]
    __________________

  9. #9
    Si, potresti usare session_regenerate_id(), ma non penso che la situazione cambi molto.

    Hai scritto che l'id di sessione continua a risultare invalido.
    Ma questo errore te lo da sempre? O come hai detto all'inizio, dopo che un certo numero di utenti si logga?

  10. #10
    Concordo con mark2x.
    Non è che per caso non hai i giusti privilegi sulla cartella dove ti salvi i files di sessione?

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.