Foto de perfil de usuário!
20/08/2014
0
<?php if (!isset($_SESSION['usuarioID'])){ ?> <h1>Código da index</h1> <?php }else{ include "home.php"; } ?>
bom a função php verifica se o usuário está logado, se não estiver ele exibe o código da index, se por ventura o usuário vier logar, o código da index vai desaparecer e uma função else me permite chamar a home.php que trás algumas informações do usuário!
bom agora minha dúvida é a seguinte, digamos que em home eu tenha o código!
<div class="home"> <div class="avatar_perfil"> <img src="usuario_logado/10561697_574629705980813_3286886594384863998_n.jpg" title="Perfil" width="160px" height="200px"> </div> </div>
o que eu quero é que o usuário possa alterar essa foto de perfil no painel dele, e seja tudo salvo em um banco de dados para que quando cada usuário entrar aparece a foto dele no lugar da foto de perfil!
acho que vai ser preciso usar um banco de dados pra fazer isso, mas não sei como!
Cleyton Caetano
Posts
20/08/2014
Ronaldo Lanhellas
20/08/2014
Cleyton Caetano
é este mesmo meu plano amigo, que a foto seja armazenada no meu servidor na pasta ...images/users/profile_photo e assim o banco de dados pegue o link de cada usuário e exiba no painel! agora isso esta em matando aqui! como é que o usuário vai enviar a foto pelo painel e o banco de dados vai pegar automático?
20/08/2014
Ronaldo Lanhellas
1 - Você terá que colocar um componente para upload de arquivos (ex: uploadify), que seja capaz de enviar a foto do cliente para o servidor;
2 - Quando você pegar esta foto no servidor, você deve atribuir um nome pra ela (sugiro que seja o mesmo ID do cliente, pois assim você garante que nunca haverá conflitos entre os nomes das fotos);
3 - Crie uma coluna na tabela usuário, chamada 'caminho_foto' que terá o valor '/images/users/profile_photo/id_dousuario.jpg
4 - Quando o usuário logar no seu painel, você vai carregar a foto que está em 'caminho_foto';
20/08/2014
Cleyton Caetano
1 - Você terá que colocar um componente para upload de arquivos (ex: uploadify), que seja capaz de enviar a foto do cliente para o servidor;
2 - Quando você pegar esta foto no servidor, você deve atribuir um nome pra ela (sugiro que seja o mesmo ID do cliente, pois assim você garante que nunca haverá conflitos entre os nomes das fotos);
3 - Crie uma coluna na tabela usuário, chamada 'caminho_foto' que terá o valor '/images/users/profile_photo/id_dousuario.jpg
4 - Quando o usuário logar no seu painel, você vai carregar a foto que está em 'caminho_foto';
entendi! vou tentar montar o projeto aqui! vlw!
20/08/2014
Ronaldo Lanhellas
1 - Você terá que colocar um componente para upload de arquivos (ex: uploadify), que seja capaz de enviar a foto do cliente para o servidor;
2 - Quando você pegar esta foto no servidor, você deve atribuir um nome pra ela (sugiro que seja o mesmo ID do cliente, pois assim você garante que nunca haverá conflitos entre os nomes das fotos);
3 - Crie uma coluna na tabela usuário, chamada 'caminho_foto' que terá o valor '/images/users/profile_photo/id_dousuario.jpg
4 - Quando o usuário logar no seu painel, você vai carregar a foto que está em 'caminho_foto';
entendi! vou tentar montar o projeto aqui! vlw!
De nada, boa sorte.
20/08/2014
Cleyton Caetano
eu criei uma página pra fazer o upload da imagem e tals, esta dando um erro mais esta upando a imagem normal!
veja como ficou a estrutura.
change_profile_photo.php
<?php $PHP_SELF = ""; //Diretório aonde ficará os arquivos $dir = "./image/users/profile_photo/"; //Extensões permitidas $ext = array("gif","jpg","png"); //Quant. de campos do tipo FILE $campos = 6; //Formulário echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data"> <input type="file" name="file[]"> <br /> <br /> <br /> <input type="submit" name="submit" value=" OK "> </form>'; //Se for enviado if (isset($_POST['submit'])) { //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: </b>"; } echo $name." - "; //Movendo arquivo's do upload $up = move_uploaded_file($f_tmp[$i], $dir.$name); //Status if ($up==true): echo "<i>Enviado!</i>"; $cont++; else: echo "<i>Falhou!</i>"; endif; echo " "; } } echo ($cont!=0) ? "<i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!"; } ?>
eu to fazendo o teste o com usuário dono do ID 1 a imagem vai ficar assim.
/image/users/profile_photo/1.jpg
agora o problema! como vou inserir esse endereço automático no banco de dados? e como renomear a imagem automaticamente de qualquer nome que ela tiver para o ID do usuário?
ou seja, meu problema está sendo, trocar o nome do arquivo e colocar o link atualizado no banco de dados!
21/08/2014
Ronaldo Lanhellas
Você deve mudar a variável $name para receber o novo nome da imagem (sendo o ID) e não o antigo, veja:
//Pegando o nome $name = id_do_usuario;
21/08/2014
Cleyton Caetano
Você deve mudar a variável $name para receber o novo nome da imagem (sendo o ID) e não o antigo, veja:
//Pegando o nome $name = id_do_usuario;
fiz isso mais da erro, a imagem não é upada!
21/08/2014
Ronaldo Lanhellas
21/08/2014
Cleyton Caetano
Bom, eu percebi duas coisas, se tento mudar a foto de perfil sem o include "seguranca.php"; ele da o seguinte erro!
Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\SITE\change_profile_photo.php on line 55 Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\SITE\change_profile_photo.php on line 55 Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\SITE\change_profile_photo.php on line 55 Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\SITE\change_profile_photo.php on line 55 Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\SITE\change_profile_photo.php on line 55 Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\SITE\change_profile_photo.php on line 55 Nenhum arquivo foi enviado!
do contrario se uso o o include "seguranca";
ele deixa de exibir o erro! creio que pq o ID do usuário passa a ser válido, que quando quando tento enviar a foto aparece uma mensagem dizendo
o código fica assim.
<?php include "seguranca.php"; $PHP_SELF = ""; //Diretório aonde ficará os arquivos $dir = "./image/users/profile_photo/"; //Extensões permitidas $ext = array("gif","jpg","png"); //Quant. de campos do tipo FILE $campos = 6; //Formulário echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data"> <input type="file" name="file[]"> <br /> <br /> <br /> <input type="submit" name="submit" value=" OK "> </form>'; //Se for enviado if (isset($_POST['submit'])) { //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 = $_SESSION['usuarioID']; //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: </b>"; } echo $name." - "; //Movendo arquivo's do upload $up = move_uploaded_file($f_tmp[$i], $dir.$name); //Status if ($up==true): echo "<i>Enviado!</i>"; $cont++; else: echo "<i>Falhou!</i>"; endif; echo " "; } } echo ($cont!=0) ? "<i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!"; } ?>
21/08/2014
Ronaldo Lanhellas
$up = move_uploaded_file($f_tmp[$i], $dir.$name);
Antes de executar o move_uploaded_file execute um echo em $f_tmp[$i] e outro echo em $dir.$name, vamos ver qual conteúdo aparece.
21/08/2014
Cleyton Caetano
$up = move_uploaded_file($f_tmp[$i], $dir.$name);
Antes de executar o move_uploaded_file execute um echo em $f_tmp[$i] e outro echo em $dir.$name, vamos ver qual conteúdo aparece.
não apareceu nada!
21/08/2014
Ronaldo Lanhellas
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {
Execute var_dump em :
$f_tmp[$i]
21/08/2014
Cleyton Caetano
Clique aqui para fazer login e interagir na Comunidade :)