• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

deathseeker25

[PHP]Sistema de Submissão de Ficheiros v1.0

22 posts in this topic

Boas,

Decidi criar este sistema muito devido ao meu trabalho de grupo da disciplina de Área Projecto, que consistirá num CMS. Noutra ocasião apresentarei o projecto devidamente. Este script serviu também para aprender um pouco de Programação Orientada a Objectos no PHP. Devo dizer que as vantagens estão á vista na própria leitura do código e na facilidade com que o programador tem sempre que precisa de corrigir erros.

O objectivo do script é fazer com que os membros do grupo de trabalho possam submeter os ficheiros que vão escrevendo para a devida pasta aqui no servidor caseiro. Estive três dias á volta deste script para chegar a este resultado, no entanto pretendo fazer algumas melhorias nos próximos dias e muito dependendo das sugestões que me forem dando a todos os níveis.

/********* Sistema de Submissão de Ficheiros v. 1.0 ************* 
escrito por Rui Maia <deathseeker25@portugal-a-programar.org>**** 
*********************<lavrakid25@gmail.com> ********************* 
***************************************************************** 
****************************************************************/ 

error_reporting(E_ALL); 

class Pagina { 

var $corDeFundo = '#FFFFFF'; 
var $widthTabela = 531; 
var $heightTabela = 129; 
var $corTexto = '#000000'; 
var $pasta; 


function Pagina(){ 
} 
function define_corDeFundo($cor) 
{ 
$this->corDeFundo=$cor; 
} 
function define_widthTabela($width) 
{ 
$this->widthTabela=$width; 
} 
function define_heightTabela($height) 
{ 
$this->heightTabela=$height; 
} 
function define_corTexto($cor) 
{ 
$this->corTexto=$cor; 
} 
function define_destino($destino) 
{ 
$this->destino=$destino; 
} 
function enviaFicheiro($pasta) 
{ 
if(isset($pasta)) //se a pasta for escolhida através de código 
{ 
$this->pasta=$pasta; 
} 
else 
{ 
$PastaRui= "Rui"; 
$PastaRicardo= "Ricardo"; 
$PastaAndre= "Andre"; 
$PastaMichel= "Michel"; 
$PastaMarcelo= "Marcelo"; 

if($_POST['pasta'] == $PastaRui) 
{ 
if(is_dir($_SERVER['DOCUMENT_ROOT'] . "/files/rui")) 
{ 
$pasta = $PastaRui; 
} 
else 
{ 
$pasta = $_SERVER['DOCUMENT_ROOT'] . "\files\rui"; 
mkdir($pasta,0777,TRUE); 
$pasta = $PastaRui; 
} 
} 
if($_POST['pasta'] == $PastaRicardo) 
{ 
if(is_dir($_SERVER['DOCUMENT_ROOT'] . "/files/ricardo")) 
{ 
$pasta = $PastaRicardo; 
} 
else 
{ 
$pasta = $_SERVER['DOCUMENT_ROOT'] . "\files\ricardo"; 
mkdir($pasta,0777,TRUE); 
$pasta = $PastaRicardo; 
} 
} 
if($_POST['pasta'] == $PastaAndre) 
{ 
if(is_dir($_SERVER['DOCUMENT_ROOT'] . "/files/andre")) 
{ 
$pasta = $PastaAndre; 
} 
else 
{ 
$pasta=$_SERVER['DOCUMENT_ROOT'] . "\files\ricardo"; 
mkdir($pasta,0777,TRUE); 
$pasta= $PastaAndre; 
} 
} 
if($_POST['pasta'] == $PastaMichel) 
{ 
if(is_dir($_SERVER['DOCUMENT_ROOT'] . "/files/michel")) 
{ 
$pasta = $PastaMichel; 
} 
else 
{ 
$pasta=$_SERVER['DOCUMENT_ROOT'] . "\files\michel"; 
mkdir($pasta,0777,TRUE); 
$pasta= $PastaMichel; 
} 
} 
if($_POST['pasta'] == $PastaMarcelo) 
{ 
if(is_dir($_SERVER['DOCUMENT_ROOT'] . "/files/marcelo")) 
{ 
$pasta = $PastaMarcelo; 
} 
else 
{ 
$pasta=$_SERVER['DOCUMENT_ROOT'] . "\files\marcelo"; 
mkdir($pasta,0777,TRUE); 
$pasta = $PastaMarcelo; 
} 
} 
} 
if(!empty($_FILES['enviarFicheiro'])) 
{ 
$destino = $_SERVER['DOCUMENT_ROOT'] . "/files/" . $pasta . "/"; 
$destino.= $_FILES['enviarFicheiro']['name']; 
} 
if(move_uploaded_file($_FILES['enviarFicheiro']['tmp_name'], $destino)) 
{ 
echo '<span class="Estilo1">O arquivo foi enviado com sucesso! 
<br /> 
Se pretende enviar outro arquivo, clique <a href="upload_ficheiros.php">aqui</a>.</span>'; 
} 

else 
{ 
echo 'O arquivo não pode ser enviado!'; 
} 
} 
function mostraPagina() 
{ 
echo sprintf('<head><style type="text/css"> 
<!-- 
body,td,th { 
color: #000000; 
} 
body { 
font-family: Verdana, sans-serif; 
color: white; 
background-image: url(fundo.jpg); 
background-repeat: repeat; 
font-size: 12px; 
background-color: #FFFFFF; 
} 
--> 


p { 
padding-left: 20px; 
} 

h1, h2 { 
padding-left: 10px; 
} 

#page { 
margin: 50px 25%; 
} 

#enviar_ficheiro ul 
{ 
list-style: none; 
padding: 0px; 
margin: 0px 0px 0px 2px; 
} 

#enviar_ficheiro li 
{ 
float: left; 
padding: 0px 2px 0px 2px; 
} 

#enviar_ficheiro li a 
{ 
background-color: silver; 
font-size: 9px; 
height: 18px; 
float: left; 
width: 96px; 
border: 1px solid black; 
font-weight: bold; 
text-decoration: none; 
text-align: center; 
} 

#banner { 
background-color: silver; 
width: 600px; 
height: 75px; 
border: 1px solid black; 
padding: 4px; 
margin: 4px; 
} 

#news { 
margin: 5px; 
font-size: 9px; 
border: 1px solid black; 
background-color: silver; 
} 

