Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158

    Passaggio di array in sessioni

    Ho realizzato un sito in PHP, funziona perfettamente su aruba con piattaforma Apache/2.2 ma trasferndo su un'altro dominio sempre aruba ma con piattaforma Apache/2.4.2 (Unix) ho problemi nel passoggio di variabili array in sessioni. Quando vado a recuperare la variabile di sessione contenente l'array in questo modo:

    $Prodotti=$_SESSION["Prodotti"];


    Se faccio un echo $Prodotti mi da "array" ma se ad esempio faccio echo $Prodotti[0] mi da "a" se faccio echo $Prodotti[1] mi da "r" in pratica mi scompone la parola array

    Qualcuno ha mai avuto un problema simile?

    Ho gia controllato nella pagina precedente l'array contiene tutti i sui valori prima di fare $_SESSION["Prodotti"] ="$Prodotti";

    Il problema lo fa solo con gli array passati in sessione e non con le semplici variabili.

    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    La variabile di sessione prodotti che valore avrebbe? Con var_dump($_SESSION['Prodotti']) che risultato ti da?


    Ps: ovviamente in cima alla pagina hai messo il session_start()?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158
    session_start() è stato messo. Se faccio var_dump($_SESSION['Prodotti']) mi da string(5) "Array"

    Quando vado a fare il foreach su $Prodotti mi dice :

    Invalid argument supplied for foreach()

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Com'è dichiarato $_SESSION['Prodotti'] e dove prende i valori?
    (posta il codice)

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158
    Postarti tutto il codice è un po un casino, ma ho fatto quest'altra prova: ho creato un file serv.php che mi crea l'array e mi salva la sessione:

    codice:
    <?php 
    
    session_start();
    $Prova=array ("Pippo","Paperino");
    print ("$Prova[1]");
    $_SESSION["Prova"] = "$Prova";
    
    
    
    ?>
    <META HTTP-EQUIV="Refresh" CONTENT="2;URL=http://www.amg-computer.com/md/ses.php">
    e un'altro che mi va a leggere la sessione ses.php:

    codice:
    <?php
    
      session_start();
      $Prova=$_SESSION["Prova"];
      print ("$Prova[1]");
    
    ?>

    Ma il risultato non cambia... ses.php non mi stampa "Paperino" se faccio print ("$Prova[1]"); ma pi stampa "r"

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Facendo echo $_SESSION["Prova"][1] che risultati ti da?

    Sennò potresti provare cosi:
    Codice PHP:
    $_SESSION["Prova"][0] = 'Pippo';
    $_SESSION["Prova"][1] = 'Paperino'

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    158
    Quello che ti ho fatto è solo un esempio, le array che passo nella sessioni sono multidimensionali e di grandi dimensioni quindi una soluzione come la tua sarebbe improponibile, ho scritto al gestore del server magari dipende da qualche loro impostazione.

  8. #8
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Togli i doppi apici da:
    codice:
    //$_SESSION["Prodotti"] ="$Prodotti";
    $_SESSION["Prodotti"] =$Prodotti;

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.