problema: la funzione funziona (scusate ill gioco di parole) ma mi da errore time out

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Forse sono riuscito a venire a capo della mattassa con la lettura dei dvd. Mi hanno dato questa funzione qua ma purtroppo mi va in time out quando legge alcuni dvd pieni come un uovo o quando legge l'hard-disk. Questo è il codice:


PHP:
<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    
        <form action= '' method="POST">

            
       <!-- Contenuto: <textarea name="contenuto" rows="5" cols="40"> -->

        <?php

function listafiles($directory='')
{    
    //$directory.'*.sorgente' es $directory.'*.php' == mostrerà tutti i file php
    //$directory.'*.sorgente' es $directory.'*.avi' == mostrerà tutti i file avi
    
       
        foreach(glob($directory.'*.*') as $file) //elenco tutti i file della directory
        echo '<br>'.$file;
    
    foreach(glob($directory.'*', GLOB_ONLYDIR | GLOB_MARK) as $cartella) //per ogni cartella di $directory, richiamo la funzione passando la cartella
        if($cartella != './' && $cartella != '../') //non teniamo conto di ./ altrimenti va in loop infinito, e ../ altrimenti torna anche indietro!
            listafiles($cartella);
}

if(!empty($_POST)){
            
        $query="INSERT INTO arcdvd (contenuto) VALUES ('".$contenuto."')";
        @mysql_query($query) or die("Errore query Database riga: ".__LINE__  . mysql_error());
        echo '<div id="risultato">Dati inseriti correttamente nel db</div>';
        }
listafiles('c:\\');//la tua directory iniziale (in questo caso è il mio disco rigido
?>
            
            <div align ="center">
                <p> <p>
    <input type="submit" value="Invia" name="memo">
</p> </p>
            </div>
</form>
        </textarea>
    </body>
</html>

Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\Archdvd2\provevarieletturadvd.php on line 26

La riga 26 dovrebbe essere la seguente:


Codice:
foreach(glob($directory.'*', GLOB_ONLYDIR | GLOB_MARK) as $cartella) //per ogni cartella di $directory, richiamo la funzione passando la cartella
        if($cartella != './' && $cartella != '../') //non teniamo conto di ./ altrimenti va in loop infinito, e ../ altrimenti torna anche indietro!
            listafiles($cartella);
}

esattamente dove c'è GLOB_ONLYDIR | GLOB_MARK. Qualche anima pia mi potrebbe risolvere il problema per favore ???? Sono mesi che ci sto combattendo ma senza ottenere un grosso risultato grazie. Ho fiducia in voi.
 

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.054
6
38
53
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Ciao, l'errore 500 o time out avviene quando l'esecuzione di un programma supera il tempo impostato nel server. Per risolvere bisogna modificare i parametri nel server stesso. Lavorando in locale, come vedo dall'errore, devi cambiare le righe del file php.ini (situato nella cartella /xampp o /lampp) da: max_execution_time = 30 a max_execution_time = 60 (o il tempo che vuoi).
Ciao
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
come memorizzare il contenuto letto del dvd

Ciao filomeni,

Grazie di avermi risposto. Il problema sono riuscito a risolvero proprio come mi aavevi consigliato te di allungare il tempo. L'ho messo a 50 sec. in modo tale che mi legge tutti i dvd, l'unica cosa è l'hard disk che c'impiega più tempo. Ma quello poco importa alla fine. Ora il problema è come memorizzare i dati che non sono riuscito a risolvere. Mi lascia sempre la colonna vuota. Queste sono le tre tabelle di proba che ho fatto:

tabelle arc2, arc3, arc4:


PHP:
reate table arcdvd2 (

iddvd 		INT NOT NULL AUTO_INCREMENT,
titolodvd 	VARCHAR(80) NOT NULL,
listafiles	VARCHAR(255) NOT NULL,
PRIMARY KEY (iddvd)
);
 */
 
