Ir para conteúdo

POWERED BY:

Arquivado

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

mauricio gerber

[Resolvido] Erro: Inserir imagem PHP

Recommended Posts

Bom, estou tentando inserir 6 imagens no banco, enviando o nome pro banco e a imagem para um diretório no servidor.

Mas não esta nem enviando o código, nem enviando para a pasta.

 

<!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>Untitled Document</title>
</head>

<body>
<form action="<? $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
	<label><span>Evento</span></label><input type="text" name="evento" id="evento" /><br />
    <label><span>Tipo de Evento</span></label><select name="segmento" id="segmento"><option>Organização de Eventos</option><option>Recepcionistas de Eventos</option><option>Locação de Materiais e Equipamentos</option><option>Decoração</option><option>Almoços e Jantares</option><option>Coffe Breaks</option><option>Coquetéis</option></select><br />
    <label><span>Local</span></label><input type="text" name="local" id="local" /><br />
    <label><span>Data</span></label><input type="text" name="data" id="data" /><br />
    <label><span>Foto</span></label><input type="file" name="foto" id="foto" /><br />
    <label><span>Foto</span></label><input type="file" name="foto1" id="foto1" /><br />
    <label><span>Foto</span></label><input type="file" name="foto2" id="foto2" /><br />
    <label><span>Foto</span></label><input type="file" name="foto3" id="foto3" /><br />
    <label><span>Foto</span></label><input type="file" name="foto4" id="foto4" /><br />
    <label><span>Foto</span></label><input type="file" name="foto5" id="foto5" /><br />
<input type="submit" name="button" id="button" value="Enviar" />
</form>

</body>
</html>
<?
	if($_POST['button']){
		$evento=$_POST['evento'];
		$segmento=$_POST['segmento'];
		$local=$_POST['local'];
		$data=$_POST['data'];
		$foto=$_FILES['foto']['name'];
		$foto1=$_FILES['foto1']['name'];
		$foto2=$_FILES['foto2']['name'];
		$foto3=$_FILES['foto3']['name'];
		$foto4=$_FILES['foto4']['name'];
		$foto5=$_FILES['foto5']['name'];
		
		include "conecta.php";	
		$sql_cad="insert into evento(evento, segmento, local, data, foto, foto1, foto2, foto3, foto4, foto5) values ('$evento', '$segmento', '$local', '$data', '$foto', '$foto1', '$foto2', '$foto3', '$foto4', '$foto5')";
		$ok=mysql_query($sql_cad);
		if ($ok){
			move_uploaded_file($_FILES[$foto]['tmp_name'],"img/eventos/");
			move_uploaded_file($_FILES[$foto1]['tmp_name'],"img/eventos/");
			move_uploaded_file($_FILES[$foto2]['tmp_name'],"img/eventos/");
			move_uploaded_file($_FILES[$foto3]['tmp_name'],"img/eventos/");
			move_uploaded_file($_FILES[$foto4]['tmp_name'],"img/eventos/");
			move_uploaded_file($_FILES[$foto5]['tmp_name'],"img/eventos/");
			echo "<script> alert('Cadastrado com Sucesso.'); </script>";
		}else{
			echo "<script> alert('Erro no cadastro.'); </script>";
		}
		echo "<meta http-equiv=\"refresh\" content=\"1;url='cadastro2.php'\" />";
	}
?>

 

O que será que está errado? http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece algum erro? Que erro? Se não aparece nenhum erro, adicione o seguinte código ao início do script (na primeira linha de código), para habilitar todas as mensagens de erro.

 

error_reporting(E_ALL);

Faça outros testes de debug, como:

echo 'Valores de Files <br/><pre>';
print_r($_FILES);

Veja se retorna alguma coisa.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, apareceu isso:

 

