Jump to content
Fórum Script Brasil
  • 0

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


Guest Xploit

Question

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 to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

  • 0
Eu sou muito ver em php como dou esse echo é so fazer:

$dir = "$nome/";

echo ;

assim?

Cumps

Eu sou muito verde em php como dou esse echo é so fazer:

$dir = "$nome/";

echo ;

assim?

Cumps

Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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!";

}

?>

Edited by xploit
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...