Ir para conteúdo

POWERED BY:

Arquivado

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

lucianouru

[Resolvido] Como arrumar esse codigo

Recommended Posts

Olá pessoal to com um erro neste codigo:

UPLOAD.PHP

<?php
require("seguranca/conecta.php");

$id                     = $_POST["id"];

$figura         = $_FILES["logotipo"];
$nome_img       = $_POST["logotipo"];

if (isset($figura["name"]) && (strlen($figura["name"])>2))
{
       //Verificar tipo de imagem. Somente JPG é aceito por causa do arquivo de geração de thumbnails (thumb.php)
       if (($figura["type"] != "image/jpeg") && ($figura["type"] != "image/png"))
       {
               echo "<script> alert(\"Imagem: Formato de imagem invalido. Por favor, envie uma imagem tipo JPEG (.JPG)\"); history.go(-1); </script>";
               exit ();                
       }

       //Verificar se já há uma figura cadastrada
       if (strlen($nome_img) > 3) $nova_img = $nome_img;
       else
       {
               $img_nome = $figura["name"];
               $img_arquivo = pathinfo($img_nome);
               $img_extensao = $img_arquivo["extension"];

               $nova_img =  md5(date("YmdHis"));
               $nova_img = $nova_img.".".$img_extensao;

               //gravar o banco o nome da nova imagem
               $query = ("UPDATE zbr_logotipos SET logotipo = '$nova_img'");

       }

       $caminho = "imagem/".$nova_img;
       move_uploaded_file($figura["tmp_name"], $caminho);      
}

$query .= (" WHERE id = '$id'");

mysql_query($query) or die(mysql_error());
?>

ele fala os seguintes erros:

Notice: Undefined index: logotipo in C:\Arquivos de programas\EasyPHP-5.3.6.1\www\zanitabr\sistema\update.php on line 7

Warning: move_uploaded_file(imagem/834a68d630e0da6f3fa7714b24117cd6.PNG) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Arquivos de programas\EasyPHP-5.3.6.1\www\zanitabr\sistema\update.php on line 35

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Arquivos de programas\EasyPHP-5.3.6.1\tmp\php1304.tmp' to 'imagem/834a68d630e0da6f3fa7714b24117cd6.PNG' in C:\Arquivos de programas\EasyPHP-5.3.6.1\www\zanitabr\sistema\update.php on line 35

alguem tem ideia do que sejá?

ele não ta enviando a foto pro direitorio só tá registrando no banco de dados =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º - $_POST["logotipo"]; não existe. Talvez o nome do campo não seja esse.

2º - $caminho deveria ser apenas "imagem/".

 

Este é um exemplo de upload que encontrei no manual do PHP.

<?php
// Nas versões do PHP anteriores a 4.1.0, deve ser usado $HTTP_POST_FILES
// ao invés de $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
   print "O arquivo é valido e foi carregado com sucesso. Aqui esta alguma informação:\n";
   print_r($_FILES);
} else {
   print "Possivel ataque de upload! Aqui esta alguma informação:\n";
   print_r($_FILES);
}
print "</pre>";
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo eu crei o arquivo de envio que é esse:

<?php
require "seguranca/conecta.php";

$up = mysql_query ("SELECT * FROM zbr_logotipos WHERE id = '1' LIMIT 1 ");
$func  = mysql_fetch_assoc ($up);
$id = $func["id"];
$logotipo = $func["logotipo"];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FAZER UPLOAD DE ARQUIVOS</title>
</head>

<body>
<img src="<?php echo"$logotipo" ?>" alt="" />
<form action="update.php" method="POST" enctype="multipart/form-data">
<p><b>Imagem:</b>
<input type="file" name="logotipo" /><p>
<b>COloque 1 para alterar o logotipo do site e 2 para logotipo do player</b><p>
<input type="text" name="id" />
<input type="submit" value="Enviar" style="font-weight:bold" />
</form>
</body>
</html>

 

e depois fiz o arquivo q envia o dado para o mysql e manda para o dir

<?php
require("seguranca/conecta.php");

$id                     = $_POST["id"];

$figura         = $_FILES["logotipo"];
$nome_img       = $_POST["logotipo"];

if (isset($figura["name"]) && (strlen($figura["name"])>2))
{
       //Verificar tipo de imagem. Somente JPG é aceito por causa do arquivo de geração de thumbnails (thumb.php)
       if (($figura["type"] != "image/jpeg") && ($figura["type"] != "image/png"))
       {
               echo "<script> alert(\"Imagem: Formato de imagem invalido. Por favor, envie uma imagem tipo JPEG (.JPG)\"); history.go(-1); </script>";
               exit ();                
       }

       //Verificar se já há uma figura cadastrada
       if (strlen($nome_img) > 3) $nova_img = $nome_img;
       else
       {
               $img_nome = $figura["name"];
               $img_arquivo = pathinfo($img_nome);
               $img_extensao = $img_arquivo["extension"];

               $nova_img =  md5(date("YmdHis"));
               $nova_img = $nova_img.".".$img_extensao;

               //gravar o banco o nome da nova imagem
               $query = ("UPDATE zbr_logotipos SET logotipo = '$nova_img'");

       }

       $caminho = "imagem/".$nova_img;
       move_uploaded_file($figura["tmp_name"], $caminho);      
}

$query .= (" WHERE id = '$id'");

mysql_query($query) or die(mysql_error());
?>

como faço pra deixar filé isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você acessa o nome do arquivo usando $_file['logotipo']['name'] ao invés de $_post['logotipo'].

Não será esse o erro?

acho q não porque na linha 9 ele já chama o name da imagem

mais assim o move da imagem nao ta mandando pra pasta.

tens ideia do erro decorrente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Refatore seu código com base em $_FILES, não vejo a necessidade de utilizar $_POST["logotipo"]

 

$figura = isset( $_FILES["logotipo"] ) ? $_FILES["logotipo"] : false;

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.