/* Terza tabella modificata
  
 create table arcdvd2 (

iddvd 		INT NOT NULL AUTO_INCREMENT,
titolodvd 	VARCHAR(80) NOT NULL,
cartella	VARCHAR(255) NOT NULL,
PRIMARY KEY (iddvd)
);
 */
/* Quarta tabella modificata
  
 create table arcdvd2 (

iddvd 		INT NOT NULL AUTO_INCREMENT,
titolodvd 	VARCHAR(80) NOT NULL,
cartella	VARCHAR(255) NOT NULL,
PRIMARY KEY (iddvd)
);
 */

E questo è l'intero listato che mi legge i dvd:


letturadvd.php


PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>

                <form action= '' method="POST">

    <?php
  
 require_once "connetticonxampp.php";
    function listafiles($directory='')
{    
    //$directory.'*.sorgente' es $directory.'*.php' == mostrerà tutti i file php
    //$directory.'*.sorgente' es $directory.'*.avi' == mostrerà tutti i file avi
    set_time_limit(50);
    
    foreach(glob($directory.'*.*') as $file) //elenco tutti i file della directory
        echo '<br>'.$file;
    
    foreach(glob($directory.'*', GLOB_ONLYDIR | GLOB_MARK) as $cartella) //per ogni cartella di $directory, richiamo la funzione passando la cartella
        if($cartella != './' && $cartella != '../') //non teniamo conto di ./ altrimenti va in loop infinito, e ../ altrimenti torna anche indietro!
            listafiles($cartella);
    
}

 echo '<textarea rows="4" cols="50">';

listafiles('e:\\');//la tua directory iniziale

echo "</textarea>";

$titolodvd = $_GET['titolodvd'];
$cartella = $_GET['cartella'];   

if(!empty($_POST)){
$query=("INSERT INTO arcdvd2 (titolodvd, cartella) VALUES('".$titolodvd."','".$cartella."')");
$result=@mysql_query($query) or die("Error query DataBase:".mysql_error());

if($result){
    echo("<p> Inserimento avvenuto correttamente <p>");
} else{
    echo("<br>Inserimento non eseguito");
}
}

        ?>
    
                       <div align ="center">
                <p> <p>
    <input type="submit" value="Invia" name="memo">
</p> </p>
            </div>
                </form>
    </body>
</html>

Dove sbaglio ??? Perchè non mi memorizza niente ???? Spero che mi potrai risolvere questo problema. Grazie.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Allora l'html è scolegato dalla pagina php eprchè deve stare tutto in un file php. Gli input uno ne manca ossia il titolodvd, però l'altro è la textarea che legge direttamente il contenuto dvd. Secondo te come dovrei fare ???? Per il get e post sono d'accordo con te mi hnanno dato un'indicazione. Ora ho bisogno che il contentuo della textarea venga memorizzato nel db. Il contenuto lo prende dalla lettura del dvd.

Questo è il listato corretto:

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>

                <form action= '' method="POST">

    <?php
  
 require_once "connetticonxampp.php";
    function listafiles($directory='')
{    
    //$directory.'*.sorgente' es $directory.'*.php' == mostrerà tutti i file php
    //$directory.'*.sorgente' es $directory.'*.avi' == mostrerà tutti i file avi
    set_time_limit(50);
    
    foreach(glob($directory.'*.*') as $file) //elenco tutti i file della directory
        echo '<br>'.$file;
    
    foreach(glob($directory.'*', GLOB_ONLYDIR | GLOB_MARK) as $cartella) //per ogni cartella di $directory, richiamo la funzione passando la cartella
        if($cartella != './' && $cartella != '../') //non teniamo conto di ./ altrimenti va in loop infinito, e ../ altrimenti torna anche indietro!
            listafiles($cartella);
    
}

 echo '<textarea rows="4" cols="50">';

listafiles('e:\\');//la tua directory iniziale

echo "</textarea>";

$titolodvd = $_POST['titolodvd'];
$cartella = $_POST['cartella'];   