#header { 
border: 1px solid black; 
background-color: white; 
height: 117px; 
width: 618px; 
} 

h1 { 
font-size: 12px; 
} 

#body { 
margin-top: 35px; 
background-color: white; 
color: black; 
border: 1px solid black; 
width: 618px; 
} 

#footer { 
margin-top: 5px; 
font-size: 9px; 
color: black; 
font-weight: bold; 
border: 1px solid black; 
background-color: white; 
width: 618px; 
text-align: center; 
} 

#copy { 
margin: 4px 4px; 
border: 1px solid black; 
background-color: silver; 
} 

a:link, a:visited, a:hover, a:active {color:black; text-decoration:none;} 





.Estilo1 {color: #000000} 
</style> 
</head> 
<body> 
<div id="pagina"> 
<div id="banner"></div> 
<div id="enviarFicheiro"> 
<form name="enviar" enctype="multipart/form-data" method="post" action=""> 
<div align="justify"><span class="Estilo1">Ficheiro a enviar:</span> 
<input type="file" name="enviarFicheiro"> 
</div> 
<p align="justify" class="Estilo1">Quero enviar o ficheiro para a pasta do: 
<select name="pasta"> 
<option value="Rui">Rui</option> 
<option value="Ricardo">Ricardo</option> 
<option value="Michel">Michel</option> 
<option value="Marcelo">Marcelo</option> 
<option value="André">André</option> 
</select> 
</p> 
<p align="justify"> </p> 
<p align="justify"> 
<input type="submit" name="Enviar"> 
</p> 
</form> 
</div> 
<div id="footer"> 
<div id="copy"> 
<p>deathseeker25 Productions</p> 
</div> 
</div> 
</div> 


</body> 
',$this->corTexto, 
$this->corDeFundo, 
$this->widthTabela, 
$this->heightTabela); 
} 

} 
$pagina=new Pagina(); 
$pagina->mostraPagina(); 
if($_POST) 
{ 
$pagina->enviaFicheiro(); 
}

