Ir para conteúdo

POWERED BY:

Arquivado

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

vonzuben

Login de Usuário

Recommended Posts

estou criando um site, onde que todos que se cadastra terá o mesmo site, sendo somente o usuário entrar na sua conta para colocar seus dados com e-mail, link de rede sociais, telefone de contato, link de pagamento do pagseguro, código box do facebook e etc...

Para cada usuário que se cadastrar ficará o domínio da seguinte forma:

 

www.meusite.com.br/apelidodousuario

 

Lembrando que a página é igual para todos, somente muda os dados de cada úsuario conform citado acima.

Duvida:

esse apelidodousuario seria uma pagina do tipo apelidodousuario.php com url amigável?

como deixar o login personalizado para usuário?

Lembrando que a página é uma só

Tenho fazer um esquema onde cada cadastro o sistema gera uma página padrão para cada um?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi direito mas pelo que percebi você esta querendo criar um site onde os usuários terão perfis assim como uma rede social onde a pessoa digita o nome de usuario na url www.meusite.com.br/nomedeusuario e é mostrada um pagina com as informações do usuário.

 

bom se for isso vou dar um breve explicação de como você poderia fazer isto.

 

primeiro você teria que criar algo para identificar os usuarios uma chave unica, poderia ser (id, email ou um nome de usuario).

 

depois de feito isso você pode criar um pagina que mostraria as informações do usuario resgatando a chave de identificação(id, email ou um nome de usuario) pela url atravez de um GET

 

 

pagina inicial (listando os usuarios)

 

no meu exemplo vou usar como chave de identificação um nome de usuario USERNAME que seria unico assim como twitter , facebook e outras redes sociais fazem.

 

para listar os usuarios cadastrados no banco de dados você pode fazer um select e usar o comando while para exibir este usuarios.

 

pode criar um lista pra deixar mais organizado também

 

SELECT COM WHILE PARA EXIBIR AS INFORMAÇÔES DO USUARIO

 

<li><a href="/$variavel contendo o nome de usuario(USERNAME)">João</a></li>

 

no link de cada usuario ficaria o seu nome de usuario que seria resgatado na proxima pagina.

 

no caso como você quer que sua url fique www.meusite.com/nomedousuario você vai ter que usar url amigavel

 

uma regra simples como esta resolveria seu problema RewriteRule ^(.*)$ perfil.php?user=$1 [NC,L]

 

o que esta regra esta dizendo é que tudo que vc digitar depois do www.meusite.com/ vai ser interpretado como perfil.php?user=$nomedousuario

 

segunda pagina perfil.php agora vamos recuperar o username do usuario e exibir usas informações de acordo.

 

na pagina perfil.php crie um GET que poderia ser $usuario = $_GET['user'];

 

$usuario = $_GET['user']; este codigo cria a variavel usuario e atribui a ela o nome de usuario que esta na url

 

depois de feito isso faça um select no banco de dados com uma condição. SELECT * FROM users WHERE username='$usuario'

 

ou seja faça um select no banco de dados quando nome de usuario que esta na url for igual a um usuario que foi cadastrado no banco

 

depois do select e só vc decidir que informções do usuario deseja exibir.

 

