Ir para conteúdo

POWERED BY:

Arquivado

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

Jeraldo Setefuz

Banco de dados MySQL

Recommended Posts

Boa noite.

EU procurei no forum e nao consegui achar nada parecido pelo menos.

 

Então minha dúvida é a seguinte se alguem poder me ajudar é claro:

 

EM PHP

quero criar um formulario normal de cadastro, e assim criando uma tabela no banco de cadastro, e outra tabela de imagens

entao eu queria que o usuario no cadastro dele pudesse adicionar quantas imagens que ele quiser, e todas ficasse no banco de dados com oID do usario

mas nao tenho ideia de como fazer isso alguem pode me dar uma LUZ?

 

Desde já agradeço a atenção

Atenciosamente

Flávio Morando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Flavio,

 

Eu tenho um site no qual ao se cadastrar um usuario é feita a inclusão de uma imagem. O sistema que o usei foi o seguinte:

 

Form em HTML (coloquei aqui no exemplo apenas os campo thumb (que recebe a imagem) e o campo usuario, ficando a seu critério inserir tantos outros que lhe forem necessário).

<form name="cadastrar_usuario" id="cadastrar_usuario" action="" method="post" enctype="multipart/form-data" >

 

<label> <span><font color="#FF0000">*</font> Imagem de exibição <font color="#0000FF">(O Tamanho máximo da imagem é de 2Mb!)</font> </span>

<input type="file" name="thumb" />

</label>

<label> <span><font color="#FF0000">*</font> Usuário</span>

<input type="text" name="usuario" />

</label>

<input type="hidden" name="cadastro" value="ok" />

<input type="submit" name="Cadastrar" value="Cadastrar" />

</form>

 

PHP

<?php if(isset($_POST['cadastro']) && $_POST['cadastro'] == 'ok'){

$img = $_FILES['thumb'];

$usuario = strip_tags(trim($_POST['usuario']));

 

 

//a parte a seguir faz interação com a função que redimensiona a imagem. O tamanho da imgem pode ser alterado mundando-se o valor que esta em numeral logo a frente de "Redimensionar:

(Redimensionar($tmp, $name, 100, $pasta).

 

$pasta = "images/upload/usuario";

$permitido = array('image/jpg','image/jpeg','image/pjpeg');

 

require("scripts/funcao_upload.php");

$identificacao = $img['name'];

$tmp = $img['tmp_name'];

$type = $img['type'];

 

if(!empty($identificacao) && in_array($type, $permitido)){

$name = $usuario . md5(uniqid(rand(), true)).".jpg";

Redimensionar($tmp, $name, 100, $pasta);

 

//aqui inicia a inserção no BD

$cadastra_usuario = mysql_query("INSERT INTO usuarios (thumb, usuario)VALUES ('$name', '$usuario')

or die(mysql_error());

 

if($cadastra_usuario >= '1'){

echo "Usuário cadastrado com sucesso!";

}else{

echo "Erro ao cadastrar Usuário!";

}

}

}

?>

No exemplo acima, você terá no BD uma tabela com o nome usuarios, com dois campos, um com nome thumb e outro com o nome usuario.

 

O local onde a imagem será salva esta definido na variavel $pasta, conforme a seguir:

$pasta = "images/upload/usuario";.

Sendo assim você terá que criar uma pasta com o nome images, dentro dela uma sub-pasta com o nome upload, e dentro dessa sub-pasta uma nova sub-pasta com o nome usuario; ou se preferir altere o caminho da varia $pasta.

O nome da imagem passado para o BD será composto do nome do usuario + caracteres randomicos, de forma a não existir duplidade, sendo esse nome defino na variavel $name, conforme a seguir:

$name = $usuario . md5(uniqid(rand(), true)).".jpg";

 

 

 

FUNÇÃO PHP QUE REDIMENSIONA A IMAGEM:

<?php

function Redimensionar($tmp, $name, $largura, $pasta){

$img = imagecreatefromjpeg($tmp);

$x = imagesx($img);

$y = imagesy($img);

$altura = ($largura*$y) / $x;

$nova = imagecreatetruecolor($largura, $altura);

imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);

imagejpeg($nova, "$pasta/$name");

imagedestroy($img);

imagedestroy($nova);

return($name);

}

?>

Crie uma pasta com o nome scripts, e salve esse função nessa pasta com nome funcao_upload. Essa função esta sendo "chamado" em:

require("scripts/funcao_upload.php");.

 

 

No meu caso é só fiquei com um problema sem solução, que é não conseguir usar imagem com mais de 2MB, tendo em vista que o PHP originalmente impoem essa restrição; mas ainda não desisti e uma hora eu acho solução para isso...rss.

 

Bom acho que é isso. Qualquer duvida é só falar.

Abraços

Flamaury

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Flamaury!

 

Esá dando um erro no arquivo de envia para o BD

 

Parse error: syntax error, unexpected ';' in C:\Program Files (x86)\VertrigoServ\www\sistema_pessoas\enviar.php on line 13

 

e a linha 13 no meu caso é :

 

$pasta = "images/upload/usuario";

 

E quando eu tiro o ';' ponto e vírgula, o erro vai par a linha debaixo e imprime isso:

 

Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files (x86)\VertrigoServ\www\sistema_pessoas\enviar.php on line 14

 

 

Pode nos ajudar?

 

Pr. Ademir Silva

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.