-
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>
-
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" /> <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> <input type="text" maxlength="20" size="20" name="cerca" /> <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
-
I file esistono nelle directory che hai scritto?
-
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.
http://dreadnaut.altervista.org/_alt...-sign-tiny.png edit:
Ho trovato il problema, ti carica l'immagine dei file .jpg, quelle con altre estensioni no, ma non so il perchè........