Espero todo o tipo de comentários e sugestões... ;)

0

Share this post


Link to post
Share on other sites

Estive a analisar um pouco o código e vi que repetes muito código para cada pessoa.

O que eu faria era criar um array com todas as pessoas e depois dependendo da pessoa escolhida ia buscar as informações ao array de forma a tornar o código mais compacto. ;)

0

Share this post


Link to post
Share on other sites

Pelo que pude perceber isto assemelha-se a aquilo que eu ando sempre a pensar há algumtempo e até já dei uma sugestão a um elemento do fórum para fazer, que é um controlo de versões de ficheiros on-line.

Acho que um servidor desse sempre a funcionar 24/24 horas daria mito jeito a qualquer um.  Ainda a semana passada tive de ir todos os dias para a faculdade por causa dum trabalho e para garantir que quando chegasse a casa tinha a versão do trabalho que fiz enviava um mail para mim mesmo.

Ora se tivesse um sistema on-line de controlo de versões escusava de entupir a minha caixa de correio ;), mas nesse caso teria de ser um sistema com bastante segurança para garantir que ninguém veja os meus ficheiros.

Finalizando, bom trabalho! :P

0

Share this post


Link to post
Share on other sites

Pelo que pude perceber isto assemelha-se a aquilo que eu ando sempre a pensar há algumtempo e até já dei uma sugestão a um elemento do fórum para fazer, que é um controlo de versões de ficheiros on-line.

Acho que um servidor desse sempre a funcionar 24/24 horas daria mito jeito a qualquer um.  Ainda a semana passada tive de ir todos os dias para a faculdade por causa dum trabalho e para garantir que quando chegasse a casa tinha a versão do trabalho que fiz enviava um mail para mim mesmo.

Ora se tivesse um sistema on-line de controlo de versões escusava de entupir a minha caixa de correio ;), mas nesse caso teria de ser um sistema com bastante segurança para garantir que ninguém veja os meus ficheiros.

basicamente precisas de um servidor de SVN ou CVS (ou outro parecido)...

0

Share this post


Link to post
Share on other sites

Estive a analisar um pouco o código e vi que repetes muito código para cada pessoa.

O que eu faria era criar um array com todas as pessoas e depois dependendo da pessoa escolhida ia buscar as informações ao array de forma a tornar o código mais compacto. ;)

Sim, de facto optei por apressar as coisas nesse aspecto e fazer tudo muito de forma simples mas longa e repetitiva. Pensei exactamente em criar um array com as pessoas e fazer a repetição do processo através de um ciclo for, mas estava com vontade de ver o resultado final e portanto apressei-me a escrever código bruto. Resultado: mais linhas de código, logo mais confusão.

Já agora, Triton, podes demonstrar na prática de que forma aquilo em que pensaste?

Pelo que pude perceber isto assemelha-se a aquilo que eu ando sempre a pensar há algumtempo e até já dei uma sugestão a um elemento do fórum para fazer, que é um controlo de versões de ficheiros on-line.

Acho que um servidor desse sempre a funcionar 24/24 horas daria mito jeito a qualquer um.  Ainda a semana passada tive de ir todos os dias para a faculdade por causa dum trabalho e para garantir que quando chegasse a casa tinha a versão do trabalho que fiz enviava um mail para mim mesmo.

Ora se tivesse um sistema on-line de controlo de versões escusava de entupir a minha caixa de correio :D, mas nesse caso teria de ser um sistema com bastante segurança para garantir que ninguém veja os meus ficheiros.

Finalizando, bom trabalho! :D

