problema download file

Legolas_

Nuovo Utente
24 Ott 2008
9
0
0
Un saluto a tutta la community.
Ho un problema con php,non lo conosco benissimo,ma sono convinto che si tratta di qualche errore banale...
Allora in pratica tramite un form do la possibilità di caricare file tramite
PHP:
input type="file"
invio questo file nella stessa pagina in cui è presente il form,e carico il file sul server tramite questa procedura :

PHP:
$news = $_FILES['news']['tmp_name'];
		$query = "INSERT INTO news (news) VALUES ('$news')";
	
		mysql_db_query("nomedb",$query,$db);
	 if($news != ""){
	 copy($_FILES['news']['tmp_name'], "news/".$_FILES['news']['name']) or die("Impossibile caricare il file");

Fin quì tutto bene,il file viene caricato correttamente nella cartella "news",ora però dovrei stampare nella stessa pagina tanti link quanti sono i file presenti nella cartella "news",per dare la possibilità agli utenti di scaricare questi files.Procedo in questo modo:

PHP:
	 $data = mysql_db_query("nomedb","select * FROM news ",$db);
	 while($row = mysql_fetch_array($data)) {
	 $nome = $row["news"];

?>
<a href="news/<?=$row["news"];?>"><?=$nome?></a>

<?
}
}
}		

?>

e sicuramente commetto qualche errore,perchè al posto del nome dei file che ho inserito,visualizzo questo link : "C:/Programmi/EasyPHP1-8 mpphp5" ,che una volta aperto mi porta ad una pagina in cui un messaggio di errore mi dice che non ho i permessi per accedere al server...
so che sbaglio qualche stupidaggine,per favore datemi una mano...
 
perchè la variabile l'ho inserita dopo e mi son dimenticato di inserirla anche nella prima parte del link,dove c'è "row"..
scusa cosa intendi per "dov'è il ciclo?" ?? il mio problema non è quello visto che funziona bene il "while" ,cioè anche se il link che compare è sbagliato,comunque mi compare tante volte quanti sono gli elementi presenti nella tabella del database...
mi scuso se non sono stato tanto chiaro..
 
Ultima modifica:
ciao
non sono un esperto, ma secondo me la riga

PHP:
<a href="news/<?=$row["news"];?>"><?=$nome?></a>

dovrebbe essere modificata in

PHP:
<a href="news/<? echo=$row["news"];?>"><? echo=$nome?></a>

prova, poi mi sai dire

p.s.
è meglio quando apri php utilizzare <?php al posto di <? solamente
 
ciao
scusami ma da quello che so mettere "<?=" equivale a "<? echo "
comunque ho provato ma non cambia niente,grazie lo stesso per il consiglio...
 
prova un'altra cosa

1)guarda cosa hai dentro le variabili

echo "in rows ho: $row["news"]<br>";
echo "nel nome $nome <br>";

2) quando chiami la pagina (con ie o ff) guarda l'html (ie) o sorgente(ff)

dove hai posto il/i link dovresti vedere il codice htm della pagina cioè (non so i nomi quindi metto a caso)


<a href="news/new_1.php">news_1</a>
<a href="news/new_2.php">news_2</a>
//eccetera

se non vedi questo, c'è qualcosa che non quadra, firmato sauron
 
se faccio " echo $row["news"] ; "
mi compare la stessa scritta che compare quando metto il link,cioè :"C:/Programmi/EasyPHP1-8 mpphp5"

se guardo il codice sorgente,nella posizione in cui ho messo il link compare questo :

<a href="news/">C:/Programmi/EasyPHP1-8 mpphpB</a>
 
allora devi rivedere il caricamento del file, evidentemente

$news = $_FILES['news']['tmp_name'];

non va bene, prova solamente

$news = $_FILES['news']['name'];
 
se sostituisco in ogni posto 'tmp_name' con 'name' quando eseguo la pagina mi da il seguente errore :

Warning: copy(gpl.txt): failed to open stream: No such file or directory in c:\programmi\easyphp1-8\www\cartella\admin on line 14

alla linea 14 c'è questo:

PHP:
copy($_FILES['news']['name'], "news/".$_FILES['news']['name']) or die("Impossibile caricare il file");

grazie 1000 per l'aiuto!!non so proprio come fare..
 
...sostituisco in ogni posto 'tmp_name' con 'name' ...

no in ogni posto, con copy dovrebbe andare 'tmp_name'

solo dove prendi il nome

$news = $_FILES['news']['name'];

perche in $news deve andarci gpl.txt
 
Ultima modifica:
ho fatto come dici,ora non mi da più alcun errore,però non so perchè ma non mi inserisce più i file nel database :(
riposto un attimo il codice,perchè forse ho modificato qualcosa,non ci sto capendo più niente :confused:

PHP:
<?

		$news = $_FILES['news']['name'];
		$query = "INSERT INTO news (news) VALUES ('$news')";
	
		mysql_db_query("nomedb",$query,$db);
	 if($news != ""){
	 copy($_FILES['news']['tmp_name'], "news/".$_FILES['news']['name']) or die("Impossibile caricare il file");
	 $data = mysql_db_query("nomedb","select * FROM news ",$db);
	 while($row = mysql_fetch_array($data)) {
	

?>


<a href="news/<?=$row["news"]; ?>"> <?=$row["news"]; ?> </a>

<?	 

}
}
?>
 
no guarda che il problema principale l'ho risolto grazie al consiglio che mi hai dato nella pagina precedente(cioè sostituendo tmp_name' con 'name'...),per l'ultimo problema che ho avuto era un semplice errore di sintassi.
 

Discussioni simili