Non riesco a capire dove sta l'errore e perchè non mi memorizza il contenuto

paperinik4

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

Vhiedo un grosso aiuto. Questo script che ho fatto legge l'intero contenuto e le sue sottocartelle sono arrivato al punto che non riesco a memorizzare i dati e lo vorrei fare gestendo con un unico file. ;i spieto il tavo "Invio dati" e la sua procedura dovrebbe stare all'interno dello stesso file. Il file si chiama:

letturadvd.php e questo è lo script completo:

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    
    
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    
    <style type="text/css">
#intestazione{

position:absolute;
 width:100%;
 height:100px;
 top:0px;
 left:0px;
 text-align: center;
 font-family: Comic Sans MS;
 font-size: 100%
}     
#intestazione h2{
 position:absolute;
 left:10px;
 font-family: Comic Sans MS;
 font-size: 100%;
}
#divhr{
 position:absolute;
 top: 125px;
 font-family: Comic Sans MS;
 font-size: 100%;
}

#inviodati {
     
position: relative;
top: 315px;
 left:10px;

text-align: center;
font-family: Comic Sans MS;
}    
#risultato {

 position:absolute;
 top: 315px;
 text-align: center;
 font-family: Comic Sans MS;
 }
 
#letturadvd {

 position:absolute;
 top: 180px;
 left:95px;

 font-family: Comic Sans MS;
 }


</style>
   <body>
 <div id="intestazione">
     
     <h1>GESTIONE ARCHIVIO FILM</h1>
     <hr>
     </div>
       
       <div id ="divhr">
           <p> <p>

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

Titolo Film: <input type="text" name="titolofilm"  maxlength="80" size ="82"> </p></p>
<p> <p>
    Contenuto: <textarea name="contenuto" rows="5" cols="40"> </textarea>
</p></p>

<p> <p>
 
  

</div> 
</form>
       
           <div id ="inviodati">
           
          
    <input type = "submit" name="reg" value="Invio iscrizione" />
      </div> </div>
    
    </head>
    <body>
        <?php
   require_once("connetti.php");
        require_once("data.php");
        echo "</hr>";

$nomefilm = mysql_real_escape_string(strtolower(trim ($_POST['nomefilm'])));
$contenuto = mysql_real_escape_string(strtolower(trim ($_POST['contenuto'])));
      

        echo '<div id ="letturadvd">';
 $sub = isset($_GET['dir']) ? $_GET['dir'] : "";  
 $path = 'e:\\';
$path = $path. "$sub";
$dh = opendir($path);
$i=1;
while (($file = readdir($dh)) !== false) {
 
     
    
    echo '<div id = "risultato">';
echo "Dati inseriti correttamente nel db";

echo "</div>";
    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);   
echo "</div>";

//*Inizio la procedura per inserire i dati nel db

          if(isset($_POST['reg'])){

$nomefilm = mysql_real_escape_string(strtolower(trim ($_POST['nomefilm'])));
$contenuto = mysql_real_escape_string(strtolower(trim ($_POST['contenuto'])));


$query="INSERT INTO archdvd (nomefilm, contenuto)  VALUES('$nomefilm','$contenuto')";

$q_i=mysql_query($query);

      
// Controllo l'esito
if (!q_i) {
die("Errore nella query $query: " . mysql_error());
} else {
    
    echo '<div id = "risultato">';
echo "Dati inseriti correttamente nel db";

echo "</div>";

}
        }  


        ?>
    </body>
</html>

Poi c'è la tabella creata in questa maniera qua:

archdvv è il nome della tabella e il nome del db è archiodvd. Questo è la struttura che ho fatto:

PHP:
create table arcdvd (

idfilm 		INT NOT NULL AUTO_INCREMENT,
nomefilm 	        VARCHAR(80) NOT NULL,
contenuto	        VARCHAR(255) NOT NULL,
PRIMARY KEY (idfilm)
);

Il succo del programma è di memorizzare nella textarea (contenuto) tutto il dvd. vi prego mi potreste dare una mano per favore è abbastanza urgente grazie.
 
Ciao a prima occhiata vedo già che c'è un errore su:
INSERT INTO archdvd
e
create table arcdvd

la prima ha H la seconda è senza H
 
ma che errore ti da ?

