Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Sessioni da php4 a php5

    Ciao a tutti,
    ho un sito sviluppato tempo fa in php4.
    e con questa versione di php non mi da nessun problema.

    I guai sorgono quando cerco di far partire il sito su un ambiente che ha configurato php5
    chiamo l'index.php e la barra del browser resta immobile, apache comincia a girare come un pazzo occupando il 99% ...
    unica soluzione è stoppare apache e cancellare il contenuto della cartella che contiene i file di sessione.

    lo script che mi inizializza la sessione è il seguente ...

    <?
    if (isset($_SESSION))session_destroy();
    session_start();
    $_SESSION["site_fisic_root"]=$site_fisic_root=realpath (".");
    $_SESSION["run_mode"]= ($_REQUEST["debug"]=="fd"?"debug":"0");
    if (strpos($_SERVER['HTTP_USER_AGENT'],"Netscape")||strpos($_SERVER['HTTP_USER_AGENT'],"Windows CE")) {
    $_SESSION["limited_browser"]=1;
    }
    $_SESSION["tentativi_login"]=0;
    ?>

    qualcuno sa dirmi quale può essere il problema ??
    grazie
    elfo

  2. #2
    premesso che non so se la cosa si possa attribuire alle sessioni, nel codice vedo numerose cosette:


    innanzitutto.. come fai a distruggere una sessione se ancora non hai chiamato session_start() ????

    in secundis session_destroy è deprecato.. limitati a svuotare l'array di sessione quando serve:
    $_SESSION = array();

    questo va così:
    $_SESSION["run_mode"]= ($_REQUEST["debug"]=="fd") ?"debug":"0";

    infine è bene usare sempre <?php e non <?


  3. #3
    chiarissimo, non era quello il problema, ma quella modifica comq è servita a individuare l'errore

    il problema è in questo ciclo che va in loop

    function template($filename)
    {
    if(file_exists($filename) && $filename!='')
    {
    $this->buffer = '';
    $handle = fopen($filename,"r");
    while (!feof ($handle))
    $this->buffer .= fgets($handle, 4096);
    fclose ($handle);
    } else
    {
    $this->buffer = $filename;
    }
    return true;
    }

    è possibile che ci sia qualcosa che proprio non vada in questo script ?

  4. #4
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Originariamente inviato da }gu|do[z]{®©
    innanzitutto.. come fai a distruggere una sessione se ancora non hai chiamato session_start() ????
    Immagino lo facesse per tappare un possibile session fixation. Dico bene?
    In quel caso basta un session_regenerate_id();


    [.:: JaguarXF ::.]
    __________________

  5. #5
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    Una domanda: mi spieghi il perchè di qs 2

    Codice PHP:
    $_SESSION["site_fisic_root"]=$site_fisic_root=realpath (".");
    $_SESSION["run_mode"]= ($_REQUEST["debug"]=="fd"?"debug":"0"); 
    Grazie

    [.:: JaguarXF ::.]
    __________________

  6. #6
    Il sito non l'ho scritto io, io devo portarlo su php5,
    da quel che sono riuscito a capire,
    l'index.php controlla l'esistenza di $_SESSION["site_fisic_root"] e se non la trova chiama quello script che dovrebbe inizializzare la sessione
    questa riga ($_REQUEST["debug"]=="fd"?"debug":"0"); non ho ancora ben capito a cosa si riferisca...

    il sito in php5 va in loop qui

    function template($filename)
    {
    if(file_exists($filename) && $filename!='')
    {
    $this->buffer = '';
    $handle = fopen($filename,"r");
    while (!feof ($handle))
    $this->buffer .= fgets($handle, 4096);
    fclose ($handle);
    } else
    {
    $this->buffer = $filename;
    }
    return true;
    }

    ora ne ho la certezza perchè mi esce anche un errore linea 42 e 43 rispettivamente
    while (!feof ($handle))
    e
    $this->buffer .= fgets($handle, 4096);

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.