Hipnoted, esse é um projecto-futuro do P@P já pensado há algum tempo. Pessoalmente vejo grande utilidade nessa ferramenta, já que será mais um motivo para que os utilizadores da comunidade passem mais tempo por cá e a trabalhar (uma boa percentagem dos membros do P@P passa cá demasiado tempo a "ver coisas").

Estive a estudar algumas alternativas, de modo a não estarmos a reinventar a roda, e realmente existe a possibilidade de construír uma plataforma integrada onde as coisas funcionem. Digamos que, o objectivo, no fundo, será criar um sourceforge nacional...na primeira fase. :P

0

Share this post


Link to post
Share on other sites

só não gosto duma coisa à partida, código não identado ;)

enfim, acho que tens aí uns qts erros "graves" (\files\michel for exemplo) e usas um if para cada variável pre definida. era preferível carregar os users para uma array e dps usares um foreach($arr as $user => $homedir).

E por agora é só isso, li o código só na diagonal.

0

Share this post


Link to post
Share on other sites

só não gosto duma coisa à partida, código não identado :P

enfim, acho que tens aí uns qts erros "graves" (\files\michel for exemplo) e usas um if para cada variável pre definida. era preferível carregar os users para uma array e dps usares um foreach($arr as $user => $homedir).

E por agora é só isso, li o código só na diagonal.

O código por acaso estava identado. E muito bem identado, acredita. ;) Ficou assim logo que o copiei para o post, mas no ficheiro que estou a alterar está realmente bem identado.

Quanto á sugestão de carregar num array e utilizar o foreach, achei uma boa ideia. Vou experimentar. :D

0

Share this post


Link to post
Share on other sites

Acho que devias colocar os users num array... deixa-me tentar mostrar-te no que estou a pensar

class Pagina {
     
       var $PastasDir = $_SERVER['DOCUMENT_ROOT'] . "/files/";
       var $usuarios = array( 'Rui', 'Ricardo', 'Andre', 'Michel', 'Marcelo' );

function EnviarFicheiros () {

foreach( $this->usuarios as $user ) {

if( $_POST['pasta'] == $user ) {

if(is_dir( $this->PastasDir.$user ) ) {

$pasta = $user;

} else {

$pasta = $this->PastasDir.$_POST['pasta'];

mkdir($pasta,0777,TRUE);

    }
   }
}
}
}

0

Share this post


Link to post
Share on other sites

Eu tinha tentado fazer assim:

$array=array("$PastaRui" => "rui", 
					 "$PastaRicardo" => "ricardo",
					 "$PastaAndre" => "andre",
					 "$PastaMichel" => "michel",
					 "$PastaMarcelo" => "marcelo" 
					 );

		foreach($array as $utilizador => $homedir)
		{
			if($_POST['pasta'] == $utilizador)
			{
				if(is_dir($_SERVER['DOCUMENT_ROOT'] . "/files/" . $homedir))
				{
					$pasta=$utilizador;
				}
				else
				{
					$pasta = $_SERVER['DOCUMENT_ROOT'] . "\files\\" . $homedir;
					mkdir($pasta,0777,TRUE);
					$pasta = $utilizador;
				}
			}

		} //fim do foreach
	}	//fim do else...

Mas não me estava a funcionar. Foi então que fiz refresh a este tópico e vi o snippet que tinhas postado e decidi experimentar. Alterei para o teu código e a página fica toda em branco. Deve ser algum problema relacionado com a variável $user... ;)

Aqui fica o código actual da função:

