• User

    problema noioso con $_SESSION...

    Salve Ragazzi, ho un problema noioso con $_SESSION....

    In sostanza ho creato una applicazione in flash/php per fare l'upload di dati verso un ftp.
    Nella prima pagina lo script si occupa di creare una cartella sul server il cui nome viene inserito nella variabile $cartella, quindi nella pagina "makedir.php" ho inserito:

    [php]session_start();
    //prendo il nome della cartella da creare
    $nome_cartella=$HTTP_POST_VARS['azienda'];
    $cartella=$nome_cartella;
    $login=xyz;
    $password=xyz;
    $conn = ftp_connect("xx.xx.xx.xx") or die("Could not connect");
    @ftp_login($conn,$login,$password);
    //creo la cartella sull'ftp
    $cartella = str_replace(" ", "_", $cartella);
    @ftp_mkdir($conn,$cartella);
    //mi sposto nella posizione creata
    //@ftp_chmod ($conn, 0777, $cartella);
    @ftp_chdir($conn,$cartella);
    $_SESSION['cartella'] = $cartella; [/php]Quindi in teoria mi sono immagazzinato nella sessione il nome della cartella che è stato inserito dall'utente...

    In questa pagina c'è anche un uploader in flash al momento dell'invio che si appoggia alla pagina upload.php in questo modo:

    [php]<?php
    session_start();
    $cartella_up = $_SESSION['cartella'];
    echo session_id();
    if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $login=xyz;
    $password=xyz;
    $conn = ftp_connect("xx.xx.xx.xx") or die("Could not connect");
    @ftp_login($conn,$login,$password);
    ftp_put($conn, ("$cartella_up/".$_FILES['Filedata']['name']), $tempFile, FTP_BINARY);
    ftp_close($conn);
    }
    ?> [/php]Quindi il lavoro che "dovrebbe" fare è inserire i file in upload dentro la cartella creata.... E INVECE NO! 
    la cosa strana è che se gli specifico io il nome della cartella, funziona perfettamente (es. $cartella_up="cartella_utente") ed inoltre se chiedo alla pagina upload.php di farmi una stampa di $cartella_up mi dice esattamente il nome inserito nel form utente...

    avete qualche idea???

    Grazie


  • ModSenior

    Ciao, bisogna vedere intanto se il flash è corretto. Con che browser stai provando? Con internet explorer mi sono capitati dei problemi con le sessioni quando si usa flash.
    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile


  • User

    Si, il flash è corretto, funziona se specifico io il nome della cartella...

    I test li eseguo sia con firefox che con chrome.


  • ModSenior

    Io ho riscontrato problemi in passato in quanto la sessione viene ricreata nuova se passi da flash.
    Cioè se imposti una variabile di sessione sul sito web normalmente, ma poi con flash richiami una pagina del sito web, non viene inviato il cookie per far capire che si riferisce sempre a quella sessione, e ne viene quindi aperta una nuova differente dalla prima.


  • User

    E' tutto molto strano, ora stò utilizzando questo codice:
    [PHP]<?php
    session_start();
    $login=xyz;
    $password=xyz;
    $conn = ftp_connect("xx.xx.xx.xx") or die("Could not connect");

    ftp_login($conn,$login,$password);
    echo "<br/>";
    echo $_SESSION['cartella'];
    echo "<br/>";
    $cartella_up = $_SESSION['cartella'];
    echo $cartella_up;
    echo "<br/>";
    var_dump(ftp_pwd($conn));
    echo "<br/>";

    var_dump(ftp_chdir($conn,$cartella_up));
    echo "<br/>";

    var_dump(ftp_pwd($conn));

    if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];

    ftp_put($conn, ($_FILES['Filedata']['name']), $tempFile, FTP_BINARY);

    ftp_close($conn);
    }
    ?>[/PHP]

    stò facendo il dump su ogni passaggio e funziona tutto correttamente, però quando fà l'upload di un file invece di metterlo nella $cartella_up lo mette nella root...

    Per togliermi lo sfizio ho provato anche a fare un upload "manuale" con le istruzioni:
    [PHP]$file='readme_test.htm';
    $remote_file = 'readme_test.htm';
    ftp_put($conn, $remote_file, $file, FTP_ASCII);[/PHP]

    e lo inserisce perfettamente nella cartella richiesta, non in root!

    Stò cominciando ad esaurire i tentativi...