Newsgroup: it.comp.www.php
Titolo: Upload file

Sto cercando di uplodare un file (o altri dati) per poi inserirne il
nome in un database.
Il mio script effettua prima una scelta tra il tipo di documento da
inserire (int, www, file = testo, link, file) con un javascript con cui
si seleziona il campo da considerare, a seconda del radio button
selezionato.
Nei primi due casi è tutto ok, ma ci sono problemi per il file come se
non passasse il valore corretto alla funzione php di upload.
Potrebbe essere colpa del javascript?
Grazie!
------
Questo è il mio codice (solo le parti fondamentali)
<form action="ins.php" method="post" enctype="multipart/form-data"
name="inserimento">
function CheckRadio(IdRadio)
   {
   document.inserimento.selez[IdRadio-1].checked=true;
   for (i=1; i<4;i++)
      IdRadio!=i?document.inserimento["testo"+i].value="":null;
   }   
 
<input type="radio" name="selez" value="int"><textarea type="text"
name="testo1" cols="55" rows="15" onchange='CheckRadio(1)'></textarea>
<input type="radio" name="selez" value="www"><input type="text"
name="testo2" size="70" maxlength="70" value="http://"
onchange='CheckRadio(2)'>
<input type="submit" value="inserisci">
<input type="reset" value="cancella">
----
Il secondo file è invece il seguente:
		if ($selez==int)
			{
				$testo=$_POST["testo1"];
			}
		if ($selez==www)
			{
				$testo=$_POST["testo3"];
			}
		if ($selez==file)
			{
				$testo=$_POST["testo3"];
				$source_file=$_POST["testo3"];
			}
e di conseguenza
																		if ($selez==file)
																			{
																					$ftp_server="
www.istitutovalfieri.it
";
																					$ftp_user_name="
108...@aruba.it
";
																					$ftp_user_pass="gqq3yv2o";
																					$destination_file="/";
																					// stabilire una connessione
																					$conn_id = ftp_connect($ftp_server);
																					// login con user name e password
																					$login_result = ftp_login($conn_id, $ftp_user_name,
$ftp_user_pass);
																					// controllo della connessione
																					if ((!$conn_id) || (!$login_result)) {
																							echo "La connessione FTP è fallita!";
																							echo "Tentativo di connessione a $ftp_server per
l'utente $ftp_user_name";
																							die;
																						} else {
																							echo "Connesso a $ftp_server, utente
$ftp_user_name";
																						}
																					// upload del file
																					$upload = ftp_put($conn_id, $destination_file,
$source_file, FTP_BINARY);
																					// controllo dello stato di upload
																					if (!$upload) {
																							echo "Il caricamento FTP non è andato a buon
fine!<br>";
																						} else {
																							echo "Caricato il file $source_file su
$ftp_server come $destination_file";
																						}
																					// chiudere il flusso FTP
																					ftp_quit($conn_id);
...con le relative procedure per l'inserimento dei valori del database
(che funzionano perfettamente)
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG




Grazie!
------





----


e di conseguenza
 
if ($selez==file)
     {
							$ftp_server="xxxx";
        $ftp_user_name="xxxx";
        $ftp_user_pass="xxxx";
        $destination_file="/";
// stabilire una connessione
$conn_id = ftp_connect($ftp_server);
// login con user name e password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// controllo della connessione
if ((!$conn_id) || (!$login_result)) {
 
echo "La connessione FTP è fallita!";
echo "Tentativo di connessione a $ftp_server per l'utente
$ftp_user_name";
 
die;
 
} else {
 
echo "Connesso a $ftp_server, utente $ftp_user_name";
																						}
 
// upload del file
 
$upload = ftp_put($conn_id, $destination_file, $source_file,
FTP_BINARY);
 
// controllo dello stato di upload
 
if (!$upload) {
 
echo "Il caricamento FTP non è andato a buon fine!<br>";
 
} else {
 
echo "Caricato il file $source_file su $ftp_server come
$destination_file";
 
}
 
// chiudere il flusso FTP
ftp_quit($conn_id);


 nome in un database.
Perche' stai usando le funzioni FTP?
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

 Perche' stai usando le funzioni FTP?
Ho adattato uno script già fatto che ho trovato sul web.


 Ho adattato uno script già fatto che ho trovato sul web.
IMHO ti conviene leggere il manuale su come si fa l'upload invece di
andare a tentoni usando codice che non sai che cosa fa:
http://www.php.net/manual/en/features.file-upload.php


 
http://www.php.net/manual/en/features.file-upload.php
ok, grazie del suggerimento.
ho provato ad utilizzare i comandi suggeriti e spiegati in quella pagina
il risultato ora è il seguente:
Possible file upload attack!
Here is some more debugging info:Array
(
    [testo3] => Array
        (
            [name] => headlines.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpeopGyk
            [error] => 0
            [size] => 187
        )
)
Il codice di errore 0 dovrebbe voler dire che il file è stato uplodato
ma in realtà non mi pare sia così.
Dove sbaglio secondo te?
Come mai non sono richiesti username e password per questa operazione?


 Come mai non sono richiesti username e password per questa operazione?
Chi li richiede?
Sei sicuro di aver configurato correttamente il web server e PHP?
Hai impostato correttamente i privilegi della cartella di destinazione?


 Hai impostato correttamente i privilegi della cartella di destinazione?
Non li specificati da nessuna parte, nel manuale di php non era
specificato nulla al riguardo.
Il web server e php non li posso configurare io perchè sto utilizzando
uno spazio in hosting.
La cartella è settata a 777.
