Problema con $_SESSION

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova in questo modo

PHP:
<?php
ftp_put($conn, ($cartella."/".$_FILES['Filedata']['name']), $tempFile, FTP_BINARY);
?>
oppure (forse meglio)
PHP:
<?php
$cartella.="/";
ftp_put($conn, ($cartella.$_FILES['Filedata']['name']), $tempFile, FTP_BINARY);
?>
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
ciao
prova in questo modo

PHP:
<?php
ftp_put($conn, ($cartella."/".$_FILES['Filedata']['name']), $tempFile, FTP_BINARY);
?>
oppure (forse meglio)
PHP:
<?php
$cartella.="/";
ftp_put($conn, ($cartella.$_FILES['Filedata']['name']), $tempFile, FTP_BINARY);
?>

Putroppo niente... al primo caso avevo pensato anche io ma senza risultato.
I file vengono sempre uploadati nella root, eppure se facico un echo della variabile mi dice paolo_3/ , quindi è corretta...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
altro tentativo
PHP:
<?php
$cartella=$cartella."/".$_FILES['Filedata']['name'];
ftp_put($conn, $cartella, $tempFile, FTP_BINARY);
?>
se non funzia questo tentativo chiedo auxilim al SOMMO
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
ciao
altro tentativo
PHP:
<?php
$cartella=$cartella."/".$_FILES['Filedata']['name'];
ftp_put($conn, $cartella, $tempFile, FTP_BINARY);
?>
se non funzia questo tentativo chiedo auxilim al SOMMO

anche con questo stesso risultato, sempre nella root... anche io non riesco a capacitarmi, è tutto corretto maledizione! :D
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
ti propongo un altra soluzione, considerato che dalla root non si muove, cosa nè pensi se per ogni file caricato:

1) fà l'upload e lo mette in root
2) sposta il file in $cartella
3) elimina il primo dalla root

almeno a livello di concezione ti sembra fattibile?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si potrebbe con move_uploaded_file ( string $filename , string $destination ), pero sarebbe meglio riuscire a capire perche non funzia
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Dunque, ricominciamo da capo. Modifica così i due file:
PHP:
<?php
session_start();

$cartella = $_POST['azienda'];
$login = 'xyz';
$password = 'xyz';

$conn = ftp_connect('xx.xx.xx.xx') or die('Could not connect');
@ftp_login($conn, $login, $password);

$cartella = str_replace(' ', '_', $cartella);
@ftp_mkdir($conn, $cartella);
@ftp_chdir($conn, $cartella);

$_SESSION['cartella'] = $cartella;
print_r($_SESSION);
?>
PHP:
<?php
session_start();
print_r($_SESSION);

$cartella_up = $_SESSION['cartella'];

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $login = 'xyz';
    $password = 'xyz';
    
    $conn = ftp_connect('xx.xx.xx.xx') or die('Could not connect');
    @ftp_login($conn,$login,$password);
    ftp_put($conn, "{$cartella_up}/{$_FILES['Filedata']['name']}", $tempFile, FTP_BINARY);
    ftp_close($conn);
}
?>
E vedi cosa stampano a video.
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
sia la prima che la seconda pagina stampano Array ( [cartella] => test_3 ), ovvero il nome inserito nel campo azienda.

Con il tuo metodo però non effettua nessun upload, neanche in root.
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
sia la prima che la seconda pagina stampano Array ( [cartella] => test_3 ), ovvero il nome inserito nel campo azienda.

Con il tuo metodo però non effettua nessun upload, neanche in root.

Scusa, ho scritto fesserie... non avevo cambiato nel file flash il percorso dello script upload.php

Le pagine restituiscono le stringhe Array ( [cartella] => test_3 ) e i file vengono caricati, ma sempre nella root, non nella cartella inserita!
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
stò facendo test anche con le altre istruzioni ftp_fput, fpt_nb_put ecc , l'upload funziona ma mette i file sempre nella root non nella cartella definita.

Ancora non riesco a capire come mai se specifico io la cartella funziona perfettamente e se lo prende dalla variabile non riesce...

Così funziona
PHP:
ftp_put($conn, 'test1234/'.$_FILES['Filedata']['name'], $tempFile, FTP_ASCII);
così no
PHP:
ftp_put($conn, '$cartella_up/'.$_FILES['Filedata']['name'], $tempFile, FTP_ASCII);

:incazz2::incazz2::incazz2:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova ad usare direttamenta la sessione

PHP:
 ftp_put($conn, "{$_SESSION['cartella']}/{$_FILES['Filedata']['name']}", $tempFile, FTP_BINARY);

oppure prova a costruire il nome prima del put (eventualmente usa anche trim che non ci siano spazi che danno fastidio)

PHP:
$nome=trim($_SESSION['cartella'])."/".trim($_FILES['Filedata']['name']);//se trim non serve toglilo
ftp_put($conn, "{$nome}", $tempFile, FTP_BINARY);

