Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dave Howard

[ upload de arquivo ] problema

Recommended Posts

Pessoal boa tarde,

 

Estou escrevendo um pequeno sistema que funciona da seguinte forma:

 

1. cadastra-se o funcionário

2. assim que o cadastro é feito, o PHP cria uma pasta com o nome de login dele

3. o administrador tem a opção de fazer o upload de um arquivo para a pasta desse usuário

 

Na etapa 3 é que surge o meu problema, quando o administrador clica no link para efetuar o UPLOAD para o usuário, ele chama a seguinte URL ( para melhor entendimento do problema ):

 

http://dhschiff.hospedagem.org/bd/upload.p...mp;user=usuario << note aqui [ user=usuario ]

 

desse ponto segue o código do UPLOAD.PHP

 

<?$usuario = $_GET['user'];			  <<<<<< NOTEM AQUI, ELE BUSCA A INFORMAÇÃOecho $usuario;				<<<<<< ATÉ AQUI TUDO BEM, ELE IMPRIME NA TELA O NOME QUE BUSCOUif(!isset($_POST["submit"])) {	#Montamos um formulário básico para o envio do anexo	echo "Envio de anexo<br /><br />";	echo "<form action=\"upload.php\" id=\"form\" name=\"form\" method=\"post\" enctype=\"multipart/form-data\">";	echo "Enviar anexo (tamanho máximo de 5 MB; tipos de arquivos permitidos: ZIP; RAR):<br />";	echo "<input type=\"file\" name=\"DfAnexo\" size=\"50\" /><br />";	echo "<input name=\"submit\" type=\"submit\" value=\"Enviar\" class=\"button\" />  <input type=\"reset\" value=\"Redefinir\" class=\"button\" />";	echo "</form>";}else {	#Declaramos de onde estaremos recebendo o anexo (que será através da variável ($_FILES) de envio de arquivos por HTTP)	$DfAnexo = $_FILES["DfAnexo"]["name"];	#Se nenhum arquivo for selecionado para ser enviado, exibe a mensagem de erro abaixo	if(empty($DfAnexo)) {		include "upload_erro_semarquivo.php";	}	#Caso contrário, o arquivo é checado para ser processado	else {		#Declaramos um tamanho máximo para o envio do anexo em bytes (setamos como sendo 5120000 bytes (que é igual a 5 MB))		#Se o anexo for maior que 1 MB, exibe a mensagem de erro abaixo e termina a execução do script		if($_FILES["DfAnexo"]["size"] > 1024000) {			include "upload_erro_arquivogrande.php";			exit;		}		#Caso contrário, o arquivo continua a ser processado		if(!empty($_FILES["DfAnexo"]["tmp_name"]) and is_file($_FILES["DfAnexo"]["tmp_name"])) {			#Declaramos a pasta aonde o arquivo será salvo (esta pasta deve estar com chmod 777)			#Declaramos a data e hora atual que será inserida no nome do arquivo para registrar o exato momento do envio dele			$datahora = date("Ymd_His_");			#Re-declaramos a pasta aonde o arquivo será salvo, desta vez inserindo junto a ela o nome do arquivo			$caminho = $caminho.$datahora.$_FILES["DfAnexo"]["name"];			echo "Usuário solicitado -> ";		<<<<< DEVERIA APARECER DE NOVO NÉ?			echo $usuario;								<<<<< MAS NÃO APARECE! AQUI JÁ ZEROU!			echo "<BR>";			$path = "/home/users/b9/dhschiff/www/dhschiff.pandela.org/bd/usuarios/$usuario";			echo "Caminho relativo -> ";			echo $caminho;			echo "<BR>";			echo "Caminho absoluto -> ";			echo $path;			echo "<BR>";			#Declaramos os tipos de extensões aceitas para o envio do anexo			if(eregi(".rar$", $_FILES["DfAnexo"]["name"]) or eregi(".zip$", $_FILES["DfAnexo"]["name"])) {				#Copiamos o arquivo para a pasta setada mais acima				copy($_FILES["DfAnexo"]["tmp_name"],$caminho);				include "upload_sucesso.php";			}			#Se o anexo não tiver uma extensão aceita, exibe a mensagem de erro abaixo e termina a execução do script			else {				include "upload_erro_extensaoinvalida.php";				exit;			}		}		#Se o anexo tiver sido indicado através de um caminho inválido ou tenha um nome inválido, exibe a mensagem de erro abaixo e termina a execução do script		else {			include "upload_erro_falhagrave.php";			exit;		}	}}?>

Como podem notar, o valor da variável simplismente ZERA do nada! Isso tem me criado um problema enorme, pois só falta terminar essa parte para finalizar o sistema. Mas a variável simplismente DESAPARECE no meio do processo e fica em branco... como consequência, o UPLOAD vai pra pasta raiz do sistema, e o usuário não tem esse arquivo disponibilizado como deveria!

 

Já pensei numa solução usando MySQL... insiro o conteúdo lá e depois busco e apago... mas é tosco d+ isso!

Alguém tem idéia de como posso resolver isso? Pq eu esgotei minhas buscas no GOOGLE e nos livros e não vi nenhuma referência esclarecedora...

 

SOCORRO! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente susbstituir a alinha

 

echo "<form action=\"upload.php\" id=\"form\" name=\"form\" method=\"post\" nctype=\"multipart/form-data\">";

por esta ( acrescentar o upload.php isso: ?user=$usuario

 

echo "<form action=\"upload.php?user=$usuario\" id=\"form\" name=\"form\" method=\"post\" nctype=\"multipart/form-data\">";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.