if(!empty($_POST)){
$query=("INSERT INTO arcdvd2 (titolodvd, cartella) VALUES('".$titolodvd."','".$cartella."')");
$result=@mysql_query($query) or die("Error query DataBase:".mysql_error());

if($result){
    echo("<p> Inserimento avvenuto correttamente <p>");
} else{
    echo("<br>Inserimento non eseguito");
}
}

        ?>
    
                       <div align ="center">
                <p> <p>
    <input type="submit" value="Invia" name="memo">
</p> </p>
            </div>
                </form>
    </body>
</html>

Qui sotto ti allego l'immagine di ciò che dovrebbe memorizzare eche non memorizza. Le righe in questine dove c'è l'errore sono le seguenti:

Codice:
$titolodvd = $_POST['titolodvd'];
$cartella = $_POST['cartella'];

Come posso risolvere il problema una volta per tutte ???
 

Allegati

  • Contenutodvd.PNG
    Contenutodvd.PNG
    25,2 KB · Visite: 229
Ultima modifica:

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.054
6
38
53
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Ciao, il "NOTICE" non è un errore vero e proprio, ma notifica nu'inesattezza nel codice. Questo solitamente si verifica dopo un GET o Un POST, per risovere potresti provare a verificare l'esistenza della variabile:
Codice:
// Prima dell'utilizzo $_POST['variabile'] 
if (isset($_POST['variabile'])) 
{ 
          // Istruzioni se $_POST['variabile'] esiste 
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Problema funzione mail() PHP PHP 3
L [PHP] problema count messo in una funzione. PHP 1
batmanLF [MySQL] Problema funzione SUM MySQL 1
M Problema con connessione MySqli e funzione PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
L [javascript]problema funzione per webapi Javascript 4
S [Javascript] Problema richiamo funzione Javascript 8
F [Javascript] Problema funzione jquery con elementi css esterni Javascript 1
N Problema funzione UPDATE PHP 9
G Problema php relativo a funzione di un pulsante PHP 8
F Problema richiamo funzione Javascript 6
A problema funzione mail() PHP 33
S Problema con funzione "imagecreatefrompng" PHP 10
R Problema funzione caricate con il body Javascript 1
M problema funzione mysql_insert_id PHP 3
felino [Contact Form 7] Funzione personalizzata: ho un problema. WordPress 1
G Problema con la funzione array_combine PHP 2
L problema con la funzione header!!! AIUTO! PHP 24
M problema con elementi della funzione Javascript 3
P [risolto] Problema funzione raggruppamento di elementi Javascript 4
L problema nella implementare una funzione con ritorno PHP 2
F Problema tabs al richiamo di una funzione jQuery 1
F Problema con funzione cambia password PHP 5
S Problema return con funzione PHP 2
L problema email con funzione mail PHP 1
E Problema ad elaborare dati funzione $.get jQuery 2
B Problema con funzione JS Javascript 4
S problema con funzione php PHP 3
D Problema apostrofo con funzione unlink PHP 7
C Problema nel Caricare file e spostarlo con la funzione move_uploaded_file PHP 14
D Problema con funzione preg_match() per controllo email PHP 2
M PhP Problema funzione mssql PHP 5
D Problema nella chiamata ad una funzione javascript da href Ajax 2
Neptune7650 Piccolo problema con la funzione include PHP 1
C Problema funzione Javascript 1
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
asevenx problema con la funzione AVG() PHP 1
B problema funzione date PHP 3
P Problema con la funzione mail PHP 13
G ajax php myqsl - problema con funzione javascript Ajax 1
N problema parametro funzione addEventListener Javascript 2
F Problema con funzione di RainTpl PHP 3
M Problema funzione chiamata una volta solo in javascript Javascript 1
dk-wamp problema con la funzione sleep PHP 4
R Problema su funzione makethumb PHP 1
F Problema richiamare funzione Javascript 0
Matt89 problema semplice di una funzione PHP 1
jan267 Problema con funzione getElementsByClassName Javascript 2
O Principiante: problema con funzione CURL ###URGENTE### PHP 1
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0

Discussioni simili