Comunque qui c'è altri errori:
PHP:
while (($file = readdir($dh)) !== false) { 
     
    echo '<div id = "risultato">'; 
echo "Dati inseriti correttamente nel db"; 

echo "</div>"; 
    if($file != "." && $file != "..") { 
}

perchè stampi quei echo di conferma?
e poi stai aprendo e chiudendo un if senza nessuna operazione dentro.
 
PHP:
if(isset($_POST['reg'])){ 

$nomefilm = mysql_real_escape_string(strtolower(trim ($_POST['nomefilm']))); 
$contenuto = mysql_real_escape_string(strtolower(trim ($_POST['contenuto']))); 


$query="INSERT INTO archdvd (nomefilm, contenuto)  VALUES('$nomefilm','$contenuto')"; 
echo $query;
die;

$q_i=mysql_query($query); 

       
// Controllo l'esito 
if (!q_i) { 
die("Errore nella query $query: " . mysql_error()); 
} else { 
     
    echo '<div id = "risultato">'; 
echo "Dati inseriti correttamente nel db"; 

echo "</div>"; 

} 
        }   


        ?>

sostituisci la parte con questa e dimmi che ti ritorna.
 
Allora la tabella è arcdvd ho provato il tuo codice ma non va ugualmente :( Mi da subito "dati inseriti nel db correttamente", Vado a vedere e il db è vuoto come il mio portafoglio.
 
Il perchè ti da quel messaggio te l'ho spiegato nel post prima.

Inoltre c'è un altro errore. Che non ti fa arrivare al salvataggio. L' input submit deve essere dentro il tag <form></form>
e non fuori.
 
Ciao,

Ti posto qua quanto ho modificato secondo le tue indicazioni. Sicuramente ci sono degli errori perchè non mi memorizza ne il titolo del fil e ne il contenuto:

letturadvd.php

PHP:
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    
    
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    
    <style type="text/css">
#intestazione{

position:absolute;
 width:100%;
 height:100px;
 top:0px;
 left:0px;
 text-align: center;
 font-family: Comic Sans MS;
 font-size: 100%
}     
#intestazione h2{
 position:absolute;
 left:10px;
 font-family: Comic Sans MS;
 font-size: 100%;
}
#divhr{
 position:absolute;
 top: 125px;
 font-family: Comic Sans MS;
 font-size: 100%;
}

#inviodati {
     
position: relative;
top: 315px;
 left:10px;

text-align: center;
font-family: Comic Sans MS;
}    
#risultato {

 position:absolute;
 top: 315px;
 text-align: center;
 font-family: Comic Sans MS;
 }
 
#letturadvd {

 position:absolute;
 top: 180px;
 left:95px;

 font-family: Comic Sans MS;
 }


</style>
   <body>
 <div id="intestazione">
     
     <h1>GESTIONE ARCHIVIO FILM</h1>
     <hr>
     </div>
       
       <div id ="divhr">
           <p> <p>

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

Titolo Film: <input type="text" name="titolofilm"  maxlength="80" size ="82"> </p></p>
<p> <p>
    Contenuto: <textarea name="contenuto" rows="5" cols="40"> </textarea>
</p></p>

<p> <p>
 
        <div id ="inviodati">

          
    <input type = "submit" name="reg" value="Invio iscrizione" />
      </div> </div>

</div> 
</form>
       
                   
    </head>
    <body>
        <?php
   require_once("connetti.php");
        require_once("data.php");
        echo "</hr>";
        echo '<div id ="letturadvd">';
 $sub = isset($_GET['dir']) ? $_GET['dir'] : "";  
 $path = 'c:\\';
$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);   
echo "</div>";

//*Inizio la procedura per inserire i dati nel db

          if(isset($_POST['reg'])){   
              

$nomefilm = mysql_real_escape_string(strtolower(trim ($_POST['nomefilm']))); 
$contenuto = mysql_real_escape_string(strtolower(trim ($_POST['contenuto'])));

$query="INSERT INTO arcdvd (nomefilm, contenuto)  VALUES('$nomefilm','$contenuto')";

$q_i=mysql_query($query);

      
// Controllo l'esito
if (!q_i) {
die("Errore nella query $query: " . mysql_error());
} else {
    
    echo '<div id = "risultato">';
echo "Dati inseriti correttamente nel db";

echo "</div>";

}
        }  


        ?>
    </body>
</html>
 
PHP:
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++;
}
    }

