Salve a tutti.
Premetto che sono una programmatrice alle prime armi :byebye:
Ho creato un piccolo cms (e relativo db Mysql) per gestire news (data, titolo, testo, ecc.).
Per implementare anche un allegato linkato all'articolo:
1) Ho creato il form d'inserimento:
<?
include ("config.inc.php");
include ("top_foot.inc.php");
//intestazione
top();
?>
<form method="post" action="save.php" enctype="multipart/form-data">
Titolo:<br />
<input type="text" size="40" name="titolo" />
<br /><br />
Data:<br />
<select name="giorno">
<?
for ($i=1; $i<=31; $i++)
echo "<option value=\"$i\">$i</option>";
?>
</select>
<select name="mese">
<option value="1">Gennaio</option>
<option value="2">Febbraio</option>
<option value="3">Marzo</option>
<option value="4">Aprile</option>
<option value="5">Maggio</option>
<option value="6">Giugno</option>
<option value="7">Luglio</option>
<option value="8">Agosto</option>
<option value="9">Settembre</option>
<option value="10">Ottobre</option>
<option value="11">Novembre</option>
<option value="12">Dicembre</option>
</select>
<select name="anno">
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2003">2006</option>
<option value="2004">2007</option>
<option value="2004">2008</option>
</select>
<br /><br />
Tematica:<br />
<input type="text" size="40" name="tematica" />
<br /><br />
Autore:<br />
<input type="text" size="40" name="autore" />
<br /><br />
E-mail:<br />
<input type="text" size="40" name="mail" />
<br /><br />
Abstract:<br />
<textarea cols="60" rows="40" name="abstract"></textarea><br />
<br />
Testo:<br />
<br />
<textarea id="textarea1" name="testo" style="width:560px;height:200px;">
</textarea><br />
<br />
<br /><br />
Link:<br />
<input type="text" size="40" name="link" />
<br /><br />
Allegato
<label>Caricare il documento allegato</label><br />
<input type="file" name="allegato">
<input type="hidden" name="MAX_FILE_SIZE" value="200000">
<br />
<br />
Password:<br />
<input type="password" size="40" name="pass" />
<br /><br />
<input type="submit" value="Invia2" />
</form>
<?
// chiusura pagina
foot();
?>
-------------------------------------
2) ho creato la pagina save.asp che gestisce l'upload:
<?
include("top_foot.inc.php");
include("config.inc.php");
top();
if ($pass != $pass): echo "Password errata";
$tematica=$_REQUEST['tematica'];
$titolo=$_REQUEST['titolo'];
$autore=$_REQUEST['autore'];
$mail=$_REQUEST['mail'];
$abstract=$_REQUEST['abstract'];
$testo=$_REQUEST['testo'];
$pass=$_REQUEST['pass'];
$giorno=$_REQUEST['giorno'];
$mese=$_REQUEST['mese'];
$link=$_REQUEST['link'];
$allegato=$_REQUEST['allegato'];
$lingua=$_REQUEST['lingua'];
elseif (trim($titolo) == "" OR trim($testo) == ""):
echo "I campi Titolo e Testo devono essere riempiti!";
else :
$tematica = addslashes(stripslashes($tematica));
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$abstract = addslashes(stripslashes($abstract));
$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$autore = str_replace("<", "<", $autore);
$autore = str_replace(">", ">", $autore);
$data = mktime("0", "0", "0", $mese, $giorno, $anno);
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "INSERT INTO news (data, tematica, autore, mail, titolo, abstract, testo, link) VALUES ('$data', '$tematica', '$autore', '$mail', '$titolo', '$abstract', '$testo', '$link')";
do {
if (is_uploaded_file($_FILES['allegato']['tmp_name'])) {
// Controllo che il file non superi i 18 KB
if ($_FILES['allegato']['size'] > 300000) {
$msg = "<p>Il file non deve superare i 300 KB!!</p>";
break;
}
// Verifico che sul sul server non esista già un file con lo stesso nome
// In alternativa potrei dare io un nome che sia funzione della data e dell'ora
if (file_exists('../upload/'.$_FILES['allegato']['name'])) {
$msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
break;
}
// Sposto il file nella cartella da me desiderata
if (!move_uploaded_file($_FILES['allegato']['tmp_name'], '../upload/'.$_FILES['allegato']['name'])) {
$msg = "<p>Errore nel caricamento dell'immagine!!</p>";
break;
}
}
} while (false);
echo $msg;
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente";
else
echo "Errore durante l'inserimento";
mysql_close($db);
endif; // chiude la verifica della presenza dei dati
foot();
?>
------------------------------------
3) e poi nell'html della pagina web dove deve essere visualizzato il dettaglio della new, ho inserito il seguente codice php :
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top" width="757" height="100%" background="../images/7_back.jpg" style="background-repeat:no-repeat ">
<!-- INIZIO DETTAGLIO NEWS -->
<? include("../adminnews/include/top_foot.inc.php");
include_once("../adminnews/include/config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$id=$_GET['id'];
$query = "SELECT data,tematica,titolo,autore,mail,testo,link,allegato FROM news WHERE id='$id'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$data = date("j/n/y", $row[data]);
$allegato_dir = "../adminnews/upload/";
?>
<div style="margin-left:35px; margin-top:25px " class="titoli">News ed Eventi</div>
<div style="margin-left:35px; margin-top:20px" class="data">
<?php echo "$data";?><br />
</div>
<div style="margin-left:35px; margin-top:20px" class="data">
<?php echo "$row[tematica]";?>
</div>
<div style="margin-left:35px; margin-top:12px; margin-right:30px " class="dark">
<h2>
<?php echo "$row[titolo]";?>
</h2>
</div>
<div style="margin-left:35px; margin-top:5px; margin-right:30px " class="green_bold">
di:
<?php
if ($row[mail] != "")
echo "<a href=mailto:$row[mail]> $row[autore]</a><br />";
else
echo "<b>$row[autore]</b>";
?>
</div>
<div style="margin-left:35px; margin-top:12px; margin-right:30px " class="main">
<?php echo "$row[testo]";?>
<br />
<br />
<?php echo "<a href=$row[allegato]>Allegato</a><img src=../images/marcer.gif>";?>
<br />
<a href="inno-upload_file.php?galleryId={$galleryId}"
<br />
<br />
<?php echo "<a href=$row[link]>Visita il sito</a><img src=../images/marcer.gif>";?>
</div>
<div style="margin-left:35px; margin-top:30px " class="dark">
<?php echo "<a href=all.php class=dark>Visualizza tutti gli articoli</a><img src=../images/marcer.gif>";
mysql_close($db);
foot();
?>
</div>
<!-- FINE DETTAGLIO NEWS -->
</td>
</tr>
</table>
---------------------------------------------------
Purtroppo l'inserimento di tutti i dati va buon fine, ma del file uploaddato nessuna traccia, nè nella directory sul server ../upload/
nè tanto meno come file allegato nella pagina web :dipser:
Qualcuno saprebbe dirmi dove sbaglio?
grazie
Giulia
Premetto che sono una programmatrice alle prime armi :byebye:
Ho creato un piccolo cms (e relativo db Mysql) per gestire news (data, titolo, testo, ecc.).
Per implementare anche un allegato linkato all'articolo:
1) Ho creato il form d'inserimento:
<?
include ("config.inc.php");
include ("top_foot.inc.php");
//intestazione
top();
?>
<form method="post" action="save.php" enctype="multipart/form-data">
Titolo:<br />
<input type="text" size="40" name="titolo" />
<br /><br />
Data:<br />
<select name="giorno">
<?
for ($i=1; $i<=31; $i++)
echo "<option value=\"$i\">$i</option>";
?>
</select>
<select name="mese">
<option value="1">Gennaio</option>
<option value="2">Febbraio</option>
<option value="3">Marzo</option>
<option value="4">Aprile</option>
<option value="5">Maggio</option>
<option value="6">Giugno</option>
<option value="7">Luglio</option>
<option value="8">Agosto</option>
<option value="9">Settembre</option>
<option value="10">Ottobre</option>
<option value="11">Novembre</option>
<option value="12">Dicembre</option>
</select>
<select name="anno">
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2003">2006</option>
<option value="2004">2007</option>
<option value="2004">2008</option>
</select>
<br /><br />
Tematica:<br />
<input type="text" size="40" name="tematica" />
<br /><br />
Autore:<br />
<input type="text" size="40" name="autore" />
<br /><br />
E-mail:<br />
<input type="text" size="40" name="mail" />
<br /><br />
Abstract:<br />
<textarea cols="60" rows="40" name="abstract"></textarea><br />
<br />
Testo:<br />
<br />
<textarea id="textarea1" name="testo" style="width:560px;height:200px;">
</textarea><br />
<br />
<br /><br />
Link:<br />
<input type="text" size="40" name="link" />
<br /><br />
Allegato
<label>Caricare il documento allegato</label><br />
<input type="file" name="allegato">
<input type="hidden" name="MAX_FILE_SIZE" value="200000">
<br />
<br />
Password:<br />
<input type="password" size="40" name="pass" />
<br /><br />
<input type="submit" value="Invia2" />
</form>
<?
// chiusura pagina
foot();
?>
-------------------------------------
2) ho creato la pagina save.asp che gestisce l'upload:
<?
include("top_foot.inc.php");
include("config.inc.php");
top();
if ($pass != $pass): echo "Password errata";
$tematica=$_REQUEST['tematica'];
$titolo=$_REQUEST['titolo'];
$autore=$_REQUEST['autore'];
$mail=$_REQUEST['mail'];
$abstract=$_REQUEST['abstract'];
$testo=$_REQUEST['testo'];
$pass=$_REQUEST['pass'];
$giorno=$_REQUEST['giorno'];
$mese=$_REQUEST['mese'];
$link=$_REQUEST['link'];
$allegato=$_REQUEST['allegato'];
$lingua=$_REQUEST['lingua'];
elseif (trim($titolo) == "" OR trim($testo) == ""):
echo "I campi Titolo e Testo devono essere riempiti!";
else :
$tematica = addslashes(stripslashes($tematica));
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$abstract = addslashes(stripslashes($abstract));
$titolo = str_replace("<", "<", $titolo);
$titolo = str_replace(">", ">", $titolo);
$autore = str_replace("<", "<", $autore);
$autore = str_replace(">", ">", $autore);
$data = mktime("0", "0", "0", $mese, $giorno, $anno);
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$query = "INSERT INTO news (data, tematica, autore, mail, titolo, abstract, testo, link) VALUES ('$data', '$tematica', '$autore', '$mail', '$titolo', '$abstract', '$testo', '$link')";
do {
if (is_uploaded_file($_FILES['allegato']['tmp_name'])) {
// Controllo che il file non superi i 18 KB
if ($_FILES['allegato']['size'] > 300000) {
$msg = "<p>Il file non deve superare i 300 KB!!</p>";
break;
}
// Verifico che sul sul server non esista già un file con lo stesso nome
// In alternativa potrei dare io un nome che sia funzione della data e dell'ora
if (file_exists('../upload/'.$_FILES['allegato']['name'])) {
$msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
break;
}
// Sposto il file nella cartella da me desiderata
if (!move_uploaded_file($_FILES['allegato']['tmp_name'], '../upload/'.$_FILES['allegato']['name'])) {
$msg = "<p>Errore nel caricamento dell'immagine!!</p>";
break;
}
}
} while (false);
echo $msg;
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente";
else
echo "Errore durante l'inserimento";
mysql_close($db);
endif; // chiude la verifica della presenza dei dati
foot();
?>
------------------------------------
3) e poi nell'html della pagina web dove deve essere visualizzato il dettaglio della new, ho inserito il seguente codice php :
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top" width="757" height="100%" background="../images/7_back.jpg" style="background-repeat:no-repeat ">
<!-- INIZIO DETTAGLIO NEWS -->
<? include("../adminnews/include/top_foot.inc.php");
include_once("../adminnews/include/config.inc.php");
top();
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
$id=$_GET['id'];
$query = "SELECT data,tematica,titolo,autore,mail,testo,link,allegato FROM news WHERE id='$id'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$data = date("j/n/y", $row[data]);
$allegato_dir = "../adminnews/upload/";
?>
<div style="margin-left:35px; margin-top:25px " class="titoli">News ed Eventi</div>
<div style="margin-left:35px; margin-top:20px" class="data">
<?php echo "$data";?><br />
</div>
<div style="margin-left:35px; margin-top:20px" class="data">
<?php echo "$row[tematica]";?>
</div>
<div style="margin-left:35px; margin-top:12px; margin-right:30px " class="dark">
<h2>
<?php echo "$row[titolo]";?>
</h2>
</div>
<div style="margin-left:35px; margin-top:5px; margin-right:30px " class="green_bold">
di:
<?php
if ($row[mail] != "")
echo "<a href=mailto:$row[mail]> $row[autore]</a><br />";
else
echo "<b>$row[autore]</b>";
?>
</div>
<div style="margin-left:35px; margin-top:12px; margin-right:30px " class="main">
<?php echo "$row[testo]";?>
<br />
<br />
<?php echo "<a href=$row[allegato]>Allegato</a><img src=../images/marcer.gif>";?>
<br />
<a href="inno-upload_file.php?galleryId={$galleryId}"
<br />
<br />
<?php echo "<a href=$row[link]>Visita il sito</a><img src=../images/marcer.gif>";?>
</div>
<div style="margin-left:35px; margin-top:30px " class="dark">
<?php echo "<a href=all.php class=dark>Visualizza tutti gli articoli</a><img src=../images/marcer.gif>";
mysql_close($db);
foot();
?>
</div>
<!-- FINE DETTAGLIO NEWS -->
</td>
</tr>
</table>
---------------------------------------------------
Purtroppo l'inserimento di tutti i dati va buon fine, ma del file uploaddato nessuna traccia, nè nella directory sul server ../upload/
nè tanto meno come file allegato nella pagina web :dipser:
Qualcuno saprebbe dirmi dove sbaglio?

grazie

Giulia