aiuto upload e displaying

  • Creatore Discussione Creatore Discussione GiuliaG
  • Data di inizio Data di inizio

GiuliaG

Nuovo Utente
26 Ago 2008
8
0
0
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("<", "&lt;", $titolo);
$titolo = str_replace(">", "&gt;", $titolo);
$autore = str_replace("<", "&lt;", $autore);
$autore = str_replace(">", "&gt;", $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? :confused:

grazie ;)

Giulia
 
...scusate

Ciao Giulia, benvenuta!

Immagino sia un problema di digtazione, ma il file si chiama save.asp ???

grazie Lukeonweb,
è un errore di digitazione: il file si chiama save.php.

Inoltre mi sono accorta che nel codice (quello inserito nella pagina html) che ho postato prima c'è un copia e incolla di troppo.. Lo riporto senza. Grazie!!!!!!!




<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 />
<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>
 
nessun messaggio di errore...

Questa variabile contiene il parent-path:

$allegato_dir = "../adminnews/upload/";

ovvero i ".." prima del percorso.

Potrebbero causare problemi.

Attiva la visualizzazione dell'errore 500 sul tuo browser:

http://www.aspcenter.net/articoli/47.asp

e fammi sapere esattamente che errore ricevi.

Ciao!


...compilo tutti i campi del form d'inserimento (titolo, testo, link, ecc.) incluso l'upload dell'allegato (ad es. un .pdf) e dopo il submit non ricevo nessun messaggio di errore dal server.

Ma quando vado ad aprire la pagina web della news, sono stati caricati correttamente tutti i dati tranne il file allegato. :crying:

Controllando anche via ftp la directory dove l'upload avrebbe dovuto trasferire il file allegato, anche questa è vuota :dipser:
 
In locale non ho il PHP installato e faccio fatica a fare un test veloce.

Io in genere - sia con PHP che con ASP - faccio cosa:

1. creo la news flaggandola come "non attiva" (uso un Tinyint (1) - 1 attivo, 0 non attivo)

2. faccio l'upload associandolo all'ID della notizia, in separata sede

3. attivo la notizia.

Prova a testare questo script:

http://www.appuntiphp.com/blog-23/tutorial-php/upload-di-file-in-php.html

Fammi sapere se ti funziona correttamente.
 
passo avanti!

In locale non ho il PHP installato e faccio fatica a fare un test veloce.

Io in genere - sia con PHP che con ASP - faccio cosa:

1. creo la news flaggandola come "non attiva" (uso un Tinyint (1) - 1 attivo, 0 non attivo)

2. faccio l'upload associandolo all'ID della notizia, in separata sede

3. attivo la notizia.

Prova a testare questo script:

http://www.appuntiphp.com/blog-23/tutorial-php/upload-di-file-in-php.html

Fammi sapere se ti funziona correttamente.


Grazie Luke :p

Nel mio file save.php ho sostituito il codice dell'upload dell'allegato con quello del tuo script (complimeti per il tuo sito! è già nei miei preferiti).

