Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Formulário+imagens+directorio+email


Guest Xploit

Pergunta

Boas, é o seguinte , eu tenho tentado por este codigo a funcionar mas ele de momento apresenta um erro, o objectivo deste código é:

1º- apresenta um form com "nome" para preencher.

2º-após preenchido o form "nome" ele criará umas pasta com o nome posto em "nome".

3º-o "nome" foi enviado para o email configurado.

4º- Agora apareçerá um form com 5 6 campos a pedir para escolher a direcção de imagens.

5º-Apos a selecção de imagens carregaremos "enviar" e essas imagens iram todas para a pasta criada em "nome".

O problema reside ai, ele cria a pasta com a variavel $nome, faz upload dos ficheiros , só que em vez de fazer upload das

imagens para a pasta criada em $nome fica ca fora da pasta ou seja no root o ftp : |

teste_pastas.html:

<form action="teste_pastas.php" method="post">

Nome:<input name="nome" type="text" id="nome">

<input type="submit" value="Enviar" /> </form>
teste_pastas.php:
<?php
$nome=$_POST["nome"];
if($nome == "") {
  echo "OPSSS a variável NOME está vindo em branco, então o erro já começa aqui";
}

$msg = "Dados pessoais do cliente:";
$msg .= "Nome: \t$nome\n";

$cabecalho = "From: Hell- Novo cliente masculino-$nome";#Titulo da mensagem
mail("Aqui_é_o_email@hotmail.com", "Titulo", $msg, $cabecalho);
#Aonde se encontra Aqui_é_o_email@hotmail.com, deve estar o seu e-mail!

$criadir = mkdir ("$nome", 0777, true);
if(!$criadir) {
    echo "Erro ao criar o diretorio com o nome: $nome, tavelz você não tenha permissao";
}

//Diretório aonde ficará os arquivos
$dir = "$nome/";
//Extensões permitidas
$ext = array("gif","jpg","png");
//Quant. de campos do tipo FILE
$campos = 6;
//Formulário
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
<input type="hidden" nome="nome" value="'.$nome.'">
<input type="submit" name="submit" value=" OK ">
</form>';
//Se for enviado
if (isset($_POST['submit'])) {
$nome = $_POST['nome'];
//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];
//Contar arquivos enviados
$cont=0;
//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){
//Pegando o nome
$name = $f_name[$i];
//Verificando se o campo contem arquivo
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
if ($cont==0) {
echo "<b>Arquivo(s) enviados:<br /></b>";
}
echo $name." - ";
echo "<b>Apenas para conferir se o Nome está vindo:</b> $nome<br><br>";
//Movendo arquivo's do upload
$dir = $nome.$name;
echo "O direitorio que ele vai salvar e <b>$dir</b> está correto? caso sim deixa pra la hehehe";
$up = move_uploaded_file($f_tmp[$i], $dir);
//Status
if ($up==true) {
echo "<i>Enviado!</i>";
$cont++;
} else {
echo "<i>Falhou!</i>";
}
echo "<br />";
}
}
echo ($cont!=0) ? "<br><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>

o que puderá ser?

Cumprimentos

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Dá um echo na variável $dir para ver exatamente o que ela está carregando, pois pela lógica ela deve estar com o valor nome_do_diretoria/nome_do_arquivo, mas se ela não está movendo para o diretório é porque por algum motivo ela não está carregando o nome do diretório...

Volte o valor para:

$dir = $nome.$name;

Link para o comentário
Compartilhar em outros sites

  • 0

Fiz como voçê me disse e ficou assim:

$dir = "$nome/";

echo $dir;

/////////////////////

$dir = $nome.$name;

echo $dir;

//////////////////////

Foram estas duas partes do codigo que mudei com o echo $dir.

Resultado:

meto o nome no campo, apareçe o form de upload e em cima diz o seguinte:

Erro ao criar o diretorio com o nome: teste2, tavelz você não tenha permissaoteste2/

(o teste2 é a pasta)

selecciono o arquivo, faço upload e aconteçe exactamente o mesmo, vai o arq. para o root e a pasta é criada com as respectivas permissões.

Tá me dando cabo da cabeça esse code há mais de 2 meses hehe

Link para o comentário
Compartilhar em outros sites

  • 0

Uma coisa importante é, no post inicial você afirmou que o diretório estava sendo criado, só que agora você postou que está sendo exibida uma mensagem de erro dizendo que o diretório não está sendo criado, então fica a pergunta, o diretório efetivamente está sendo criado? Sim ou Não?

Quando a dar o echo, acho que você não entendeu o que pedi, eu quero apenas saber o que é impresso, no primeiro caso você disse:

"Erro ao criar o diretorio com o nome: teste2, tavelz você não tenha permissaoteste2/"

E no segundo caso aparece o que? Ou não aparece nada?

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite, foi erro mesmo meu..

Eu reformulei o código dos echos que tinha e etc e ta aconteçendo o seguinte:

$dir = "$nome/";

echo $dir;

/////////////////////

$dir = $nome.$name;

echo $dir;

//////////////////////

Foram estas duas partes do codigo que mudei com o echo $dir.

Resultado:

meto o nome no campo, apareçe o form de upload e em cima diz o seguinte:

teste2/

(o teste2 é a pasta)

selecciono o arquivo, faço upload e aconteçe exactamente o mesmo, vai o arq. para o root e a pasta é criada com as respectivas permissões e diz o seguinte no top do form:

"/"

Em baixo do form diz:

Arquivo(s) enviados:

5x6mvsl.jpg - Aqui deveria estar a variavel NOME :

5x6mvsl.jpgEnviado!

Total de arquivos enviados: 1

________________________________________

5x6mvsl.jpg é a imagem que fiz upload, o texto "Aqui deveria estar a variavel NOME :($nome)" eu chamei o $nome e pelos vistos ele veio em branco.

Link para o comentário
Compartilhar em outros sites

  • 0

Apareçe preenchida, mas quando faço o upload aconteçe o mesmo, a pasta ta la criada e a imagem fora.

<?php

$nome=$_POST["nome"];

if($nome == "") {

}

$msg = "Dados pessoais do cliente:";

$msg .= "Nome: \t$nome\n";

$cabecalho = "From: Hell- Novo cliente masculino-$nome";#Titulo da mensagem

mail("Aqui_é_o_email@hotmail.com", "Titulo", $msg, $cabecalho);

#Aonde se encontra Aqui_é_o_email@hotmail.com, deve estar o seu e-mail!

$criadir = mkdir ("$nome", 0777, true);

if(!$criadir) {

}

//Diretório aonde ficará os arquivos

$dir = "$nome/";

echo $dir;

//Extensões permitidas

$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE

$campos = 6;

//Formulário

echo '<form method=post" action="'.$_SERVER['PHP_SELF].'" enctype="multipart/form-data">

Arquivo: <input type="file" name="file[]"><br />

Arquivo: <input type="file" name="file[]"><br />

Arquivo: <input type="file" name="file[]"><br />

Arquivo: <input type="file" name="file[]"><br />

Arquivo: <input type="file" name="file[]"><br />

Arquivo: <input type="file" name="file[]"><br />

<input type="text" nome="nome" value="'.$nome.'">

<input type="submit" name="submit" value=" OK ">

</form>';

//Se for enviado

if (isset($_POST['submit'])) {

$nome = $_POST['nome'];

//Obtendo info. dos arquivos

$f_name = $_FILES['file']['name'];

$f_tmp = $_FILES['file']['tmp_name'];

$f_type = $_FILES['file']['type'];

//Contar arquivos enviados

$cont=0;

//Repetindo de acordo com a quantidade de campos FILE

for($i=0;$i<$campos;$i++){

//Pegando o nome

$name = $f_name[$i];

//Verificando se o campo contem arquivo

if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

if ($cont==0) {

echo "<b>Arquivo(s) enviados:<br /></b>";

}

echo $name." - ";

echo "<b>Aqui deveria estar a variavel NOME : </b>$nome<br><br>";

//Movendo arquivo's do upload

$dir = $nome.$name;

echo $dir;

$up = move_uploaded_file($f_tmp[$i], $dir);

//Status

if ($up==true) {

echo "<i>Enviado!</i>";

$cont++;

} else {

echo "<i>Falhou!</i>";

}

echo "<br />";

}

}

echo ($cont!=0) ? "<br><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";

}

?>

Editado por xploit
Link para o comentário
Compartilhar em outros sites

  • 0

O nome não estava indo porque causa disso:

nome="nome"

O correto é

name="nome"

Corrigi uns problema na lógica do script, agora está funcionando...

<?php


$nome=$_POST["nome"];
if($nome == "") {

}

$msg = "Dados pessoais do cliente:";
$msg .= "Nome: \t$nome\n";

$cabecalho = "From: Hell- Novo cliente masculino-$nome";#Titulo da mensagem
mail("Aqui_é_o_email@hotmail.com", "Titulo", $msg, $cabecalho);
#Aonde se encontra Aqui_é_o_email@hotmail.com, deve estar o seu e-mail!

//Diretório aonde ficará os arquivos
$dir = "$nome/";
echo $dir;
//Extensões permitidas
$ext = array("gif","jpg","png");
//Quant. de campos do tipo FILE
$campos = 6;
//Formulário
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'" enctype="multipart/form-data">
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
Arquivo: <input type="file" name="file[]"><br />
<input type="text" name="nome" value="'.$nome.'">
<input type="submit" name="submit" value=" OK ">
</form>';
//Se for enviado
if (isset($_POST['submit'])) {
$nome = $_POST['nome'];
//print_r($_POST);
$criadir = mkdir ("$nome", 0777);

//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];
//Contar arquivos enviados
$cont=0;
//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){
//Pegando o nome
$name = $f_name[$i];
//Verificando se o campo contem arquivo
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
if ($cont==0) {
echo "<b>Arquivo(s) enviados:<br /></b>";
}
echo $name." - ";
echo "<b>Aqui deveria estar a variavel NOME : </b>$nome<br><br>";
//Movendo arquivo's do upload
$dir = $nome.'/'.$name;
echo $dir;
$up = move_uploaded_file($f_tmp[$i], $dir);
//Status
if ($up==true) {
echo "<i>Enviado!</i>";
$cont++;
} else {
echo "<i>Falhou!</i>";
}
echo "<br />";
}
}
echo ($cont!=0) ? "<br><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Quero agradeçer sua paçiência de me explicar o código , está funcionando perfeitamente muito obrigado!

Eu como estou a fazer um site para um futuro site com pagamentos visa, mastercard, paypal, american express ..

Como faço para introduzir isso no meu site tenho que pagar alguma coisa a alguma entidade? Eu sou português de Portugal. lolol

Cumps

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...