Ir para conteúdo

Arquivado

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

Daniel Ribas_53919

Imagem do Upload na registra na DB , envia direto para a pasta !

Recommended Posts

Boa tarde !, pessoal to com um problema no meu codigo, ele nunca envia a imagem pra db , sempre vai direto para a pasta !

o arquivo php do upload fica dentro de um painel administrativo , não sei se isso pode ser o erro . mais aqui vai o código !

obs: n manjo muito de php !

 

upgaleria.php

<?php
if ($_POST['cadastrar']) {

	// Recupera os dados dos campos
	$nome = $_POST['nome'];
	$email = $_POST['email'];
	$foto = $_FILES["foto"];

	// Se a foto estiver sido selecionada
	if (!empty($foto["name"])) {

		// Largura máxima em pixels
		$largura = "9999999999";
		// Altura máxima em pixels
		$altura = "9999999999";
		// Tamanho máximo do arquivo em bytes
		$tamanho = "9999999999";

    	// Verifica se o arquivo é uma imagem
    	if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $foto["type"])){
     	   $error[1] = "Isso não é uma imagem.";
   	 	}

		// Pega as dimensões da imagem
		$dimensoes = getimagesize($foto["tmp_name"]);

		// Verifica se a largura da imagem é maior que a largura permitida
		if($dimensoes[0] > $largura) {
			$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
		}

		// Verifica se a altura da imagem é maior que a altura permitida
		if($dimensoes[1] > $altura) {
			$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
		}

		// Verifica se o tamanho da imagem é maior que o tamanho permitido
		if($arquivo["size"] > $tamanho) {
   		 	$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
		}

		// Se não houver nenhum erro
		if (count($error) == 0) {

			// Pega extensão da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);

        	// Gera um nome único para a imagem
        	$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

        	// Caminho de onde ficará a imagem
        	$caminho_imagem = "modulos/fotos/" . $nome_imagem;

			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);

			// Insere os dados no banco
			$sql = mysql_query("INSERT INTO usuarios VALUES ('', '".$nome."', '".$email."', '".$nome_imagem."')");

			// Se os dados forem inseridos com sucesso
			if ($sql){
				echo "Você foi cadastrado com sucesso.";
			}
		}

		// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "<br />";
			}
		}
	}
}
?>
<form action="" method="post" enctype="multipart/form-data" name="cadastro" onSubmit="return validaAddArt(this)" >
<input type="hidden" name="action" value="Cadastrar">
<table style="border: 0px;">
<input type="file" name="foto" /><br /><br />
<input type="submit" name="cadastrar" value="Cadastrar" />
</table>


</form>

esse de baixo é o php que fica no painel e puxa o php acima com um include "<?php include("upgaleria.php");?>" , no caso do php acima eu só estou usando $foto.

 

upload.php (php que puxa o upgaleria.php por include)


<script>

function muda_ordem(direcao, ordem, controle)

{

	this.location = '?cp=<?=$cp?>&c=<?=$c?>&action=muda_ordem&direcao='+direcao+'&ordem='+ordem+'&controle='+controle;

}

function troca_flag(flag, id_reg, campo_flag)

{

	this.location = '?cp=<?=$cp?>&c=<?=$c?>&action=muda_status&flag='+flag+'&id_reg='+id_reg+'&campo='+campo_flag;

}

function troca_todos(tf)

{

	if(tf.checked)

		ToggleAll(lista, true);

	else

		ToggleAll(lista, false);

}

function ToggleAll(formname, checked_flag)

{

	len = formname.elements.length;

    var i = 0;

    for(i = 0; i < len; i++)

	{

        formname.elements[i].checked = checked_flag;

    }

}

function confirma_delete()

{

	if(confirm('Tem certeza que você deseja apagar este(s) registro(s)?'))

		return true;

	else

		return false;

}

</script>



<?

$action=$_GET["action"];

if($action == ""){

	$action=$_POST["action"];

}

?>
<a href="?cp=<?=$cp?>&c=<?=$c?>&action=inserir">Inserir Registro</a> | <a href="?cp=<?=$cp?>&c=<?=$c?>">Listar Registros</a><br/>
<br/>

<?

if($action=="muda_status"){

	$flag=$_GET["flag"];

	$id_reg = $_GET["id_reg"];

	$campo = $_GET["campo"];

	$sql = "UPDATE usuarios SET $campo='".$flag."' WHERE id='".$id_reg."'";

	$res = mysql_query($sql) or die(mysql_error());

	$action = "";

}elseif($action == 'deleta')