function enviaFicheiro()
{
	if(isset($pasta)) //se a pasta for escolhida através de código
	{
		$this->pasta=$pasta;
	}	
	else
	{
		foreach( $this->utilizadores as $user ) 
		{
				if( $_POST['pasta'] == $user ) 
			{
					if(is_dir( $this->PastasDir.$user ) ) 
				{
					$pasta = $user;
				} 
				else 
				{
						$pasta = $this->PastasDir.$_POST['pasta'];
						mkdir($pasta,0777,TRUE);
				}
			}
		}
	}			

	if(!empty($_FILES['enviarFicheiro']))
	{
		$destino = $_SERVER['DOCUMENT_ROOT'] . "/files/" . $pasta . "/";
		$destino.= $_FILES['enviarFicheiro']['name'];
	}
	if(move_uploaded_file($_FILES['enviarFicheiro']['tmp_name'], $destino))
	{
		echo '<span class="Estilo1">O arquivo foi enviado com sucesso!
			<br />
			Se pretende enviar outro arquivo, clique <a href="upload_ficheiros.php">aqui</a>.</span>';
	}

	else
	{
		echo 'O arquivo não pode ser enviado!';
	}
}

0

Share this post


Link to post
Share on other sites

Tenta alterar esta linha...

//...
$pasta = $this->PastasDir.$_POST['pasta'];
mkdir($pasta,0777,TRUE);
//...

fica assim:

//...
$pasta = $this->PastasDir.$user;
mkdir($pasta,0777,TRUE);
$pasta = $user;
//...

0

Share this post


Link to post
Share on other sites

Continua a não apresentar qualquer output (a página fica toda em branco).

Já tentei outras formas e o resultado é o mesmo.

Vou colocar aqui todo o código, no caso de quereres dar uma ajuda e assim tens acesso a todo o conteúdo do ficheiro:

<?php
/*********  Sistema de Submissão de Ficheiros v. 1.0 *************
escrito por Rui Maia <deathseeker25@portugal-a-programar.org>****
*********************<lavrakid25@gmail.com> *********************
*****************************************************************
****************************************************************/

error_reporting(E_ALL ^ E_NOTICE);

class Pagina {

var $corDeFundo = '#FFFFFF';
var $widthTabela = 531;
var $heightTabela = 129;
var $corTexto = '#000000';
var $pasta;
var $PastasDir = $_SERVER['DOCUMENT_ROOT'] . "/files/";
var $utilizadores = array( 'Rui', 'Ricardo', 'Andre', 'Michel', 'Marcelo' );

function Pagina(){
}
function define_corDeFundo($cor) 
{
	$this->corDeFundo=$cor;
}
function define_widthTabela($width)
{
	$this->widthTabela=$width;
}
function define_heightTabela($height)
{
	$this->heightTabela=$height;
}
function define_corTexto($cor)
{
	$this->corTexto=$cor;
}
function define_destino($destino)
{
	$this->destino=$destino;
}
function enviaFicheiro()
{
	if(isset($pasta)) //se a pasta for escolhida através de código
	{
		$this->pasta=$pasta;
	}	
	else
	{
		foreach( $this->utilizadores as $user ) 
		{
				if( $_POST['pasta'] == $user ) 
			{
					if(is_dir( $this->PastasDir.$user ) ) 
				{
					$pasta = $user;
				} 
				else 
				{
						$pasta = $this->PastasDir.$user;
						mkdir($pasta,0777,TRUE);
					$pasta = $user;
				}
			}
		}
	}			

	if(!empty($_FILES['enviarFicheiro']))
	{
		$destino = $_SERVER['DOCUMENT_ROOT'] . "/files/" . $pasta . "/";
		$destino.= $_FILES['enviarFicheiro']['name'];
	}
	if(move_uploaded_file($_FILES['enviarFicheiro']['tmp_name'], $destino))
	{
		echo '<span class="Estilo1">O arquivo foi enviado com sucesso!
			<br />
			Se pretende enviar outro arquivo, clique <a href="upload_ficheiros.php">aqui</a>.</span>';
	}

	else
	{
		echo 'O arquivo não pode ser enviado!';
	}
}
function mostraPagina()
{
	echo sprintf('<head><style type="text/css">
<!--
body,td,th {
color: #000000;
}
body {
font-family: Verdana, sans-serif;
color: white;
background-image: url(fundo.jpg);
background-repeat: repeat;
font-size: 12px;
background-color: #FFFFFF;
}
-->


p {
    padding-left: 20px;
}

h1, h2 {
    padding-left: 10px;
}

#page {
margin: 50px 25%;
}

#enviar_ficheiro ul
{
list-style: none;
padding: 0px;
margin: 0px 0px 0px 2px;
}

#enviar_ficheiro li
{
float: left;
padding: 0px 2px 0px 2px;
}

#enviar_ficheiro li a
{
background-color: silver;
font-size: 9px;
height: 18px;
float: left;
width: 96px;
border: 1px solid black;
font-weight: bold;
text-decoration: none;
text-align: center;
}

#banner {
background-color: silver;
width: 600px;
height: 75px;
border: 1px solid black;
padding: 4px;
margin: 4px;
}

#news {
margin: 5px;
font-size: 9px;
border: 1px solid black;
background-color: silver;
}

