• User Attivo

    Ciao,
    cosa intendi con non va?

    Cosa ti aspettavi dopo il tuo test con $type = '2'?

    '2' non è 2: una è una stringa, l'altro è un numero.

    Tu dirai:
    Ma il cast non è automatico in PHP?

    Risposta:
    Dovrebbe esserlo, ma a volte ho dovuto eseguire cast 'manuali'.

    Comunque,
    nei logs del web server non trovi nessun errore?

    :ciauz:


  • User

    Scusa, ho copiato male, ho provato sia come strnga e che numero
    $type=2; if($type==2) e $type='2'; e if($type=='2')
    No il server non da errori.


  • User Attivo

    Mi sa allora che l'elaborazione si blocca prima, lì mi sa che non ci arrivi proprio.

    Se vuoi sul mio sito, precisamente qui, ho messo a disposizione una classe per eseguire dei log su file durante il funzionamento dell'applicazione.

    E' nata proprio per eseguire il debug applicativo in fase di test: direi la tua situazione.

    Se ti va,
    preleva pure il codice della classe ed utilizzala.

    Nell'articolo, alla fine, ci sono degli esempi che mostrano come utilizzarla.

    Io la ho usata parecchio e mi è servita. Spero serva anche a te.

    Buon debug.
    :ciauz:


  • User

    Grazie dell'aiuto la provo subito, anche perchè io non sarò un grande di php pero if so come funziona:x


  • User

    Ciao ho trovato il problema 😉 erano i file temp di windows. :dull: Comunque lo cambiata un pò questa e quello che uso
    [php]
    <?php
    $video = $_FILES['video']['type'];
    $video_size = $_FILES['video'];
    if(empty($video)){
    die ( "<p style="font-weight:bold; text-align:center;">Errore nella compilazione dei dati. <br />Nessun file selezionato per l'upload.<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    return false;
    }
    else{
    $dimensionimax =800000;
    $timestamp = time();
    $file = time() .'-'.$_FILES['video']['name'];
    $video = array("mp4","avi", "image/png","image/pjpeg","image/jpeg", "image/jpg");
    if(!in_array($_FILES['video']['type'],$video))
    {
    die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti: ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }

    if ($video_size>$dimensionimax)
    {
    die ("<p style="font-weight:bold; text-align:center;">Errore: Il Video supera il limite di 80Mb ".mysql_error()."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    exit;
    }

    else{
    $dir ="../../videos/";
    $urlvideo = $dir.$file;
    copy($_FILES['video']['tmp_name'], $urlvideo);
    $video_file = $file;
    }
    }
    ?>
    [/php]Devo fare delle modifiche o va bene cosi?
    Poi mi da un problema con il formati io vorrei caricare un video.mp4 pero mi da l'avviso del formato non consentito come mai?
    Ciao.


  • User Attivo

    Ciao spirit19,
    mi fa piacere che sei riuscito a trovare il problema. :vai:

    Dunque,
    per quanto riguarda l'estensione non accettata,
    la segnalazione ti appare perchè hai invertito il test.

    Tu testi:
    se è falso che 'mp4' è presente nell'array delle estensioni consentite
    allora segnala 'estensione non consentita'.

    Mentre vorresti assicurarti che sia vero invece che 'mp4' sia presente nell'array, giusto?

    Ti è servita la classe MaLogger?

    :ciauz:


  • User

    La classe ancora non lo usata, comunque uso questo per il controllo formato
    [php]
    $video = array("mp4","avi", "image/png","image/pjpeg","image/jpeg", "image/jpg");
    if(!in_array($_FILES['video']['type'],$video))
    {
    die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti: ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }
    [/php]


  • User Attivo

    Ciao,
    prova così:
    [php]if(!in_array(strtolower ($_FILES['video']['type']),$video)) [/php]:ciauz:


  • User

    Ciao del tuo aiuto;),
    ho provato come dici tu non va,
    ho inserito altri formati, ma ancora non riconosce mp4
    [php]
    $video = array(" mp4", " mpeg-4", " mpeg", " mpg", " avi", " wmv", " flv", " divx", " avi", " image/png", " image/pjpeg", " image/jpeg", " image/jpg");
    if(!in_array(strtolower ($_FILES['video']['type']),$video))
    {
    die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti:<br /> ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }
    [/php]P.S. Ho provato con varii video .mp4, flv, avi nada non va il controllo.:?


  • User Attivo

    Ciao,
    ho notato che aggiungi uno spazio bianco prima dell'estensione:
    ' mp4',' mpeg' ecc...

    Rimuovi li spazi bianchi,
    e per sicurezza trimma l'estensione che ricavi dal file uploadato.

    :ciauz:


  • User

    Ciao scusa che vuoi dire con" e per sicurezza trimma l'estensione che ricavi dal file uploadato" come si fa in php?
    Grazie del tuo aiuto.


  • User Attivo

    Ciao Spirit19,
    intendevo questo:

    [PHP]
    $video = array("mp4", "mpeg-4", "mpeg", "mpg", "avi", "wmv", "flv", "divx", "avi", "image/png", "image/pjpeg", "image/jpeg", "image/jpg");
    if(!in_array(strtolower (trim($_FILES['video']['type'])),$video))
    {
    die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti:<br /> ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }
    [/PHP]

    come noterai, ho rimosso lo spazio bianco che precedeva ogni estensione in $video, e ho 'trimmato' l'estensione del file uploadato.

    :ciauz:


  • User

    Ciao ho provato come dici tu e non funziona, poi ho provato cosi
    [php]
    $video = array("mp4", "mpeg-4", "mpeg", "mpg", "avi", "wmv", "flv", "divx", "avi", "image/png", "image/pjpeg", "image/jpeg", "image/jpg");
    if(!in_array(strtolower(ltrim(rtrim(trim($_FILES['video']['type'])))),$video))
    {
    die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti:<br /> ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }
    [/php]
    e continua a non funzionare:bho:


  • User Attivo

    Ma provare a debuggare?

    Se non ti va di utilizzare la via che ti ho detto,
    puoi sempre creare commenti HTML nella pagina:

    [PHP]
    $video = array("mp4", "mpeg-4", "mpeg", "mpg", "avi", "wmv", "flv", "divx", "avi", "image/png", "image/pjpeg", "image/jpeg", "image/jpg");

    echo '<!-- ESTENSIONE FILE UPLOADATO = "' . trim($_FILES['video']['type']) . '" -->';

    if(!in_array(strtolower(trim($_FILES['video']['type']))),$video))
    {
    die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti:<br /> ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }

    [/PHP]

    Cosa ti traccia il commento nel codice HTML?

    :ciauz:


  • User

    Grazieee dei consigli
    ho stampato [php]$_FILES['video']['type'][/php]
    inpratica mette video/ prima del formato video e image/ prima del formato immagine
    cosi funziona
    [php]
    $video = array("video/mp4", "video/mpeg-4", "video/mpeg", "video/mpg", "video/avi", "video/wmv", "video/flv", "video/divx");
    if(!in_array(strtolower (trim($_FILES['video']['type'])),$video))
    {die ("<p style="font-weight:bold; text-align:center;">Il file non è di un tipo consentito, sono ammessi solo i seguenti:<br /> ". implode("," , $video) ."<br /><br />
    <a href="javascript:history.go(-1)" title="Torna indietro">Torna indietro.</a></p>");
    }
    [/php]
    Graziee.:)


  • User Attivo

    :vai::vai::vai:

    Nessun problema,
    buon lavoro.

    :ciauz:


  • User

    Grazie anche a te
    ps se hai bisogno un aiuto scrivi;)
    ciao.