{



	// ------->> loop nos registros selecionados na lista <<-------|

	$del_item = $_POST["del_item"];

	$i=0;

	while($cada_um = each($del_item))

	{

		$sql = "DELETE FROM usuarios WHERE id = '".$cada_um[1]."'";

		$res = mysql_query($sql) or die(mysql_error());

		if($res){

			$i++;

		}

	}

	if($i>0){

		echo "<script>alert('Registro(s) excluido(s) com sucesso!')</script>";

	}else{

		echo "<script>alert('Um ou mais registros não puderam ser excluidos!')</script>";

	}

	$action = "";

}elseif($action == "editar" || $action == "inserir"){

	$id = $_GET["id"];

	if($id){

		$sql_f = "SELECT * FROM usuarios WHERE id='".$id."' LIMIT 1";

		$res_f = mysql_query($sql_f) or die(mysql_error());

		$row_f = mysql_fetch_array($res_f);

		$action = "F_editar";

	}else{

		$action = "F_inserir";

	}

?>

<?php include("upgaleria.php");?>

<?

}elseif($action == "F_editar"){

	$id = $_POST["id"];

	if($id){


		

		$codigo = $_POST["nome"];

		$foto = $_POST["foto"];

		$desc = $_POST["desc"];
$autor = $_SESSION["admin_nome"];

		$sql = "UPDATE usuarios SET nome='$codigo', foto='$foto' WHERE id='$id'";

		$res = mysql_query($sql) or die(mysql_error());

		if($res){

			echo "<script>alert('Registro Editado com sucesso')</script>";

		}else{

			echo "<script>alert('Um erro inesperado aconteceu')</script>";

		}

	}

	$action = "";

}elseif($action == "F_inserir"){

		$codigo = $_POST["nome"];

		$foto = $_POST["foto"];

		$desc = $_POST["desc"];
		
$autor = $_SESSION["admin_nome"];
	

	$sql = "INSERT INTO usuarios (nome, foto)

			VALUES('$codigo', '$foto')";

	$res = mysql_query($sql) or die(mysql_error());

	if($res){

		echo "<script>alert('Registro Inserido com sucesso')</script>";

	}else{

		echo "<script>alert('Um erro inesperado aconteceu')</script>";

	}

	$action = "";

}