Array
(
    [foto] => Array
        (
            [name] => 1.jpg
            [type] => image/jpeg
            [tmp_name] => C:\Documents and Settings\junior\Configura��es locais\Temp\php1B8.tmp
            [error] => 0
            [size] => 11276
        )

    [foto1] => Array
        (
            [name] => a2.jpg
            [type] => image/jpeg
            [tmp_name] => C:\Documents and Settings\junior\Configura��es locais\Temp\php1B9.tmp
            [error] => 0
            [size] => 218489
        )

    [foto2] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [foto3] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [foto4] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

    [foto5] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )

)


Notice:  Undefined index:  1.jpg in C:\Arquivos de programas\VertrigoServ\www\site\cadastro2.php on line 46



Notice:  Undefined index:  a2.jpg in C:\Arquivos de programas\VertrigoServ\www\site\cadastro2.php on line 47



Notice:  Undefined index:   in C:\Arquivos de programas\VertrigoServ\www\site\cadastro2.php on line 48



Notice:  Undefined index:   in C:\Arquivos de programas\VertrigoServ\www\site\cadastro2.php on line 49



Notice:  Undefined index:   in C:\Arquivos de programas\VertrigoServ\www\site\cadastro2.php on line 50



Notice:  Undefined index:   in C:\Arquivos de programas\VertrigoServ\www\site\cadastro2.php on line 51

Eu criei no BD, campos foto, foto1... foto5, é pra ir o nome lá e a foto pro arquivo img/eventos, dps vou fazer pra renomear e bla bla

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... O problema está aqui.

                       move_uploaded_file($_FILES[$foto]['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES[$foto1]['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES[$foto2]['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES[$foto3]['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES[$foto4]['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES[$foto5]['tmp_name'],"img/eventos/");

 

Veja que você usa a $foto, $foto1... O conteúdo desta variável é o nome da imagem. Então, você teria que fazer assim:

                       move_uploaded_file($_FILES['foto']['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES['foto1']['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES['foto2']['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES['foto3']['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES['foto4']['tmp_name'],"img/eventos/");
                       move_uploaded_file($_FILES['foto5']['tmp_name'],"img/eventos/");

 

Só que mesmo assim vai dar erro. Veja que, caso você não mande as 5 imagens, por exemplo mandar 2 imagens, ele vai tentar fazer o move_uploaded_file de uma imagem que não existe. Para evitar isto, faça validação com isset e empty antes de executar a função.

 

Deve funcionar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente não deu certo,

 

e apresentou o seguinte erro:

 

Array

(

[foto] => Array

(

[name] => Imagem 013.jpg

[type] => image/pjpeg

[tmp_name] => C:\Documents and Settings\junior\Configura��es locais\Temp\php21D.tmp

[error] => 0

=> 103961

)

 

[foto1] => Array

(

[name] => imagem 026.jpg

[type] => image/pjpeg

[tmp_name] => C:\Documents and Settings\junior\Configura��es locais\Temp\php21E.tmp

[error] => 0

=> 222334

)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa informar também o nome do arquivo de destino, não só o diretório.

No caso, você faria isso:

move_uploaded_file($_FILES['foto']['tmp_name'],"img/eventos/$foto");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só alterei o código do moveuploaded,

 

if ($ok){
			move_uploaded_file($_FILES['foto']['tmp_name'],"img/eventos/".$foto);
			move_uploaded_file($_FILES['foto1']['tmp_name'],"img/eventos/".$foto1);
			move_uploaded_file($_FILES['foto2']['name'],"img/eventos/".$foto2);
			move_uploaded_file($_FILES['foto3']['name'],"img/eventos/".$foto3);
			move_uploaded_file($_FILES['foto4']['name'],"img/eventos/".$foto4);
			move_uploaded_file($_FILES['foto5']['name'],"img/eventos/".$foto5);
			echo "<script> alert('Cadastrado com Sucesso.'); </script>";
		}else{
			echo "<script> alert('Erro no cadastro.'); </script>";
		}

 

Agora alguem sabe me dizer como eu faço pra renomear todos pra por exemplo: 1.jpg, 2.jpg... e assim vai e dps enviar para o banco com o nome renomeado e a pasta?

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.