Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: swfupload e session

  1. #1

    swfupload e session

    Ciao a tutti, prima di postare ho fatto ricerche sia su google che sul forum senza ottenere risultati quindi espongo a voi il problema... Sto utilizzando swfupload su netsons.org, all'inizio andava benissimo, poi un giorno si e un giorno no perdeva sempre le sessioni, ora non le legge più... quando faccio il login vanno, il problema è quando invio i file tramite swfupload che perde la sessione e si deve rifare il login... questo è il codice:

    Pagina 1:
    Codice PHP:
    <?php
        session_start
    ();
    $codedir time();
                        
    mkdir("gallery/$codedir"0700);
                        
    $_SESSION['mycart'] = $codedir;
        if (
    count($_FILES)) {
            
    // Handle degraded form uploads here.  Degraded form uploads are POSTed to index.php.  SWFUpload uploads
            // are POSTed to upload.php
        
    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>SWFUpload Demos - Multi-Instance Demo</title>
    <link href="/css/default.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/swfupload/swfupload.js"></script>
    <script type="text/javascript" src="/js/swfupload.graceful_degradation.js"></script>
    <script type="text/javascript" src="/js/swfupload.queue.js"></script>
    <script type="text/javascript" src="/js/fileprogress.js"></script>
    <script type="text/javascript" src="/js/handlers.js"></script>
    <script type="text/javascript">
            var upload1, upload2;

            window.onload = function() {
                upload1 = new SWFUpload({
                    // Backend Settings
                    upload_url: "/upload.php",    // Relative to the SWF file (or you can use absolute paths)
                    post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},

                    // File Upload Settings
                    file_size_limit : "102400",    // 100MB
                    file_types : "*.*",
                    file_types_description : "All Files",
                    file_upload_limit : "10",
                    file_queue_limit : "0",

                    // Event Handler Settings (all my handlers are in the Handler.js file)
                    file_dialog_start_handler : fileDialogStart,
                    file_queued_handler : fileQueued,
                    file_queue_error_handler : fileQueueError,
                    file_dialog_complete_handler : fileDialogComplete,
                    upload_start_handler : uploadStart,
                    upload_progress_handler : uploadProgress,
                    upload_error_handler : uploadError,
                    upload_success_handler : uploadSuccess,
                    upload_complete_handler : uploadComplete,

                    // Flash Settings
                    flash_url : "../swfupload/swfupload_f8.swf",    // Relative to this file (or you can use absolute paths)
                    
                    swfupload_element_id : "flashUI1",        // Setting from graceful degradation plugin
                    degraded_element_id : "degradedUI1",    // Setting from graceful degradation plugin

                    custom_settings : {
                        progressTarget : "fsUploadProgress1",
                        cancelButtonId : "btnCancel1"
                    },
                    
                    // Debug Settings
                    debug: false
                });

                upload2 = new SWFUpload({
                    // Backend Settings
                    upload_url: "../multiinstancedemo/upload.php",    // Relative to the SWF file (or you can use absolute paths)
                    post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},

                    // File Upload Settings
                    file_size_limit : "200",    // 200 kb
                    file_types : "*.jpg;*.gif;*.png",
                    file_types_description : "Image Files",
                    file_upload_limit : "10",
                    file_queue_limit : "2",

                    // Event Handler Settings (all my handlers are in the Handler.js file)
                    file_dialog_start_handler : fileDialogStart,
                    file_queued_handler : fileQueued,
                    file_queue_error_handler : fileQueueError,
                    file_dialog_complete_handler : fileDialogComplete,
                    upload_start_handler : uploadStart,
                    upload_progress_handler : uploadProgress,
                    upload_error_handler : uploadError,
                    upload_success_handler : uploadSuccess,
                    upload_complete_handler : uploadComplete,

                    // Flash Settings
                    flash_url : "../swfupload/swfupload_f8.swf",    // Relative to this file (or you can use absolute paths)

                    swfupload_element_id : "flashUI2",        // Setting from graceful degradation plugin
                    degraded_element_id : "degradedUI2",    // Setting from graceful degradation plugin

                    custom_settings : {
                        progressTarget : "fsUploadProgress2",
                        cancelButtonId : "btnCancel2"
                    },

                    // Debug Settings
                    debug: false
                });

             }
        </script>
    </head>
    <body>
    <div id="header">
        <h1 id="logo">[url="../"]SWFUpload[/url]</h1>
        <div id="version">v2.1.0 Beta</div>
    </div>
    <div id="content">
        <h2>Multi-Instance Demo</h2>
        <form id="form1" action="index.php" method="post" enctype="multipart/form-data">
            

    This page demonstrates how multiple instances of SWFUpload can be loaded on the same page.
                It also demonstrates the use of the graceful degradation plugin and the queue plugin.</p>
            <table>
                <tr valign="top">
                    <td><div id="flashUI1" style="display: none;">
                            <fieldset class="flash" id="fsUploadProgress1">
                            <legend>Large File Upload Site</legend>
                            </fieldset>
                            <div>
                                <input type="button" value="Upload file (Max 100 MB)" onclick="upload1.selectFiles()" style="font-size: 8pt;" />
                                <input id="btnCancel1" type="button" value="Cancel Uploads" onclick="cancelQueue(upload1);" disabled="disabled" style="font-size: 8pt;" />
                                

                            </div>
                        </div>
                        <div id="degradedUI1">
                            <fieldset>
                            <legend>Large File Upload Site</legend>
                            <input type="file" name="anyfile1" />
                            (Any file, Max 100 MB)

                            </fieldset>
                            <div>
                                <input type="submit" value="Submit Files" />
                            </div>
                        </div></td>
                    <td><div id="flashUI2" style="display: none;">
                            <fieldset class="flash" id="fsUploadProgress2">
                            <legend>Small File Upload Site</legend>
                            </fieldset>
                            <div>
                                <input type="button" value="Upload file (Max 200KB)" onclick="upload2.selectFiles()" style="font-size: 8pt;" />
                                <input id="btnCancel2" type="button" value="Cancel Uploads" onclick="cancelQueue(upload2);" disabled="disabled" style="font-size: 8pt;" />
                                

                            </div>
                        </div>
                        <div id="degradedUI2">
                            <fieldset>
                            <legend>Small File Upload Site</legend>
                            <input type="file" name="anyfile2" />
                            (Any file, Max 200KB)

                            </fieldset>
                            <div>
                                <input type="submit" value="Submit Files" />
                            </div>
                        </div></td>
                </tr>
            </table>
        </form>
    </div>
    </body>
    </html>
    upload.php

    Codice PHP:
    <?php
    session_start
    ();
      
    $my $_SESSION['mycart'];
      
    $mydir "gallery/$my/";
       
    if(isset(
    $_FILES['Filedata']) && $_FILES['Filedata']['size']) {
      
    move_uploaded_file ($_FILES['Filedata']['tmp_name'], $mydir.$_FILES['Filedata']['name']);
      echo 
    "UPLOAD Effettuato";
    } else {
       
    //     echo 'UPLOAD FALLITO '; // I have to return something or SWFUpload won't fire uploadSuccess
       
    print_r($_FILES);
        }
    ?>
    Provando lo script, l'upload funziona bene, solo che mi invia i file in gallery/ e non nella cartella che ho passato proprio come se $my fosse vuoto... come posso risolvere il problema del passaggio della directory? ho provato con i cookie ma neanche vanno.. c'è un altro metodo? spero rispondiate

  2. #2
    Sei sicuro che il nome della sessione sia PHPSESSID ?

  3. #3
    diciamo che sono un principiante, potresti spiegarti?

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non vorrei dire una cavolata, ci avevo smanettato anche io, e mi sembra che l'errore sia in upload.php.

    Ti passi il session_id perchè mi sembra che l'swfupload (non se a causa di flash o cos'altro) si perde la sessione.

    Quindi se ti passi il session id usalo per recuperare la sessione, altrimenti ne fai partire una nuova e non sei più loggato.

    Quindi in upload.php:

    codice:
    session_id($_POST['PHPSESSID']);
    session_start();

  5. #5
    mmm ho incollato pari pari:
    session_id($_POST['PHPSESSID']);
    session_start();


    ma nada... please help me

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    in $_POST['PHPSESSID'] c'è qualcosa?

    Prova a controllare il sorgente della pagina html generata (dovresti vedere il valore di session_id).

    Purtroppo il debug con swfupload non è dei più semplici (niente di eclatante comunque) l'unica cosa che ti consiglio di fare è loggare in ogni pagina php il session_id scrivendolo su un file, cosi vedi quando cambia.

    Ciao

  7. #7
    ora rimane sempre loggato anche dopo l'upload, il problema è che quella variabile non passa... ho fatto un echo nella prima pagina e nella variabile di sessione è presente il valore... grrrrrr

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Ho dato un occhio al vecchio codice, non mi ricordo più perchè, forse proprio per aggirare questo problema, ho fatto le seguenti modifiche:

    1. nel codice html ho inserito un campo hidden con value="<?php echo session_id()" e id="SID"
    2. nel codice di init di swfupload ho tolto il parametro PHPSESSID
    3. nel file handler.js ho messo all'interno della funzione fileDialogComplete il seguente codice:

    codice:
     
    var sid = document.getElementById('SID').value;
    this.setPostParams({"PHPSESSID": sid});
    Spero ti possa aiutare, purtroppo non mi ricordo molto i dettagli della cosa.

    ciao

  9. #9
    scusa se rispondo ora ma ero partito... cmq ho provato ma non va proprio... è possibile inviare una variabile tramite url tramite il post di swf upload? mi spiego meglio, in questa parte di codice:
    upload_url: "/upload.php", posso inserire una variabile che riempio io in php? vorrei fare questo ma non so se il codice è giusto

    upload.php&id=<? echo $id ?> penso non sia corretto potresti darmi qualche suggerimento?

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    semmai è con il ? comunque non credo funzioni, ma hai provato l'swfupload da solo?

    Sei sicuro che sia lì il problema? perchè a me funziona, ti ripeto è un vecchio script e non ricordo molto, ma a parte un po' di disorientamento iniziale poi ha funzionato, non vorrei che stai cercando un errore che non è in quella parte di codice...


    ciao

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.