Ora il file dell'allegato parte e finalmente compare nella directory upload/ sul server :beer:
(...:confused: unica stranezza, sembra che arrivi a destinazione solo molto tempo dopo l'invio).

Invece non so ancora che cosa fare sulla pagina di visualizzazione della notizia, dove non c'è traccia dell'allegato (il link alla voce "Allegato" riporta la stessa path della pagina di visualizzazione: http://ecc..../view.php?id=27)
Forse il codice nell'html (e quello dello script in save.php)
non fa eseguire il display del file allegato, perchè non gli è stato associato bene l'ID della notizia? Grazie
G.
 
Ciao Giulia, grazie per l'aggiunta ai preferiti... sono contento che qualcuno, oltre me, apprezzi quel sito :D

Scherzi apparte, il problema probabilmente deriva dal fatto che il file ha un nome e tu tenti di visualizzarlo con un altro... come?
 
Ciao Giulia, grazie per l'aggiunta ai preferiti... sono contento che qualcuno, oltre me, apprezzi quel sito :D

Scherzi apparte, il problema probabilmente deriva dal fatto che il file ha un nome e tu tenti di visualizzarlo con un altro... come?

Ciao Luke, come ti dicevo, ho già risolto il problema dell'upload inserendo il codice del tuo script.



<?
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("<", "&lt;", $titolo);
$titolo = str_replace(">", "&gt;", $titolo);
$autore = str_replace("<", "&lt;", $autore);
$autore = str_replace(">", "&gt;", $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')";


if ($_POST["upload"] != "")
{
$percorso = "upload/";
$fdc_temp = $_FILES["fdc"]["tmp_name"];
$fdc_name = $_FILES["fdc"]["name"];
if (move_uploaded_file($fdc_temp, $percorso . $fdc_name))
{
echo "Upoload eseguito con successo";
}
else
{
echo "Si è verificato un errore in fase di upoload";
}
}



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();
?>




Ora vorrei che il file caricato apparisse come allegato della notizia.
Se puoi aiutarmi, dovresti indicarmi la riga di comando da inserire in corrispondenza del link dell'allegato (leggi sotto) nel seguente codice della pagina che gia' prevede il caricamento di tutti gli altri dati della notizia. In pratica come associo l'id della notizia al file caricato? Grazie!!

<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 FROM news WHERE id='$id'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$data = date("j/n/y", $row[data]);

?>
<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 />

<br />
<?php echo "<a href=QUALE CODICE VA INSERITO QUI?????????>Apri allegato</a><img src=../images/marcer.gif>";?>
<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>
 
ancora un problema

Grazie Luke :p

Nel mio file save.php ho sostituito il codice dell'upload dell'allegato con quello del tuo script (complimeti per il tuo sito! è già nei miei preferiti).

Ora il file dell'allegato parte e finalmente compare nella directory upload/ sul server :beer:
(...:confused: unica stranezza, sembra che arrivi a destinazione solo molto tempo dopo l'invio).

Invece non so ancora che cosa fare sulla pagina di visualizzazione della notizia, dove non c'è traccia dell'allegato (il link alla voce "Allegato" riporta la stessa path della pagina di visualizzazione: http://ecc..../view.php?id=27)
Forse il codice nell'html (e quello dello script in save.php)
non fa eseguire il display del file allegato, perchè non gli è stato associato bene l'ID della notizia? Grazie
G.


ciao Luke, non so se hai letto tutto il mio prcedente post:
ti dicevo che ho risolto l'upload del file allegato ma ora vorrei che il file caricato apparisse sulla pagina web come allegato della notizia.
Se puoi aiutarmi, sai dirmi qual è la riga di comando da inserire in corrispondenza del link dell'allegato? (leggi sotto nella pagina view.php: non so se eventualmente occorra anche aggiungere qualcosa nel tuo script di upload.php). In pratica come associo l'id della notizia al file caricato? Grazie!!

Di seguito ti riporto il contenuto del form d'inserimento (insert.php)
del file che gestisce l'upload (upload.php)
e quello della pagina web dove deve apparire tutto (view.php)

Grazie :tifoso:



<!-- Codice file insert.php -->


<?
include ("config.inc.php");
include ("top_foot.inc.php");

//intestazione
top();
?>
<form method="post" action="upload.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 />
<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="fdc" size="50">

<br />
<br />
Password:<br />
<input type="password" size="40" name="pass" />
<br /><br />
<input type="submit" name="upload" value="Upload">
</form>




<?
// chiusura pagina
foot();
?>




<!-- Codice file upload.php -->


<?
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("<", "&lt;", $titolo);
$titolo = str_replace(">", "&gt;", $titolo);
$autore = str_replace("<", "&lt;", $autore);
$autore = str_replace(">", "&gt;", $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')";


if ($_POST["upload"] != "")
{
$percorso = "upload/";
$fdc_temp = $_FILES["fdc"]["tmp_name"];
$fdc_name = $_FILES["fdc"]["name"];
if (move_uploaded_file($fdc_temp, $percorso . $fdc_name))
{
echo "Upoload eseguito con successo";
}
else
{
echo "Si è verificato un errore in fase di upoload";
}
}



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();
?>


<!-- Codice file view.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 FROM news WHERE id='$id'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
$data = date("j/n/y", $row[data]);

?>
<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 />

<br />
<?php echo "<a href=QUALE CODICE VA INSERITO QUI?????????>Apri allegato</a><img src=../images/marcer.gif>";?>
<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>
 
Nel database esiste una campo che ospita il nome dell'allegato? In quel caso potresti utilizzare qualcosa come:
PHP:
<?php echo "a href=\"../upload/".$row[allegato]."\">Apri allegato</a><img src=../images/marcer.gif>";?>
 
perche' non mi funziona???....

Nel database esiste una campo che ospita il nome dell'allegato? In quel caso potresti utilizzare qualcosa come:
PHP:
<?php echo "a href=\"../upload/".$row[allegato]."\">Apri allegato</a><img src=../images/marcer.gif>";?>


grazie ma purtroppo pur seguendo alla lettera (creato il nome campo del file allegato (fdc_name) e aggiunto codsice (vedi sotto punto 1) 2) e 3)) ma non funziona lo stesso: ora come link dell'allegato appare solo la directory dove è stato caricato il file tramite upload, ma del nome file nessuna traccia:crying: inoltre se lo clicco mi dice pure:

Forbidden

You don't have permission to access /adminnews/include/upload/ on this server.

1) file upload.php



<?
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'];

$fdc_name=$_REQUEST['fdc_name'];


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("<", "&lt;", $titolo);
$titolo = str_replace(">", "&gt;", $titolo);
$autore = str_replace("<", "&lt;", $autore);
$autore = str_replace(">", "&gt;", $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, fdc_name) VALUES ('$data', '$tematica', '$autore', '$mail', '$titolo', '$abstract', '$testo', '$link', '$fdc_name')";


if ($_POST["upload"] != "")
{
$percorso = "upload/";
$fdc_temp = $_FILES["fdc"]["tmp_name"];
$fdc_name = $_FILES["fdc"]["name"];
if (move_uploaded_file($fdc_temp, $percorso . $fdc_name))
{
echo "Upoload eseguito con successo";
}
else
{
echo "Si è verificato un errore in fase di upoload";
}
}



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();
?>




--------------------------------------

2) file insert.php
--------------------------------------




<?
include ("config.inc.php");
include ("top_foot.inc.php");

//intestazione
top();
?>
<form method="post" action="upload.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 />
<script type="text/javascript">
WYSIWYG.attach('textarea1');
</script>
<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="fdc_name" size="50">

<br />
<br />
Password:<br />
<input type="password" size="40" name="pass" />
<br /><br />
<input type="submit" name="upload" value="Upload">
</form>




<?
// chiusura pagina
foot();
?>


---------------------------------
3) file view.php
-----------------------------------



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>pagina dettaglio news</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body topmargin="0" bottommargin="0" rightmargin="0" leftmargin="0">

<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]);
?>
<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 />

<br />
<?php echo "<a href=../adminnews/include/upload/$row[fdc_name]>Apri allegato</a><img src=../images/marcer.gif>";?>

<br />
<br />
<?php echo "<a href=$row[link]>Visita il sito</a><img src=../images/marcer.gif>";?>
</div>
<!-- FINE DETTAGLIO NEWS -->
</td>
</tr>
</table>

</body>
</html>
 

Discussioni simili