#header {
border: 1px solid black;
background-color: white;
height: 117px;
width: 618px;
}

h1 {
font-size: 12px;
}

#body {
margin-top: 35px;
background-color: white;
color: black;
border: 1px solid black;
width: 618px;
}

#footer {
margin-top: 5px;
font-size: 9px;
color: black;
font-weight: bold;
border: 1px solid black;
background-color: white;
width: 618px;
text-align: center;
}

#copy {
margin: 4px 4px;
border: 1px solid black;
background-color: silver;
}

a:link, a:visited, a:hover, a:active {color:black; text-decoration:none;}





.Estilo1 {color: #000000}
</style>
</head>
<body>
<div id="pagina">
<div id="banner"></div>
<div id="enviarFicheiro">
<form name="enviar" enctype="multipart/form-data" method="post" action="">
                        <div align="justify"><span class="Estilo1">Ficheiro a enviar:</span>                          
                          <input type="file" name="enviarFicheiro">
  					</div>
<p align="justify" class="Estilo1">Quero enviar o ficheiro para a pasta do: 
                   		  <select name="pasta">
                   		    <option value="Rui">Rui</option>
                   		    <option value="Ricardo">Ricardo</option>
                   		    <option value="Michel">Michel</option>
                   		    <option value="Marcelo">Marcelo</option>
                   		    <option value="André">André</option>
               		      </select>
</p>
      <p align="justify"> </p>
                        <p align="justify">
                          <input type="submit" name="Enviar">
                      </p>
</form>
</div>
<div id="footer">
				<div id="copy">
					<p>deathseeker25 Productions</p>
				</div>
  </div>
</div>

  
</body>
',$this->corTexto,
$this->corDeFundo,
$this->widthTabela,
$this->heightTabela);
}

}
$pagina=new Pagina();
$pagina->mostraPagina();
if($_POST)
{
$pagina->enviaFicheiro();
}

?>

0

Share this post


Link to post
Share on other sites

Acho que o erro esta na função...

Altera isto

function enviaFicheiro()

Para

function enviaFicheiro($pasta)

0

Share this post


Link to post
Share on other sites

kingless, o problema não estava aí. Já tinha tentado resolver através daí, mas realmente o problema estava nesta linha:

var $PastasDir = $_SERVER['DOCUMENT_ROOT'] . "/files/";

Para apresentar uma página em branco, era porque realmente havia problema com as variáveis da classe, ou então com uma das funções. Como as funções, aparentemente estavam todas a funcionar bem, então o problema só poderia residir nas variáveis da classe. O que resolvi fazer foi verificar em qual das duas novas variáveis da classe estava o problema, pelo que apaguei esta variável e finalmente foi produzido algum output.

Assim sendo, preferi passar a variável para dentro da função e cheguei  a este snippet...

<?php
/*********  Sistema de Submissão de Ficheiros v. 1.0 *************
escrito por Rui Maia <deathseeker25@portugal-a-programar.org>****
*********************<lavrakid25@gmail.com> *********************
*****************************************************************
****************************************************************/

error_reporting(E_ALL ^ E_NOTICE);