if($action == ""){

	$num_por_pagina = 30; 



	$pagina = $_GET["pagina"];

	if (!$pagina) {

	   $pagina = 1;

	}
	$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;

?>

<style>

	a:hover{

		text-decoration:underline;

	}

</style>

<div id="paginacao_topo"></div>
	<div class="table">
				<img src="img/bg-th-left.gif" width="8" height="7" alt="" class="left" />
				<img src="img/bg-th-right.gif" width="7" height="7" alt="" class="right" />
    <form name="lista" method="post" action="?cp=<?=$cp?>&c=<?=$c?>" onSubmit="return confirma_delete()">

    <input type="Hidden" value="deleta" name="action">

    <input type="hidden" value="<?=$c?>" name="c" />
    <input type="hidden" value="<?=$cp?>" name="cp" />

    <table width="100%" cellpadding="0" cellspacing="0" class="listing">
        <tr>

            <th class="first" style="padding:3px; background:#eeeeee; border:2px solid #fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;"><center><input style="width:16px;" type="Checkbox" onClick="troca_todos(this);"  alt="Marca ou desmarca todos da lista"></center></th>

            <th align="center" style="padding:3px; background:#eeeeee; border:2px solid #fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;"><input style="width:16px;" type="Image" src="images/deletar.gif" alt="Apagar registros selecionados" align="absmiddle"></th>
 
            <th align="center" style="padding:3px; background:#eeeeee; border:2px solid #fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;"><b>Imagem</b></th>
            
            <th align="center" style="padding:3px; background:#eeeeee; border:2px solid #fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;"><b>Codigo</b></th>
                        <th align="center" style="padding:3px; background:#eeeeee; border:2px solid #fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;"><b>Adicionado por:</b></th>

            <th align="center" style="padding:3px; background:#eeeeee; border:2px solid #fff; -webkit-border-radius:3px; -moz-border-radius:3px; border-radius:3px;"><b>Descrição</b></th>
        </tr>

    <?

    $sql ="SELECT * FROM usuarios ORDER BY id DESC

			LIMIT $primeiro_registro, $num_por_pagina";

    $res = mysql_query($sql) or die(mysql_error());

    $i=1;

    $total = mysql_num_rows($res);

    while($row=mysql_fetch_array($res)){

	$bg = (($i+1)%2==0)?"bg":"";
    ?>

        <tr class="<?=$bg?>">

          <td align="center" style="border-left:2px dashed #fff; border-bottom:1px dashed #fff; padding:2px;"><input style="width:16px;" type="Checkbox" name="del_item[]" value="<?=$row[id]?>"></td>

            <td align="center" style="border-left:2px dashed #fff; border-bottom:1px dashed #fff; padding:2px;"><a href="?cp=<?=$cp?>&c=<?=$c?>&action=editar&id=<?=$row[id]?>"><img src="images/editar.gif" alt="Clique para editar este registro" align="absmiddle" /></a></td>

            <td align="center" style="border-left:2px dashed #fff; border-bottom:1px dashed #fff; padding:2px;"><img width="30%" src="modulos/fotos/<?=$row[foto]?>" /></td>
            
            <td align="center" style="border-left:2px dashed #fff; border-bottom:1px dashed #fff; padding:2px;"><?=$row[nome]?></td>
                      <td align="center" style="border-left:2px dashed #fff; border-bottom:1px dashed #fff; padding:2px;"><?=$row[emb_by]?></td>

   

            <td align="center" style="border-left:2px dashed #fff; border-bottom:1px dashed #fff; padding:2px;"><?=$row[emb_desc]?>

       	  </td>
        </tr>

    <?

        $i++;

    }

    ?>
    </table>
    </form>
    </div>

<?

    $sql1 ="SELECT * FROM usuarios ORDER BY id DESC";

	$res1= mysql_query($sql1) or die(mysql_error());

	

	$total = mysql_num_rows($res1);

	$total_paginas = $total/$num_por_pagina;



	$prev = $pagina - 1;

	$next = $pagina + 1;



	if ($pagina > 1) {

		$prev_link = "<a href=\"".$PHP_SELF."?cp=$cp&c=$c&pagina=$prev\">Anterior</a>";

	} else { 

		$prev_link = "Anterior";

	}



	// se número total de páginas for maior que a página corrente, então temos link para a próxssima página

	if ($total_paginas > $pagina) {

		$next_link = "<a href=\"".$PHP_SELF."?cp=$cp&c=$c&pagina=$next\">Próxima";

	} else { // senão não há link para a próxima página

		$next_link = "Próxima";

	}	

	// vamos arredondar para o alto o número de páginas que serão necessárias para exibir todos os registros. Por exemplo, se temos 20 registros e mostramos 6 por página, nossa variável $total_paginas será igual a 20/6, que resultará em 3.33. Para exibir os 2 registros restantes dos 18 mostrados nas primeiras 3 páginas (0.33), será necessária a quarta página. Logo, sempre devemos arredondar uma fração de número real para um inteiro de cima e isto é feito com a função ceil().

	$total_paginas = ceil($total_paginas);

	$painel = "";

	

	$f = $pagina + 2;

	$f = ($f > $total_paginas)?$total_paginas:$f;

	$n = $pagina - 2;

	$n = ($n<1)?1:$n;

	

	if($n == 1 && $total_paginas >5){

		$f=5;

	}else{

		$f=$pagina+2;

		$f=($f<=$total_paginas)?$f:$total_paginas;

	}



	for ($x=$n; $x<=$f; $x++) {

		if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página

			$painel .= " <b>[$x]</b> ";

		} else {

			$painel .= " <a href=\"".$PHP_SELF."?cp=$cp&c=$c&pagina=$x\">[$x]</a>";

		}

	} 

		$paginacao = "<center class='menu2'>$prev_link | $painel | $next_link </center>";

		echo "<BR>".$paginacao;

}

?>

<script>

	$("#paginacao_topo").append("<?=addslashes($paginacao)?>");

</script>

o código esta meio que bagunçado pois ainda estou editando .

 

se puderem me ajudar irei agradecer muitao hehe

obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, você quer inserir a foto inteira no banco.

 

Salve a foto no servidor e armazene somente o caminho da imagem.

 

PS: Não li o post inteiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É assim mesmo que 99.9 % dos uploads funcionam. Salva o caminho do arquivo no banco de dados e o arquivo em uma pasta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal consegui consertar, por acaso eu devia ter apagado as tabelas "(id, foto)" do INSERT .

 

ERRADO

$sql = mysql_query("INSERT INTO usuarios VALUES ('".$id_usuario."', '".$nome_imagem."')");

Certo !

 $sql = mysql_query("INSERT INTO usuarios (id, foto) VALUES ('".$id_usuario."', '".$nome_imagem."')");

mesmo assim pessoal , obrigado :D

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.