Ir para conteúdo

POWERED BY:

Arquivado

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

Cristiano Cordeiro

[Resolvido] Url

Recommended Posts

Como se faz um sistema tipo do twitter, que quando digita o nome de usuário depois da url do site, ex:www.meusite.com/usuario, o script(php) pega o valor que esta na url, faz uma pesquisa no banco de dados, e retorna valores do respectivo usuário, caso não exista o usuário, retorna erro 404.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Cristiano.

Para que isso seja possível, você tem que trabalhar o PHP juntamente com o amiguinho htaccess. Vou tentar te ajudar.

 

Primeiro, no .htaccess, utilize estas regras:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ usuarios.php?id=$1

 

Agora, no arquivo usuarios.php, faça algo como isso:

<?php
   // Resgata o ID do usuário vinda de um parâmetro na URL
   $idUsuario = (int)stripslashes($_GET['id']);

   // Verifica se o usuário existe no banco de dados
   $usuarioQuery = $db->prepare("SELECT COUNT(*) FROM `tbl_usuarios` WHERE id = $idUsuario");
   // Executa a query
   $usuarioQuery->execute();
   // Resgata o(s) resultado(s) da mesma
   $query = $usuarioQuery->fetch( PDO::FETCH_ASSOC );

   // Faz a verificação do resultado
       if( $usuarioQuery->rowCount() == 1 ){ // Se o usuário existir, então...
           header( 'Location: index.php?id='.$query['nome'] ); // ... redireciona pra página dele
       } else { // ou então, se não existir...
           header( 'Location: index.php?pagina=404' ); // ... redireciona para a página de erro
           exit(0);
       }
?>

 

O exemplo acima está equivocado porque não testei, mas dá pra ter uma ideia.

 

OBS: Não testei nem o .htaccess nem o .php, portanto, se tiver problemas me avise =P

 

Abraços! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guilherme, qual a necessidade do strip ?

$idUsuario = (int)stripslashes($_GET['id']);

 

Considerando que venha a contra-barra na URL, e o administrador do Script diga que o "'" será ignorado na URL, o strip remove a contra-barra e, eventualmente, vai aceitar a aspas simples na URL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá novamente, Andrey.

 

Não entendi o que você quis dizer com o seu post, poderia me explicar? Dispenso criar um novo tópico para isso.

 

Desde já, grato.

Abraços! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro, o seu (int) vai transformar qualquer string em 0 ou 1, fiquei confuso agora ..

então se você remove as barras invertidas com aspas, esse strip é desnecessário, já que o (int) já vai fazer o cast

transformando qualquer string em zero ou 1 com ou sem barra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey Knupp está certo, o valor retornado para qualquer valor digitado na url vai será 0

 

Opz, acho que você se enganou, eu não disse que ' qualquer valor digitado na url vai ser 0 ', eu disse que se tiver string junto com os números

ou string sem os números, o valor vai ser transformado em zero, isso se chama 'cast', de uma pesquisada.

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.