class Pagina {

var $corDeFundo = '#FFFFFF';
var $widthTabela = 531;
var $heightTabela = 129;
var $corTexto = '#000000';
var $pasta;
var $utilizadores = array( 'Rui', 'Ricardo', 'Andre', 'Michel', 'Marcelo' );

function Pagina(){
}
function define_corDeFundo($cor) 
{
	$this->corDeFundo=$cor;
}
function define_widthTabela($width)
{
	$this->widthTabela=$width;
}
function define_heightTabela($height)
{
	$this->heightTabela=$height;
}
function define_corTexto($cor)
{
	$this->corTexto=$cor;
}
function define_destino($destino)
{
	$this->destino=$destino;
}
function enviaFicheiro($pasta)
{
	if(isset($pasta)) //se a pasta for escolhida através de código
	{
		$this->pasta=$pasta;
	}	
	else
	{
		$PastasDir = $_SERVER['DOCUMENT_ROOT'] . "/files/";

		foreach( $this->utilizadores as $user ) 
		{
				if( $_POST['pasta'] == $user ) 
			{
					if(is_dir( $PastasDir . $user ) ) 
				{
					$pasta = $user;
				} 
				else 
				{
						$pasta = $PastasDir . $user;
						mkdir($pasta,0777,TRUE);
					$pasta = $user;
				}
			}
		}
	}			

	if(!empty($_FILES['enviarFicheiro']))
	{
		$destino = $_SERVER['DOCUMENT_ROOT'] . "/files/" . $pasta . "/";
		$destino.= $_FILES['enviarFicheiro']['name'];
	}
	if(move_uploaded_file($_FILES['enviarFicheiro']['tmp_name'], $destino))
	{
		echo '<span class="Estilo1">O arquivo foi enviado com sucesso!
			<br />
			Se pretende enviar outro arquivo, clique <a href="upload_ficheiros.php">aqui</a>.</span>';
	}

	else
	{
		echo 'O arquivo não pode ser enviado!';
	}
}
function mostraPagina()
{
	echo sprintf('<head><style type="text/css">
<!--
body,td,th {
color: #000000;
}
body {
font-family: Verdana, sans-serif;
color: white;
background-image: url(fundo.jpg);
background-repeat: repeat;
font-size: 12px;
background-color: #FFFFFF;
}
-->


p {
    padding-left: 20px;
}

h1, h2 {
    padding-left: 10px;
}

#page {
margin: 50px 25%;
}

#enviar_ficheiro ul
{
list-style: none;
padding: 0px;
margin: 0px 0px 0px 2px;
}

#enviar_ficheiro li
{
float: left;
padding: 0px 2px 0px 2px;
}

#enviar_ficheiro li a
{
background-color: silver;
font-size: 9px;
height: 18px;
float: left;
width: 96px;
border: 1px solid black;
font-weight: bold;
text-decoration: none;
text-align: center;
}

#banner {
background-color: silver;
width: 600px;
height: 75px;
border: 1px solid black;
padding: 4px;
margin: 4px;
}

#news {
margin: 5px;
font-size: 9px;
border: 1px solid black;
background-color: silver;
}

#header {
border: 1px solid black;
background-color: white;
height: 117px;
width: 618px;
}

h1 {
font-size: 12px;
}

#body {
margin-top: 35px;
background-color: white;
color: black;
border: 1px solid black;
width: 618px;
}

#footer {
margin-top: 5px;
font-size: 9px;
color: black;
font-weight: bold;
border: 1px solid black;
background-color: white;
width: 618px;
text-align: center;
}

#copy {
margin: 4px 4px;
border: 1px solid black;
background-color: silver;
}

a:link, a:visited, a:hover, a:active {color:black; text-decoration:none;}





