Visualizzazione risultati 1 fino 4 di 4

Discussione: Errori con php

  1. #1
    Guest

    Predefinito Errori con php

    Ho realizzato questa pagina, ecco il sito http://astropvt.altervista.org/NuovaCartella/index.php :

    Codice:
    <?php
    	session_start();
    	if (isset($_POST['username'])) //Se esiste la variabile username in POST, significa che ho tentato il login
    	{
    		@require("accesso.php");  //Inmporta tutto il codice scritto nel file accesso.php
    	}
    	
    	define("UPLOAD_DIR", "./upload/"); //Definisce dove andranno i file caricati
    
    if(isset($_POST['action']) and $_POST['action'] == 'upload')//Se è stato richiesto di caricare un'immagine allora si guarda
    {
        if(isset($_FILES['user_file']))
        {
            $file = $_FILES['user_file'];
            if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
            {
                move_uploaded_file($file['tmp_name'], UPLOAD_DIR.$file['name']);
    	 
            }
    		//Adesso, creo un file di testo che contiene i tag associati ad una immagine
    		$nome_file = str_replace(".png","",$file['name']); //Sostituisce la prima stringa con la seconda, dentro la terza
    		$nome_file = str_replace(".gif","",$nome_file);
    		$nome_file = str_replace(".jpg","",$nome_file);
    		$nome_file = str_replace(".bmp","",$nome_file);
    		
    
    		$fp = fopen(UPLOAD_DIR.$nome_file.".txt","w+");
    		fwrite($fp,$_POST['tags']);
    		fclose($fp);
    		
    		$fp = fopen(UPLOAD_DIR."elenco.txt","a");
    		fwrite($fp,chr(0xA) . $file['name']);
    		fclose($fp);
    		
    		unset($_FILES,$_POST);
        }
    }
    
    	
    	//Vedo se devo ricercare qualche immagine
    	if (isset($_POST['cerca']))
    	{
    		$lines = file("./upload/elenco.txt"); //Apre il file elenco.txt spezzettandolo in tutte le sue righe
    		foreach($lines as $line_num => $line) //Per ogni linea del file elenco.txt (che contiene i nomi di tutti i files caricati) ti estrae tutte le immagini                                                con il tag ricercato
    		{
    			$temp = explode(".",$line); //Ti estrae il nome dell'imm. 
    			{
    				$lines_2 = file("./upload/" . $temp[0] . ".txt"); //Ti apre i tag dell'immagine
    				{
    					$temp_interno = explode(",",$lines_2[0]); 
    					$trovato = false;
    					for ($i=0;$i<count($temp_interno);$i++)
    					{
    						if (strcmp($_POST['cerca'],$temp_interno[$i]) == 0)
    						{
    							$trovato = true;
    							break;
    						}
    					}
    					if ($trovato == true)
    					{
    						$vettore_immagini[] = $temp[0] . ".jpg"; //Metto in coda all'array il nome dell'immagine trovata, aggiungendo l'estensione .jpg
    					}
    				}
    			}
    		}
    	}
    	
    ?>
    <!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Il sistema solare</title>
    <link href="css/main.css" rel="stylesheet" type="text/css" />
    <style type="text/css" media="screen">
    #personale
    {
    	display:none; /* di default, nascondo il div con il saluto all'utente, perchè esso non è loggato */
    }
    
    #mainContent table
    {
    	margin:0 auto;
    	border-collapse:separate;
    	border-spacing:20px;
    }
    
    #alert
    {
    	display:none;
    }
    
    #mainContent table td
    {
    	border:thin #CCC solid;
    	margin:10px;
    }
    
    ul
    {
    	list-style-type:none;
    }
    
    #mainContent li
    {
    	border:thin #CCC solid;
    }
    <?php
    if (isset($_SESSION['username']))
    {
    	echo "#personale { display:block; }\n#login { display:none; }";
    }
    
    if (isset($_POST['cerca']))
    {
    	echo "#alert { display:inline; }"; //Mostra se si è cercato un'immagine, l'alert in questo caso è un tag html
    }
    ?>
    </style>
    <!--[if IE 5]>
    <style type="text/css"> 
    /* inserire in questo commento aggiuntivo le correzioni del modello di riquadro css per IE 5* */
    .twoColFixLtHdr #sidebar1 { width: 230px; }
    </style>
    <![endif]--><!--[if IE]>
    <style type="text/css"> 
    /* inserire in questo commento condizionale le correzioni css per tutte le versioni di IE */
    .twoColFixLtHdr #sidebar1 { padding-top: 30px; }
    .twoColFixLtHdr #mainContent { zoom: 1; }
    /* la proprietà zoom proprietaria riportata sopra fornisce a IE l'elemento hasLayout necessario per evitare vari bug */
    </style>
    <![endif]-->
    
    </head>
    Ultima modifica di astropvt : 07-07-2009 alle ore 19.13.29

  2. #2
    Guest

    Predefinito

    Codice:
    <body class="twoColFixLtHdr">
    
    <div id="container">
      <div id="header">
        <h1>Il sistema solare</h1>
      <!-- end #header --></div>
      <div id="sidebar1">
      	<h3><a href="index.php">Home Page</a></h3>
        <h3>Pianeti terrestri</h3>
        <ul>
        	<li><a href="wip.php">Mercurio</a></li>
            <li><a href="venere.php">Venere</a></li>
            <li><a href="terra.php">Terra</a></li>
            <li><a href="marte.php">Marte</a></li>
        </ul>
        
        <h3>Pianeti gassosi</h3>
        <ul>
        	<li><a href="giove.php">Giove</a></li>
            <li><a href="saturno.php">Saturno</a></li>
            <li><a href="wip.php">Urano</a></li>
            <li><a href="wip.php">Nettuno</a></li>
        </ul>
        
        <h3>Pianeti nani</h3>
        <ul>
        	<li><a href="plutone.php">Plutone</a></li>
            <li><a href="sedna.php">Sedna</a></li>
            <li><a href="eris.php">Eris</a></li>
        </ul>
    <a href="http://www.wikipedia.org"><img src="immagini/affiliato_wiki.png" /></a>
      <!-- end #sidebar1 --></div>
      <div id="mainContent" style="background:none">
      	<div id="login">
        	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">Esegui il login
            	<input name="username" type="text" value="Nome Utente" size="18" maxlength="50" onclick="this.value=''"/>
            	<input name="password" type="password" size="18" maxlength="50" value="*******" onclick="this.value=''"/>
                <input type="submit" value="effettua login" />&nbsp;&nbsp;&nbsp;&nbsp;<a href="registrati.php">Registrati</a>
            </form>
            
        </div>
        <div id="personale">
        	Benvenuto <?php echo $_SESSION['username']; ?>
        </div>
        <h1> Gallery</h1>
        
        
    <form method="post" action="gallery.php" enctype="multipart/form-data">
       <table>
       	<caption>Inserisci una immagine</caption>
       		<tr>
            	<td>
      			<input type="hidden" name="action" value="upload" />
                <label>Vuoi caricare una immagine?</label>
                </td>
                <td><input type="file" name="user_file" /></td>
            </tr>
    		<tr>
            	<td>
            		Tags (separati da virgola)<input type="text" maxlength="50" name="tags" />
                </td>
                <td>
              		<input type="submit" value="Caricala" />
                </td>
            </tr>
        </table>
    </form>
    
    <div>
    <ul>
    	<form action="gallery.php" method="post">
        <li>Ricerca immagini</li>
        <li><label forname="cerca">Ricerca per tag</label>&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" maxlength="20" size="20" name="cerca" />&nbsp;&nbsp;&nbsp;<input type="submit" value="Inizia la ricerca" /></li>
        </form>
    </ul>
    </div>
    <span id="alert"><a href="gallery.php">Clicca qui per guardare tutte le immagini</a></span>
        <table>
    <?php
    if (!isset($_POST['cerca']))
    {
    	$lines = file("./upload/elenco.txt"); //Apre il file elenco.txt spezzettandolo in tutte le sue righe
    	$righe = (int)(count($lines) / 4);//Converte l'operazione il risultato della divisione in un numero intero
    	
    	if (count($lines) % 4 > 0) // Se il resto della divisione devo incrementare il numero delle righe della tab
    	{
    		$righe++;
    	}
    	
    	for ($i=0;$i<$righe;$i++) //Mostra le immagini    
    	{
    		echo "<tr>"; //STampa nella pagina il tag di riga
    		for ($j=0;$j<4;$j++)
    		{
    			$numero = (4 * $i) + $j;
    			if (isset($lines[$numero]))
    			{
    				$temp = explode(".",$lines[$numero]); //Pesco il nome dell'immagine senza l'estensione
    				$nome = "./upload/" . $temp[0] . ".txt"; //apro il file con i tags relativi a quella immagine
    				$fp2 = fopen($nome,"r");
    				$tags = fread($fp2,50);
    				fclose($fp2);
        			echo sprintf('<td><img src="%s" title="%s" alt="%s" height=90 width=90" /></td>',"./upload/" . $temp[0] . ".jpg",$tags,$tags);  //Stampo l'html che mostra l'immagine con le dimensioni date
    			}
    		}
    		echo "</tr>";
    	}
    	
    	/*foreach($lines as $line_num => $line) //Per ogni linea del file elenco.txt (che contiene i nomi di tutti i files caricati
    	{
    		echo "<tr><td>"; //stampa l'html di inizio di una cella
        	$temp = explode(".",$line); //Pesco il nome dell'immagine senza l'estensione
    		$nome = "./upload/" . $temp[0] . ".txt"; //apro il file con i tags relativi a quella immagine
    		$fp2 = fopen($nome,"r");
    		$tags = fread($fp2,50);
    		fclose($fp2);
        	echo sprintf('<img src="%s" title="%s" alt="%s" height=80 width=80" /></td></tr>',"./upload/" . $line,$tags,$tags);  //Stampo l'html che mostra                                                                                                                          l'immagine con le dimensioni date
    	}*/
    }
    else
    {
    	if (isset($vettore_immagini))
    	{
    		$righe = (int)(count($vettore_immagini) / 4);
    	
    	if (count($vettore_immagini) % 4 > 0)
    	{
    		$righe++;
    	}
    	
    	for ($i=0;$i<$righe;$i++)
    	{
    		echo "<tr>";
    		for ($j=0;$j<4;$j++)
    		{
    			$numero = (4 * $i) + $j;
    			if (isset($vettore_immagini[$numero]))
    			{
    				$temp = explode(".",$vettore_immagini[$numero]); //Pesco il nome dell'immagine senza l'estensione
    				$nome = "./upload/" . $temp[0] . ".txt"; //apro il file con i tags relativi a quella immagine
    				$fp2 = fopen($nome,"r");
    				$tags = fread($fp2,50);
    				fclose($fp2);
        			echo sprintf('<td><img src="%s" title="%s" alt="%s" height=90 width=90" /></td>',"./upload/" . $temp[0] . ".jpg",$tags,$tags);  //Stampo l'html che mostra l'immagine con le dimensioni date
    			}
    		}
    		echo "</tr>";
    	}
    		/*for ($i=0;$i<count($vettore_immagini);$i++)
    		{
    			echo "<tr><td>"; //stampa l'html di inizio di una cella
    			$temp = explode(".",$vettore_immagini[$i]); //Pesco il nome dell'immagine senza l'estensione
    			$nome = "./upload/" . $temp[0] . ".txt"; //apro il file con i tags relativi a quella immagine
    			$fp2 = fopen($nome,"r");
    			$tags = fread($fp2,50);
    			fclose($fp2);
    			echo sprintf('<img src="%s" title="%s" alt="%s" height=80 width=80" /></td></tr>',"./upload/" . $vettore_immagini[$i],$tags,$tags);  //Stampo l'html che mostra l'immagine con le dimensioni date
    		}*/
    	}
    	else
    	{
    		echo "<tr><td>Nessuna immagine trovata</td></tr>";
    	}
    }
    
    
    ?>
    </table>
    </div>
    <br class="clearfloat" />
    </div>
    </body>
    </html>

    Mi vengono questi errori, chi mi potrebbe aiutare:

    • Warning: fopen(./upload/ .txt) [function.fopen]: failed to open stream: Invalid argument in C:\xampp\htdocs\spazio_final\gallery.php on line 236
    • Warning: fread(): supplied argument is not a valid stream resource in C:\xampp\htdocs\spazio_final\gallery.php on line 237
    • Warning: fclose(): supplied argument is not a valid stream
      resource in C:\xampp\htdocs\spazio_final\gallery.php on line 238

  3. #3
    Guest

    Predefinito

    I file esistono nelle directory che hai scritto?

  4. #4
    Guest

    Predefinito

    Si.

    Dunque, le immagini che ho caricato fino ad ieri venivano visualizzate corretamente, oggi ho provato a caricarne una e mi sono venuti quegli errori :(

    Ho caricato le pagine del sito (http://astropvt.altervista.org/NuovaCartella/index.php), ora devo fare il database.

    edit:

    Ho trovato il problema, ti carica l'immagine dei file .jpg, quelle con altre estensioni no, ma non so il perchè........
    Ultima modifica di dreadnaut : 07-07-2009 alle ore 20.36.17

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •