Fórum Foto de perfil de usuário! #489514
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
Curtir tópico
+ 0Posts
20/08/2014
Ronaldo Lanhellas
Gostei + 0
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?
Gostei + 0
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';
Gostei + 0
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!
Gostei + 0
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.
Gostei + 0
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!
Gostei + 0
21/08/2014
Cleyton Caetano
Gostei + 0
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;
Gostei + 0
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!
Gostei + 0
21/08/2014
Ronaldo Lanhellas
Gostei + 0
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!";
}
?>Gostei + 0
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.
Gostei + 0
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!
Gostei + 0
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]
Gostei + 0
21/08/2014
Cleyton Caetano
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)