Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473

    [PHP] Perdita dati session

    Ciao a tutti,
    sto facendo il classico login e salvo il nome utente in una session.

    #login.php

    codice:
    <?php
    session_start();
    
    // inclusione del file contenente la classe
    include "inc/funzioni_mysql.php";
    	
    $data = new MysqlClass();                
    $data->connetti();
    				
    $utente=$_POST['utente'];
    $pass=$_POST['pass'];
    				
    $post_sql=$data->query("SELECT utente, tipo, nominativo, cartella FROM UTENTI WHERE utente='".anti_injection($utente)."' and pass='".anti_injection($pass)."'");		
    $tipo="no";			
    // controllo sul numero di records presenti in tabella
    if(mysql_num_rows($post_sql) > 0){
    // estrazione dei record tramite ciclo						
    										
        while($post_obj = $data->estrai($post_sql)){
    			
    	$tipo = $post_obj->tipo;
    	$_SESSION['user']=$post_obj->utente;
    	$_SESSION['tipo']=$post_obj->tipo;
       	$_SESSION['nome']=$post_obj->nominativo;
    	$_SESSION['cartella']=$post_obj->cartella;
    														
    	$user_ctl=$post_obj->utente;
    	$tipo_ctl=$post_obj->tipo;
       	$nome_ctl=$post_obj->nominativo;		     
     $cartella_ctl=$post_obj->cartella;												}
    }
    			  
    	$data->disconnetti();
    	
    ?>

    dentro la pagina login.php ho un include di sidebar.php

    #sidebar.php

    codice:
    <?php
    if (!isset($_SESSION['user']))
    {
    ?>
                                
    <form name="condominio_login" method="post" action="login.php">
    
    
    Inserisci Username e Password 
    per accedere all'area riservata
    StudioDATA.</p>
    
                                
    
    
    USERNAME
    <input type="text" class="input-subs" value="" size="20" name="utente" />
    
    PASSWORD
    <input type="password" class="input-subs" value="" size="20" name="pass" />
    
    
    
    <input type="submit" value="ACCEDI" class="submit-btn2" /> </p>
    </form>
                                
    <?php
    }
    else
    {
       echo "
    
    Benvenuto $nome_ctl
    
    ";	
    }
    ?>
    in questa pagina se ho l'utente loggato mi deve visualizzare benvenuto nome utente, altrimenti se non ho la sessione mi deve visualizzare il form per il login.
    questa sidebar è inclusa in tutte le pagine del sito, e ogni pagina del sito ha come primissima riga session_start();


    PROBLEMA:
    quando effettuo il login e carico la pagina login.php funziona tutto alla perfezione, se il login è corretto mi stampa nella sidebar la scritta benvenuto nome utente.
    quando cambio pagina, nella sidebar mi torna il form del login, non mi tiene in memoria la session.

    Devo fare qualche impostazione nel file php.ini?

    Grazie

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    mi sono accorto ora che compare a fondo pagina 2 errori:

    Warning: Unknown: open(/session/sess_c92d5a0aa0069e2f7aa25d1bbfb1fdcf, O_RDWR) failed: No such file or directory (2) 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 (/session) in Unknown on line 0

    nel php.ini ho impostato session.save_path = /session
    e la cartella session ha i permessi di lettura e scrittura..

    Grazie

    Ciao

  3. #3
    Prova a mettere il percorso completo invece del semplice slash "/"
    Se noti, dall'errore si evince che la directory non viene proprio trovata per cui non è un problema di permessi.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ciao,
    grazie per la risposta,
    ho messo nel php.ini
    session.save_path = dominio/session

    ma continua a verificarsi lo stesso errore,
    se non modifico session.save_path, nel php.ini di default è settata /var/lib/php5

    e anche con questa configurazione di default da errore.


  5. #5
    Originariamente inviato da androita
    nel php.ini ho impostato session.save_path = /session
    La directory session di trova nella root (non la root del sito, ma del filesystem)?


    Originariamente inviato da androita
    nel php.ini di default è settata /var/lib/php5
    La directory php5 esiste?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ciao,
    si la cartella session si trova nella root, infatti se cancello la cartella session, quando stampo il php.ini mi va in errore, percio deduco che il php.ini veda la mia cartella session che ho trovato.

    la cosa strana è che non vedo la directory /var/lib/php5
    non vedo proprio il ramo var.

    ora provo a crearlo...

    ti elenco gli altri paramentri settati per le session su php.ini
    Session Support enabled
    Registered save handlers files user sqlite
    Registered serializer handlers php php_binary wddx


    session.auto_start On
    session.bug_compat_42 On
    session.bug_compat_warn On
    session.cache_expire 180
    session.cache_limiter nocache
    session.cookie_domain no value
    session.cookie_httponly Off
    session.cookie_lifetime 0
    session.cookie_path /
    session.cookie_secure Off
    session.entropy_file no value
    session.entropy_length 0
    session.gc_divisor 100
    session.gc_maxlifetime 1440
    session.gc_probability 1
    session.hash_bits_per_character 4
    session.hash_function 0
    session.name PHPSESSID
    session.referer_check no value
    session.save_handler files
    session.save_path /session
    session.serialize_handler php
    session.use_cookies On
    session.use_only_cookies On
    session.use_trans_sid 0


    secondo te sono settati correttamente?

    Grazie

    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    rettifico,
    ho errore anche quando stampo il php.ini

    percio sbaglio a creare la cartella?

    mi sa che ho fatto confusione con la root principale nell'area ftp..

    nell'area ftp ho
    -private
    -public
    -web
    -session (creata da me)

    dentro public ho la cartella www con dentro le pagine del sito web e il mio php.ini

    la cartella session la devo creare dentro la cartella www?
    quale percorso devo dare alla cartella nel file php.ini?

    grazie

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    ho trovato un forum dove un altro utente aveva il mio stesso problema e ha detto che è un problema sul server di register, avevano cancellato una cartella tmp

    vi posto il link

    ora chiedo assistenza a register, vediamo se mi risolvono il problema.

    Grazie

    Ciao

  9. #9
    Originariamente inviato da androita
    ora chiedo assistenza a register, vediamo se mi risolvono il problema.
    Ti conviene chiedere a loro dato che non necessariamente la struttura che vedi in ftp rispecchia quella reale del filesystem.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ho risolto!!!

    infatti la struttura che vedo in ftp non è la stessa!
    la root principale che vedo nell'area ftp è la cartella htdocs

    percio ho capito che dovevo mettere nel mio file php il seguente percorso
    session.save_path /htdocs/session

    ora funziona tutto correttamente!!

    Comunque se lascio il percorso di default va in errore perche la directory /var/lib/php5
    dovrebbe essere nella stessa directory in cui si trova htdocs, e tramite ftp non mi è permesso accederci, percio per le persone che hanno un server linux su register, consiglio di fare come ho fatto io!


    Grazie per l'aiuto che mi hai dato, mi hai portato alla soluzione del problema!


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.