bom é isso espero ter te ajudado :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi é mais simples que isso ainda.. você só vai precisar criar uma página básica e colocá-la dentro de uma pasta com o apelido do usuário. Faça assim: quando o usuário for criar o apelido dele, mande criar uma pasta com esse mesmo nome dentro de um diretório padrão à seu desejo. Utilize o mkdir() para isso. Então, mantenha sempre essa página que você citou, a apelidodousuario.php dentro do seu diretório padrão. O que você vai fazer vai ser isso:

 

  • Coloque o nome dela como index.php, dessa forma o navegador abrirá a pasta do usuário sem a extensão da página. Assim ficaria no formato desejado: www.meudominio.com.br/apelido_do_usuario.
  • Dentro dessa página, utilize input para cada campo que o usuário deverá preencher. Faça uso de CSS para manter layout mais bonito, caso deseje.
  • Envie os dados preenchidos para o banco de dados e exiba-os. Lendo o comentário do Manoaj você consegue fazer isso sem a menor dificuldade :)
  • Na hora de exibir os campos para preencher, faça assim: deixe a página principal sempre normal, sem forms e tal. Coloque apenas um botão "preencher dados" para abrir uma popup, por exemplo, para a pessoa preencher seus dados lá. Clicando em enviar, utilize JavaScript para atualizar a página junto ao envio, assim tudo fica automatizado e é uma forma bem simples de fazer isso :)
  • Para fazer com que a pasta da pessoa não fique vazia, você ainda precisa do mais importante: copiar a página index.php que exibirá os dados da pessoa pra dentro da pasta dela, certo? Então, ao mesmo tempo em que você for mandar criar a pasta da pessoa com o apelido que ela escolheu, você vai usar o copy(), para copiar o arquivo pra lá. Ficará mais ou menos assim:
    $de = "pasta_original/index.php";
    $para = "pasta_final/index.php"; /*aqui será a pasta dele, que você acabou de criar. ficaria algo como $para = $apelido_do_usuario."/index.php"; onde $apelido_do_usuário foi a variável que armazenou o apelido que o cidadão escolheu agora e criou a pasta dele.*/
    
    if (copy($de, $para){
    echo "Copiado com sucesso!";
    } else {
    echo "N&atildeo; foi copiado. Um erro ocorreu!";
    }

     

    Feito isso a pasta com o apelido dele e o index.php pronto para ser preenchido já estarão no lugar correto. Mas lembre-se de usar as informações do comentário acima para saber como lidar com os bancos de dados e etc.!

     

    Falou! Tendo dúvidas, poste aqui :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

criar pasta e diretorios só pra um sisteminha assim noss kkkkk é mais simples o exemplo que dei pq criar uma pasta para cada usuario que se cadastrar . bom seila acho mais simples da outra forma já que a necessidade dele é exibir as informações do usuario de acordo com username na url

 

 

quanto a sua pergunta vonzuben não precisa listar os usuario só deio um exemplo a listagem era só pra mostrar todos os usuarios que estavam cadastrados mas não precisa listar .

 

só precisa criar a regra da url amigavel e a pagina que recupera o usuario a perfil.php que falei lá em cima.

pois a pagin php que vai ficra responsavel por recuperar o nome de usuario e exibir as informações.

qualquer coisa fala que eu crio pra vc um sistema de exemplo só entender melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

site está feito, pois já pensei em fazer do seu jeito já, mas criar uma pasta para cada usuário não seria o certo e ainda copiar cada index padrao apelido_do_usuario.php cada uma dela.

serão 10 mil usuários

o site tem o cadastro e depois que entra tem a pagina perfil com os dados dele para editar que fica conforme abaixo:

 

www.meusite.com.br/index.php?pagina=perfil só que fiz url e está assim www.meusite.com.br/perfil

no caso do facebook é criado uma página para cada usuário numa única pasta?

Obrigado desde já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é como te falei, é uma página que pega o username do usuario que esta na url atravez de um get e informa a um select que exibe as informações do usuario

 

supondo que sua pagina seja perfil.php?user=Nomedousuario e o nome da sua tabela de usuarios seja users e nome da coluna que grava o username do usuario seja username

 

perfil.php

 

 

<?php
$RecuperaUsuario = $_GET['user'];
 
$SelecionaInfo = mysql_query("SELECT * FROM users WHERE username='$RecuperaUsuario'");
$ExibeInfoUser = mysql_fetch_array($SelecionaInfo);
 
$nome = $ExibeInfoUser['nome'];
 
$sobrenome = $ExibeInfoUser['sobrenome'];
 
?>
 
<?php echo $nome; ?>

 

é basicamente isso o codigo pega o nome que esta na url joao por exemplo perfil.php?user=joao

 

e informa ao select que pega as informações do usuario

 

 

exemplo

 

 

 

tabela do banco de dados

 

campo username = grava o nome de usuario no caso um apelido.

campo nome = grava o nome do usuario uma informação só de exemplo nós trabalharmos.

campo sobrenome = também grava uma informação só de exemplo.

 

 

tenho um usuario chamado joão e o username dele é joaozinho

 

regra pra url amigavel (como não sei o nome das suas paginas vou dar nomes de exemplo aqui.)

 

 

RewriteRule ^(.*)$ perfil.php?user=$1 [NC,L]

 

 

Pagina index.php, quando usuario logar vai ser mandando pra ela.

nesta pagina vou pegar os usuarios que estão cadastrados(só exemplo não precisa listar )

 

no caso se vc fosse exibir as pessoas que estão cadastradas.

 

 

 

<?php
$selectUsers = mysql_query("SELECT * FROM users");
while($Exibeusers = mysql_fetch_array($selectUsers)){
 
$username   = $Exibeusers['username'];
$nome          = $Exibeusers['nome'];
$sobrenome = $Exibeusers['sobrenome'];
 
?>
 
<a href="<?php echo $username; ?>"><?php echo $nome; ?></a>

 

preste atenção nesta parte olhe que no link eu informei o nome do usuario que seiria (joaozinho) que é o nosso exemplo de usuario cadastrado href="<?php echo $username; ?>" informei o nome do usuario no link pq quando vc clicar no link sua url vai ficar assim www.meusite.com/joaozinho

 

 

<?php
}
?>

 

Pagina Perfil.php

na pagina perfil .php vou pegar o usuario que esta na url que no caso é o joaozinho e exibir as informações dele.

 

 

<?php
$RecuperaUsuario = $_GET['user'];
 
$SelecionaInfo = mysql_query("SELECT * FROM users WHERE username='$RecuperaUsuario'");
$ExibeInfoUser = mysql_fetch_array($SelecionaInfo);
 
$nome = $ExibeInfoUser['nome'];
 
$sobrenome = $ExibeInfoUser['sobrenome'];
 
?>
 
<?php echo $nome; ?>
<?php echo $sobrenome; ?>

 

IMPORTANTE

Como você vai esta usando url amigavel sempre que for informar o nome do usuario na url vc não vai digitar perfil.php?user=joazinho

desta forma tambem funcionaria mas não teria pq usar a url amigavel, ou seja quando for informar o nome do usuario digite

www.meusite.com/joazinho que a regra da url amigavel vai se encarregar de fazer o resto que é transformar www.meusite.com/joazinho

em perfil.php?user=joazinho sem que vc perceba .

Compartilhar este post


Link para o post
Compartilhar em outros sites

A coisa mais simples achamos que a mais dificil

O cara digita na url o apelido e o modo GET captura e depois verifica esse nome tem no banco de dados, pois se sim ele mostra os dados da pagina do usuário.



é a logica
e olha que criei o site inteiro www.ceinbra.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou acompanhando o post, mas agora me tirem uma dúvida, até ai ta tudo lindo maravilhoso com os usuários exemplares...

 

Mas ai chega um usuário que gosta da bagunça, um usuário tester da vida(exemplo).

 

Por exemplo você vai ter que ter uma black_list dos user's name que você NÃO pode deixar cadastrar nesse caso, não é? isso devido a url amigáveis.

 

Tipo você tem o joão que é user joaozinho:

www.meusite.com/joazinho

 

Funcionou lindamente....

 

Ae vai um cara sacana chamado zé manuel e coloca o user dele como contato:

www.meusite.com/contato

 

Eaii rapaz, e agora ? hehe.. só um exemplo que quis deixar ai.. ouu isso não tem nada haver?? O que me dizem??

 

Pelo .htaccess posso diferenciar isso??

Diferenciar: joaozinho de contato ou noticias por exemplo.

 

Não sei se pude ser claro. Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

a regra que dei ali foi só um exemplo ele pode por o que quiser pode criar outra regra mais elaborada ou adapatar aquela, existem mil maneira de se resolver isso , ele provavelmente já sabia desse problema já que esta usando url amigaveis. mas acho que o problema dele em si não era com a url e sim com a logica do sistema de usuarios relaiconado as informações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

surgiu um problema, pois a pagina terá mais de uma pagina.

se digitar www.meusite.com.br/joazinho e dar um select vai exbir os dados numa pagina, sendo tem mais 2 paginas para preencher ao clicar no menu superior, sendo na hora que ele clicar vai outra pagina www.meusite.com.br/contato, ( no contato terá os dados do skype, telefone e etc.) pois ai os dados não ficaram visivel, pelo fato da url ter mudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom se for um pagina no estilo perfil onde o usuario vai ter as opções por exemplo.

 

 

MENU da página perfil

 

PERFIL COMPLETO - INFORMAÇÕES DE CONTATO

 

se for isso continue a pegar as informações pela url ou seja no link da opção INFORMAÇÕES DE CONTATO de um get no nome do usuario na url e pronto pegue as informaçõe por select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu crie um sistema parecido, a lógica é esta mesma, mas se um dia querer criar pastas para guardar algumas images do usuário,

não crie pastas no diretório padrão, senão vai ter dor de cabeça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

WDuarte você que já fez esse sistema, sendo que estou puxando os dados na pagina home.php

coloquei o $_GET e o Select nessa pagina home.php, pois até ai tudo bem

a url amigavel ficou assim

RewriteRule ^([^/]+)/([^/\.]+)/?$ index.php?pagina=$1&user=$2 [L,QSA]

somente parece os dados se eu digitar da seguinte forma www.meusite.com.br/home/usuario
mas quero que aparece quando eu digitar www.meusite.com.br/usuario na pagina home

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.