poi un ultima cosa: usi linux? perchè se si credo che ci possono essere dei problemi con maiuscole/minuscole
cioè la cartella Test_3 è diversa dalla cartella test_3 (almeno credo)
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
ciao
prova ad usare direttamenta la sessione

PHP:
 ftp_put($conn, "{$_SESSION['cartella']}/{$_FILES['Filedata']['name']}", $tempFile, FTP_BINARY);

oppure prova a costruire il nome prima del put (eventualmente usa anche trim che non ci siano spazi che danno fastidio)

PHP:
$nome=trim($_SESSION['cartella'])."/".trim($_FILES['Filedata']['name']);//se trim non serve toglilo
ftp_put($conn, "{$nome}", $tempFile, FTP_BINARY);

poi un ultima cosa: usi linux? perchè se si credo che ci possono essere dei problemi con maiuscole/minuscole
cioè la cartella Test_3 è diversa dalla cartella test_3 (almeno credo)

Niente da fare, nè la prima nè la seconda soluzione (con e senza trim)....
si, il server monta Ubuntu, ma stò facendo test con frasi in minuscolo (test_1 , test2, prova123) quindi non penso che possa creare problema.
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
stò provando a concatenare un altra funzione, ftp_rename, in modo che una volta effetuato l'upload "rinomini" il file e lo sposti nella cartella

PHP:
	ftp_rename($conn,$_FILES['Filedata']['name'],$cartella_up.$_FILES['Filedata']['name']);

anche in questo caso, se metto $cartella_up mette i file nella root, se metto il nome della cartella li sposta perfettamente....

Ma non è che queste funzioni hanno qualche piccolo bug??? ;)
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
Il dominio da cui cerco di creare l'upload è hostato su aruba mnetre il server di arrivo è un server con ubuntu presente dal mio cliente.... mi chiedo....

Ma non è che aruba ha problemi nell'esecuzione di ftp_put e non riesce a far funzionare la parte in cui specifico la cartella di destinazione???
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi fai venire un dubbio: verifica i permessi di scrittura della cartella in cui vuoi uppare il file
dimenticavo: dopo la verifica potresti provare con


PHP:
move_uploaded_file ($_FILES['Filedata']['name'] , $cartella_up.$_FILES['Filedata']['name'] );
 
Ultima modifica:

paolofru

Utente Attivo
28 Ott 2009
37
0
0
per i permessi sono sicuro, perchè spostando un file con filezilla permette upload/cancellazione/rinomina.

Ora provo con il move_uploaded_file
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
ciao

non credo che c'entri, anche io carico i file con fz, ma se trimite script tento di scrivere in una cartella senza permessi non riesco a scriverci

Ho fatto 2 test, 1 con move_uploaded_file ed è risultato negativo (ho anche provato a mettere
PHP:
move_uploaded_file ($tempFile , $cartella_up.$_FILES['Filedata']['name'] );
oltre alla tua istruzione)

Ho rimesso ftp_put e per verificare se la cartella aveva i permessi ho inserito:
PHP:
if (ftp_chmod($conn, 0644, $cartella_up) !== false) {
 echo "$cartella_up chmoded successfully to 644\n";
} else {
 echo "could not chmod $cartella_up\n";
}
che mi ha anche stampato a schermo prova chmoded successfully to 644

anche in questo caso l'upload viene fatto nella root e non nella cartella... IL MISTERO SI INFITTISCE.... :dipser:
 

paolofru

Utente Attivo
28 Ott 2009
37
0
0
CARI SIGNORI CREDO DI AVER TROVATO LA SOLUZIONE

PHP:
<?php
session_start(); //riapro la sessione

$cartella_up = $_SESSION['cartella']; //memorizzo la sessione in una variabile
    $login = 'xyz'; //log ftp
    $password = 'xyz'; //pass ftp
    $conn = ftp_connect('xx.xx.xx.xx') or die('Could not connect'); //connessione ftp
    ftp_login($conn,$login,$password); //connessione ftp
	$contents = ftp_nlist($conn, "."); //creo la lista delle cartelle e la memorizzo nell'array

$key = array_search($cartella_up, $contents); //confronto l'array con la variabile
$cartella_upload = $contents[$key]."/"; //aggiungo lo slash alla variabile per il percorso
echo $cartella_upload;  //stampa per controllo

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
  ftp_put($conn, $cartella_upload.$_FILES['Filedata']['name'], $tempFile, FTP_BINARY); //upload del file
}
session_destroy(); //chiudo la sessione
ftp_close($conn);
?>

funziona, l'unico problema è che se torno alla prima pagina e memorizzo un altra sessione mi mantiene la prima...
Cercherò di risolverlo domani mattina...

YEAH :ilpirata::evil:
 
Discussioni simili
Autore Titolo Forum Risposte Data
N Problema con le SESSION PHP 6
G problema con session.gc_maxlifetime PHP 3
T problema con le session PHP 3
M problema con Session PHP 3
M Problema con l'utilizzo delle Session PHP 3
G problema con session.cookie_lifetime PHP 1
A problema con Session Classic ASP 4
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3

Discussioni simili