Problema: come far leggere unintero dvd da php e memorizzare il suo contenuto ????

Ciao

Ciao Borgo,

Ho trovato finalmente il programma che cercavo. Questo legge cartelle, file e sottocartelle con la sottolineatura per andare a vedere cosa c'è nella sottocartella. Il lista è molto semplice e lo posto a chi potrebbe servire:

PHP:
$sub = ($_GET['dir']);
$path = 'g:\\';
$path = $path. "$sub";
$dh = opendir($path);
$i=1;
while (($file = readdir($dh)) !== false) {
    if($file != "." && $file != "..") {
            if (substr($file, -4, -3) =="."){
            echo "$i. $file <br />";
            }else{            
        echo "$i. <a href='?dir=$sub/$file'>$file</a><br />";
             
          }
        $i++;
    }
}
closedir($dh);

Come potete vedere è un codice di 18 righe. E secondo me è molto utile nel mio caso. Ora l'unica cosa veramente noiosa che non sono riuscito a modifcare perchè mi s'impallava il programmino, è questo errore che mi da all'inizio:

Notice: Undefined index: dir in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\projects\prova\letturadvdbymark.php on line 2

La riga 2 di appartenenza all'errore è la seguente:

PHP:
$sub = ($_GET['dir']);

Mi potete dire per favore come eliminare tale errore ???? Ho anche un'altro codice molto utile al mio scopo che consiste nel far leggere l'intero contenuto di un dvd in un campo (in questo select). Il codice è il seguente:

PHP:
// open the current directory
$dhandle = opendir('c:\\');
// define an array to hold the files
$files = array();

if ($dhandle) {
   // loop through all of the files
   while (false !== ($fname = readdir($dhandle))) {
      // if the file is not this file, and does not start with a '.' or '..',
      // then store it for later display
      if (($fname != '.') && ($fname != '..') &&
          ($fname != basename($_SERVER['PHP_SELF']))) {
          // store the filename
          $files[] = (is_dir( "./$fname" )) ? "(Dir) {$fname}" : $fname;
      }
   }
   // close the directory
   #closedir($dhandle);
}

echo "<select name=\"file\">\n";
// Now loop through the files, echoing out a new select option for each one
foreach( $files as $fname )
{
   echo "<option>{$fname}</option>\n";
}
echo "</select>\n";

In questo caso ho messo la lettera "C" del mio hard disk. Vorrei sapere secondo voi se è possibile unire i due codici per poi farlo leggere in un campo tipo select, magari non select ma textarea o qualcosa del genere. Mi potreste dare una mano per favore ??? Tanto ormai mi sono rassegnato che su questo debbo lavorare in locare, sperando di poter sfruttare in remoto almeno il phpmyadmin per la memorizzazione dei dati. Spero tanto in una vostra mano. Grazie a tutti.
 
ciao

Salve a tutti,

Ho fatto qualche prova in locale. Ed effettivamente il codice che mi avevano proposto funziona alla grande. Ma solo in locale. ossia codice originario è il seguente:

PHP:
if ($dir = opendir('C:\\')) { 
while (false !== ($file = readdir($dir))) {
 if ($file != "." && $file != "..") { 
echo "<p> <p>";
     echo "$file\n"; 

echo "</p> </p>";
} 
}
 #closedir($handle); 
}

In locale questo funziona alla grande. Qualcuno mi sai aiutare ad adoperasrlo senza il localhost ???? Non capisco cosac'è che non gli piaccia. Bah..... Spero di ricevere vostre notizie al più presto grazie.

Ciao Borgo,


Scusami solo ora mi sono accorto che mi era arrivata una tua risposta. Evidentemente non me l'ha segnalata. Comunque domani provo e ti dico. Grazie del consiglio per i campi.
 
ciao

ciao
ti do comunque un'indicazione (sempre da locale)
potresti fare una tabella
id int(9) autoincrement primarykey
dvd varchar(20)
file varchar(250)
poi
PHP:
<?php
//dati di connessione
$nome_dvd="pinco";//questo potrebbe derivare da un form
if ($dir = opendir('c:\*.*')) {
	while (($file = readdir($dir)) !== false) {
		$query="INSERT INTO tabella(dvd, file) VALUES('$nome_dvd','$file')";
		$ris=mysql_query($query);
		echo "inserito il file $file<br />";
	}  
	closedir($dir);
}
?>

Ciao Borgo,

Che tu sappia è possible sfruttare la connessione del phpmyadmin dal nas in fase locale: ho fatto una prova di questo genere.S e metto il richiamo classico:

PHP:
require_once("connetti.php");

Il file connetti è situato sul nas, sembra che non gli piaccia. ma se io vado a prenderre il contenuto in toto e lo metto all'inizio dove c'è la programmazione della lettura del dvd, si connette al db situato sul nas.

