Quote Originariamente inviata da Nexus0100 Visualizza il messaggio
Buongiorno...
Sto sviluppando un sito Web... Tuttavia le variabili di sessione impazziscono...
Mi spiego...
Nel momento in cui un utente effettua un login, salvo i dati del login in variabili di sessione, purtroppo quando devo fare la verifica delle variabili mi risultano nulle. Questo però non accade ovunque ma solo nelle sotto cartelle, anche se in modo bizzarro... Mostro un esempio reale...
Accedo come admin:
Inserisco i dati, il risultato delle variabili di sessione è questo:
Array ( [cookie] => 1 [id] => 1 [username] => username [logged] => Y )
controllo la session nella sottodirectory da cui farò partire un file .php:
Array ( [cookie] => 1 [id] => 1 [username] => username [logged] => Y )
Il risultato è uguale
Successivamente faccio partire un file .php in una sottodirectory:
mi da errore perchè dice che risultano mancanti i dati nella sessione, a questo punto controllo cosa c'è nella $_Session dalla sottodirectory:

Ovvero nulla
E nella directory principale risultavano mentre nella sottodirectory scomparivano e riapparivano dopo un po...
Adesso controllando ho notato che il problema si è risolto magicamente da solo...
Però per curiosità qualcuno mi sa dire qualcosa al riguardo per evitare in futuro?
Io avevo letto che poteva essere un problema di gestione della macchina dove andava impostato il file php.ini...
Chiedo scusa se mi auto-quoto, ma controllando meglio il problema non si è risolto...
Aggiungo dettagli...
Effettuo il login e questo è il risultato:
Array ( [cookie] => 1 [id] => 1 [username] => unica64 [logged] => Y ) e sono su sito.com/test.php
successivamente attivo uno script da questa posizione:
sito.com/contenuti/admin/carica_modifica_prodotto.php
che sarebbe questo:
Codice PHP:
<?php include "../../connessione/connessione.php"?>
<?php 
include '../../Gestione/controllo_connessione.php'?>
<?php
    $conn 
= new mysqli($server$username$password$database);    // Check connection    etc...
Ma lo script che da problemi è questo:
Codice PHP:
<?php include '../../Gestione/controllo_connessione.php'?>
che fa questo:
Codice PHP:
<?php include "./connessione/connessione.php"?>
<?php
    session_start
();

    
$conn = new mysqli($server$username$password$database);    // Check connection
    
if ($conn->connect_error) {
        die(
"Connection failed: " $conn->connect_error);
    }
    
$sql "SELECT* FROM admin WHERE id = 1";
    
$result $conn->query($sql);
    if(
$result->num_rows 0){
        
$row $result->fetch_assoc();
        if(
$row["logged"]=="Y"){
            if (
$_SESSION["logged"] != "Y"){
                 echo 
$_SESSION["logged"];
                echo 
"Error 1";
                
?><!--
                <script language="javascript">
                    window.open('sito.com/Gestione/non_connesso.html','_top')                </script>                
            <?php
            
}
        }
        else        {
            echo 
"Error 2";
            
?>
            <script language="javascript">
                window.open('sito.com/Gestione/non_connesso.html','_top')
            </script>
            <?php
        
}
    }
?>
Se avete domande fate...
In ogni caso si ferma e stampa "Error 1", l'echo della session serve per vedere cosa risulta esserci dentro, ma ovviamente è vuota... Perciò entrerebbe nel reindirizzamento e a quel punto chiede il login, se io torno sulla home però il risultato è sempre il solito, ovvero:
Array ( [cookie] => 1 [id] => 1 [username] => username [logged] => Y )
non riesco a capire...


P.S. session_start(); c'è ;D