.Estilo1 {color: #000000}
</style>
</head>
<body>
<div id="pagina">
<div id="banner"></div>
<div id="enviarFicheiro">
<form name="enviar" enctype="multipart/form-data" method="post" action="">
                        <div align="justify"><span class="Estilo1">Ficheiro a enviar:</span>                          
                          <input type="file" name="enviarFicheiro">
  					</div>
<p align="justify" class="Estilo1">Quero enviar o ficheiro para a pasta do: 
                   		  <select name="pasta">
                   		    <option value="Rui">Rui</option>
                   		    <option value="Ricardo">Ricardo</option>
                   		    <option value="Michel">Michel</option>
                   		    <option value="Marcelo">Marcelo</option>
                   		    <option value="André">André</option>
               		      </select>
</p>
      <p align="justify"> </p>
                        <p align="justify">
                          <input type="submit" name="Enviar">
                      </p>
</form>
</div>
<div id="footer">
				<div id="copy">
					<p>deathseeker25 Productions</p>
				</div>
  </div>
</div>

  
</body>
',$this->corTexto,
$this->corDeFundo,
$this->widthTabela,
$this->heightTabela);
}

}
$pagina=new Pagina();
$pagina->mostraPagina();
if($_POST)
{
$pagina->enviaFicheiro();
}

?>

0

Share this post


Link to post
Share on other sites

Pois.. o erro estava mesmo na variável da classe $pastasDir ja me tinha esquecido que não se pode utilizar variáveis nas variáveis das classes... (ex: var $cvar = $var; )

Se tivesses error_reporting(E_ALL); no principio da página já tínhamos detectado este erro a mais tempo ;):P (Parse error: syntax error, unexpected T_VARIABLE in...)

0

Share this post


Link to post
Share on other sites

Um pormenor:

Não deverias declarar a função tipo assim?

function enviaFicheiros($pasta = '')
{
...
}

Se o argumento $pasta não for fornecido, será gerado um erro do tipo "Warning", se não me engano, a avisar que o numero de argumentos passado na função não é correcto (uma vez que a função foi declarada com um argumento obrigatório).

0

Share this post


Link to post
Share on other sites

Um pormenor:

Não deverias declarar a função tipo assim?

function enviaFicheiros($pasta = '')
{
...
}

Se o argumento $pasta não for fornecido, será gerado um erro do tipo "Warning", se não me engano, a avisar que o numero de argumentos passado na função não é correcto (uma vez que a função foi declarada com um argumento obrigatório).

Muito bem visto. Era o único problema que faltava resolver, o do Warning.

kingless, o error_reporting(E_ALL); estava lá no princípio so script. Não sei porque razão não apontava nenhum erro... ;)

Muito obrigado pela ajuda.

0

Share this post


Link to post
Share on other sites

Tu colocaste no principio error_reporting(E_ALL ^ E_NOTICE); não colocaste apenas error_reporting(E_ALL);... quando tu colocas error_reporting(E_ALL ^ E_NOTICE); mostra todos os erros menos as notices foi por isso que não mostrou nada  :P se colocasses error_reporting(E_ALL); aquilo mostraria todos os erros.  ;)

0

Share this post


Link to post
Share on other sites

Tu colocaste no principio error_reporting(E_ALL ^ E_NOTICE); não colocaste apenas error_reporting(E_ALL);... quando tu colocas error_reporting(E_ALL ^ E_NOTICE); mostra todos os erros menos as notices foi por isso que não mostrou nada  :D se colocasses error_reporting(E_ALL); aquilo mostraria todos os erros.  ;)

Sim, de facto tens razão. Foi erro meu... :P

0

Share this post


Link to post
Share on other sites

sou novato nesta coisa do php e confesso que este codigo me vai ajudar imenso naquilo que penso fazer mas precisava de implementar mais algo aqui...

o problema é o seguinte:

estou a utilizar um slideshow o qual vai buscar as imagens dentro de pastas (que sao o nome das galerias) mas nao sei como fazer para gerir essas pastas e poder enviar imagens para dentro das mesmas.

sera que alguem me da umas luzes de que termos procurar para tentar construir o pretendido?

0

Share this post


Link to post
Share on other sites

Cool!

Boa malha.

Esta aqui um bom snippet.

Acho que volta e maia vou dar uma olhadela neste topico para ver uns fragmentos de codigo que acho uteis

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now