PHP:
$host     = 'xxx.xxx.xxx.xxx';
$user     = 'fabio';
$password = 'xxxxxxxx';
$DB_name     = 'MegaLaboratorio';

$link = mysql_connect($host, $user, $password);
if (!$link) {
	die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db($DB_name, $link);
if (!$db_selected) {
	die ("Errore nella selezione del database: " . mysql_error());
}
else
      {
     echo "Ti sei connesso al database"." ". $DB_name. " 

}

$sub = ($_GET['dir']);
$path = 'd:\\';
$path = $path. "$sub";
$dh = opendir($path);
$i=1;
while (($file = readdir($dh)) !== false) {
    if($file != "." && $file != "..") {
            if (substr($file, -4, -3) =="."){
            echo "$i. $file <br />";
            }else{            
        echo "$i. <a href='?dir=$sub/$file'>$file</a><br />";
          }
        $i++;
    }
}
#closedir($dh);
//Procedura lettura dvd

In questa maniera sempre in locale, non solo si connette al db situato sul nas, ma mi legge anche i dvd. Domanda: è possibile sfruttare il require invece di tutta sta pappardella che c'è all'inizio secondo te ?????
 
ciao
si
PHP:
require_once "connessione.php";
pero stai attento hai percorsi (non conosco nas, ma di sicuro deve trovare il file)

poi una cosa: non so se hai fatto un errore di trascrizione, ma verifica gli apici, ci sono istruzioni php color rosso, quindi da qualche parte ti sei deminticato di chiuderli
 
ciao

Ciao borgo,

Sembra che gli apici stiano bene sennò me le avrebbe seganali. netbeans il programma che adoper io è abbastanza suscettibile su queste cose. Addirittura se ne manca uno lo aggiunge lui automaticamente. Ad esempio se scrivo echo "ppp lui aggiunge le doppie virgolette finali senza il ";" ovviamente e mi segnala in quel caso rosso sottolineato. Come alle elementari :P. Il percorso in php se non sbaglio si indica con uno "/connetti.php" ad esempio, oppure devo mettergli l'intero percorso,benchè il file connetti sta nella stessa cartella del programma che sto facendo anche se in locale. Non so se mi sono spiegato abbastanza bene.
 
ciao
allora hai sbagliato a trascrivere qui.
comunque i percorsi dipendono da dove si trova il file che chiama e il chiamato (cartelle)
se sono nella stessa cartella non serve nulla, poi come detto dipende dalla posizione relativa dei due file
 
Dubbio sulla textarea

Ciao Borgo,

Scusami se non apro una nuova discussione perchè fa sempre capo al programma che sto facendo e quindi alla struttura del db che devo fare. Ho visto che la textarea che vorrrei usare ha parecchi caratteri a disposizione e non il ilimite di 255 ed è quello che mi serve. Ora la domanda è questa io faccio al seguente struttura dati:

PHP:
id int(9) autoincrement primarykey
dvd varchar(20)
file varchar(250)      //questo dovrebbe memorizzare il contenuto del dvd se non erro ?????

Se invece la facessi in questo modo qua:


PHP:
id int(9) autoincrement primarykey
dvd varchar(20)
file text(che valore ci dovrei mettere ????)      //questo dovrebbe memorizzare il contenuto del dvd se non erro ?????

file text per indicare che voglio una textarea è strutturata bene oppure ho scritto na cavolata ??? Grazie.
 
Ciao

Ciao Borgo,

Volevo sapere se la sintassi era giusta o meno del campo text. Questi sono i campi che dovrò inserire nel corso di archiviazione:

elencodvd:

PHP:
create table elencodvd (

id 		         INT UNSIGNED NOT NULL AUTO_INCREMENT,
nomedvd        	 VARCHAR(80) NOT NULL,
numerodvd      	 VARCHAR(255) NOT NULL,
data		         TIMESTAMP(8) NOT NULL,
file 		         text NOT NULL,
PRIMARY KEY (id)
);

Se c'è qualche correzione da fare ben venga. Grazie.
 
Secondo me va bene.
Poi per caricare il file bisogna eseguire la query:
Codice:
INSERT INTO my_table (..., file) VALUES (..., LOAD_FILE('my_file.txt'));
 
Ciao

Ciao Borgo e un ciao a tutti,

Allora ho un piccolo problema di caratteri accentati che non riesco a risolvere. Le ho provate tutte, ma senza alcun risultato. Il testo è il seguente:

Lo Chiamavano Trinit� (Colonna Sonora).mp3

Come potete vedere a posto della "à" c'è il simboletto. Ora il meta dei codici c'è all'inizio pagina, quetso viene fuori in fase di letture del disco. Il codice è ils eguente:

PHP:
<html>
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>ELENCO DVD</title>
    </head>
    <div align ="center">
        <h1>ELENCO DVD PERSONALE BY FABIO</h1>
    </div>
    
    <body>
        <form action="inserimentodati.php" method="POST">
            <label for="titolodvd">Titolo DvD: </label><INPUT type="text" id="titolodvd"><p><p>
            </p></p>
 <label for="numerodvd">Numeor DvD: </label><INPUT type="text" id="numerodvd"><p><p>
            </p></p>
        
<?php
#Inizio Selezione data di nascita

#Giorno 

echo "Giorno: ";
echo "<select name=\"giorno\">";
echo "<option value=\"\"> seleziona </option>";
for($gg=1; $gg<=31; $gg++){
 if(strlen($gg)< 2){$gg = "0".$gg;}  
 echo "<option value=\"$gg\"> $gg </option>";
}
echo "</select>";

//Mese

echo " Mese: ";

echo "<select name=\"mese\">";
echo "<option value=\"\"> seleziona </option>";
for($gg=1; $gg<=12; $gg++){
 if(strlen($gg)< 2){$gg = "0".$gg;}  
 echo "<option value=\"$gg\"> $gg </option>";
}
echo "</select>";
//Anno

echo " Anno: ";
$da=1972;
$al=2014;
echo "<select name=\"anno\">";
echo "<option value=\"\"> seleziona </option>";
for($aa=$da; $aa<=$al; $aa++){
    echo "<option value=\"$aa\"> $aa </option>";
}
echo "</select>" ; 
?>
    </form>
       </body>
         </html>

        <?php
    include 'connettimysqli.php';
   
 echo "<p>";
$sub = ($_GET['dir']); 
$path = 'd:\\'; 
$path = $path. "$sub"; 
$dh = opendir($path);
$i=1; 
?>
         
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
while (($file = readdir($dh)) !== false) { if($file != "." && $file != "..") {
     if (substr($file, -4, -3) =="."){
echo "$i. <img src='file.png' style='width:25; height:25'> $file <br />";
}else{ 
echo "$i. <img src='cartella.png' style='width:25; height:25'> <a href='?dir=$sub/$file'>$file</a><br />";


}
$i++; 

}
 #closedir($dh); 
}
?>

Mi sapreste dare una mano a risolvere tale problema ??? Non riesco a capire cos'è che non gli piace. Grazie. Ripeto: questo viene solo in fase di lettura del disco.
 
problema lettura dati da dvd

Ciao borgo,

Aiutooooooooooo.

Allora ho eseguto il codice per far leggere (in locale) i dvd o hdd. ho eseguito la loro memorizzazione, ma 'è qualcosa che non va. Questo è il listato:

PHP:
include 'connettimysqli.php';
   echo "<p>"; 
   $sub = ($_GET['dir']); 
   $path = 'd:\\'; 
   $path = $path. "$sub"; 
   $dh = opendir($path); 
   $i=1; 
   while (($file = readdir($dh)) !== false) { 
       if($file != "." && $file != "..") { 
           if (substr($file, -4, -3) =="."){ 
echo "$i. <img src='file.png' style='width:25; height:25'> $file <br />"; 
 }else{ 
     
echo "$i. <img src='cartella.png' style='width:25; height:25'> <a href='?dir=$sub/$file'>$file</a><br />"; 

 }
 $i++; 
 
 $titolodvd = mysql_real_escape_string(strtolower(trim ($_POST['titolodvd'])));
 
if ($dir = opendir('d:\\')) {
    while (($file = readdir($dir)) !== false) {
        $con->query("INSERT INTO dvd(file, titolodvd) VALUES('$file', '$titolodvd')");
        $ris=mysqliquery($query);
        echo "inserito il file $file<br />";
    }  
    closedir($dir);
} 
 
 }
 #closedir($dh); 
 }
 ?>
 </form>
       </body>
         </html>

A parte i notice tipo questo che mi da:

Notice: Undefined index: titolodvd
Notice: Undefined index: file

Io vorrei fare in modo che quando lo mando in eseuzione non mi memorizzi direttamente tutti i file, ma dovrebbe far si che premendo un tastino "invio dati", lui registra le info che gli inserisco e in più l'elenco dei programmi. Com'è strutturato in questa maniera non va. Memorizza ogni volta le stesse informazioni. così mi ritrovo doppioni nel db e diventa una carrettata di tai. Mi potreste dare una mano a migliorarlo per favore. lo vorrei fare con il metodo mysqli: che è più sicuro e veloce. Grazie. Credo che si tratti solo di cambiare qualcosina nel codice sopra che io non sono riuscito. Spero di ricevere vostre notizie.
 

Discussioni simili