PHP:
$query="INSERT INTO arcdvd (nomefilm, contenuto)  VALUES('$nomefilm','$contenuto')";
echo $query; die;

dimmi cosa ti restituisce
 
Ah mi sono dimenticato, devi controllare anche i tag html perchè sono formattati in maniera sbagliata
 
Ciao,

Scusami per il ritardo della risposta ma prima stavo facendo una pennica. Il risultato ch emi da è il seguente:

Codice:
Notice: Undefined variable: nomefilm in C:\xampp\htdocs\Archdvd\letturadvd.php on line 120

Notice: Undefined variable: contenuto in C:\xampp\htdocs\Archdvd\letturadvd.php on line 120
INSERT INTO arcdvd (nomefilm, contenuto) VALUES('','')

Cosa vuol dire ciò ???? I campi esistono nella tabella. Ah tieni presente che il campo "contenuto" è un textarea.
 
Ciao guarda non avevo fatto caso ad una cosa gravissima.
La pagina html è formattata a caso. Pensavo fosse un errore di battitura tuo ma non è cosi. Ti consiglio prima di continuare su questa strada di iniziare con le cose semplici e guardarti le BASI.

PHP:
	<?php
		require_once("connetti.php");
		require_once("data.php");
		//*Inizio la procedura per inserire i dati nel db

		if(isset($_POST['reg'])){

		$nomefilm = mysql_real_escape_string(strtolower(trim ($_POST['nomefilm'])));
		$contenuto = mysql_real_escape_string(strtolower(trim ($_POST['contenuto'])));

		$query="INSERT INTO arcdvd (nomefilm, contenuto)  VALUES('$nomefilm','$contenuto')";

		$q_i=mysql_query($query);
		?>

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

			<style type="text/css">
                #intestazione {

                    position: absolute;
                    width: 100%;
                    height: 100px;
                    top: 0px;
                    left: 0px;
                    text-align: center;
                    font-family: Comic Sans MS;
                    font-size: 100%
                }
                #intestazione h2 {
                    position: absolute;
                    left: 10px;
                    font-family: Comic Sans MS;
                    font-size: 100%;
                }
                #divhr {
                    position: absolute;
                    top: 125px;
                    font-family: Comic Sans MS;
                    font-size: 100%;
                }

                #inviodati {

                    position: relative;
                    top: 315px;
                    left: 10px;
                    text-align: center;
                    font-family: Comic Sans MS;
                }
                #risultato {

                    position: absolute;
                    top: 315px;
                    text-align: center;
                    font-family: Comic Sans MS;
                }

                #letturadvd {

                    position: absolute;
                    top: 180px;
                    left: 95px;
                    font-family: Comic Sans MS;
                }

			</style>
			</head>
			<body>
				<div id="intestazione">

					<h1>GESTIONE ARCHIVIO FILM</h1>
					<hr>
				</div>

				<div id ="divhr">
					<p>
					

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

							Titolo Film:
							<input type="text" name="titolofilm"  maxlength="80" size ="82">
					</p>
					<p>
				
						Contenuto: 						<textarea name="contenuto" rows="5" cols="40"> </textarea>
					</p>

					
						<div id ="inviodati">

							<input type = "submit" name="reg" value="Invio iscrizione" />
						</div>
				</div>

			</form>


		<?php
	
		echo "</hr>";
		echo '<div id="letturadvd">';
			$sub = isset($_GET['dir']) ? $_GET['dir'] : "";
			$path = 'c:\\';
			$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);
			echo "
		</div>";
	

		// Controllo l'esito
		if (!q_i) {
		die("Errore nella query $query: " . mysql_error());
		} else {

		echo '<div id="risultato">';
			echo "Dati inseriti correttamente nel db";

			echo "</div>";

		}
		}

		?>
	</body>
</html>
 
Ciao,

Mi avevano detto che mettere il php all'inio prima della pagina html era una brutta cosa. Ma evidentemente chi mi ha detto questo adoperando i pacchetti preparati non è molto bravo a fare una pagina html. Comunque i tag html erano chiusi regolarmente difatti la chiusura la trovi in fondo alla pagina all'ultima riga del codice. Grazie del tuo aiuto prezioso. Una cosa il camo contentuo va trattato in un certo modo nella tabella ???? Visto che è un campo textarea ???

P.S.: Ho copiato il codice in toto e mi visualizza solo la data
 
Ultima modifica:

Discussioni simili