Ir para conteúdo

Arquivado

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

Vales & Dores

[Resolvido] Uma pagina para cada usuario com mysql

Recommended Posts

vamos ao caminho do conhecimento, e retirar suas pedras.

 

ok

 

temos uma pagina de cadastro onde as informações vai para mysql, e esta tudo funcionando.

temos um sistema de login que esta funcionando e as paginas estão sendo asseguradas contra acesso nao autorizado via URL por session.

 

agora vamos falar na seguinte linha de raciocínio, cada usuario que se cadastro tem que ter sua pagina, como seria feito isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pagina.php?id=1

pagina.php?id=2

pagina.php?id=16

 

 

pagina.php

$id = isset( $_GET['id'] ) ? (int)$_GET['id'] : 0;
$sql = "SELECT * FROM usuario WHERE id = {$id}";

pronto. Ai você monta essa página, com base nessa consulta, formada apartir da query string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim mas essa forma que voce disse é uma forma manual ?

na verdade eu acho que não estou conseguindo me expressar vou tentar novamente.

 

A partir do cadastro que você faz em um sistema logo ao final do cadastro, você ganha uma pagina onde somente você tem acesso.

 

é isso que eu quero intender como funciona ?

Para que eu possa ir a traz de como programar, e trazer para esse forum.

 

eu acho que vai ser um grande barato primeiramente para mim que vou aprender a fazer e depois para todos que querem ter um sistema legal desses.

 

vamos la gente,

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim mas essa forma que voce disse é uma forma manual ?

não, isso que mostrei é dinâmico.

 

 

 

 

você ganha uma pagina onde somente você tem acesso.
a única diferença, é que no lugar de trabalhar com URL como mostrei, você trabalharia com SESSIONs.

 

A lógica continua sendo a mesma que mostrei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, isso que mostrei é dinâmico.

 

 

 

 

a única diferença, é que no lugar de trabalhar com URL como mostrei, você trabalharia com SESSIONs.

 

A lógica continua sendo a mesma que mostrei.

Eu odeio ter que pedir isso, mas sera que voce pode desenhar para mim ?

eu ainda nao intendi, vamos por partes, a pessoa se cadastra e dai como é que funciona?

nao quero o codigo so quero intender como fazer para que eu possa ir atras da programação.

desculpa minha ignorancia

Compartilhar este post


Link para o post
Compartilhar em outros sites

gente odeio dizer isso, mas tem como você desenhar?

 

vamos por partes, a pessoa entra faz o cadastro e depois ???????

como as engrenagens funcionam nos bastidores??

 

Eu só quero a logica :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo. Por partes:

 

  • O usuário cria um registro, inserindo uma nova linha no banco de dados. Provavelmente esse usuário tem um id;
  • Tendo o id em mãos, você cria uma página (com querystring) universal para todos os usuários, onde só se modificam as informações de cada id;
  • Mas como assim? No seu index.php, você vai criar uma condição para que se tiver um parâmetro "id" na URL, então o PHP incluirá a página de usuários;

Em código:

 

  if( isset($_GET['id']) ) {
      include('users.php');
  }

 

E no users.php, você vai fazer:

   <h1>Seja bem-vindo(a), <?php echo $user->display_name(); ?></h1>

 

Em português:

O id inserido no parâmetro ?id= do endereço irá abrir o conteúdo do arquivo users.php, e irá retornar os valores que estão dentro desse arquivo. Para o $user->display_name(); funcionar, você deve ter um arquivo que busca as informações do usuário referente ao ID digitado na URL, como parâmetro.

 

Digamos, o ID é 6. E o nome do usuário de ID 6 é Guilherme, então, à função display_name() pertencente à classe instanciada pelo $user é o resultado do fetch de uma query que pegou as informações pelo ID 6.

 

Em outras palavras, você vai ter uma query que pegará todas informações do usuário. Beleza. Você vai resgatar as informações através de getters (não usei ali pra não te atrapalhar). O que são getters? Supondo a seguinte situação:

 

UserDAO.php

 

class UserDAO {

   private $sql;
   private $data;

   function __construct() {
       $this->sql = new PDO( 'mysql:host=localhost;dbname=database', 'root', 'admin' );
   }

   function selectLayer() {
       $this->query = $this->sql->prepare( 'SELECT * FROM `users` WHERE `id` = '. $id );
       $this->query->bindParam( 'id', $_GET['id'], PDO::PARAM_INT );
       $this->query->execute();
       $this->data = $this->query->fetch( PDO::FETCH_ASSOC );
   }

   function getDisplayName() {
       return $this->data['nome'];
   }

}

No users.php você fará:

 

   require( 'classes/UserDAO.php' );

   $user = new UserDAO();

   <h1>Seja bem-vindo(a), <?php echo $user->getDisplayName(); ?></h1>

Entendeu?

 

Neste caso, usei um exemplo bem superficial, utilizando o PDO (por favor, não se confunda!), mas a lógica (que é o que você queria) é essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai mano voce é da elite cara poxa obrigado ate codigo voce coloco pra mim obrigado cara obrigado MESMO!!!!!

 

posso colocar voce como meu amigo ?

 

agora sim eu intendi e vou fazer assim que essa parte estiver pronto coloco todo o meu projeto ate agora no forum um abraço e valeu pra voce so tenho a deixar mil :clap: :clap: :clap: :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hahaha, sou só mais um, Vales & Dores. Estou aqui pra ajudar.

 

Pode me adicionar como amigo sim. Sempre que precisar, estaremos a disposição! :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

UserDAO.php

 

class UserDAO {

   private $sql;
   private $data;

   function __construct() {
       $this->sql = new PDO( 'mysql:host=localhost;dbname=database', 'root', 'admin' );
   }

   function selectLayer() {
       $this->query = $this->sql->prepare( 'SELECT * FROM `users` WHERE `id` = '. $id );
       $this->query->bindParam( 'id', $_GET['id'], PDO::PARAM_INT );
       $this->query->execute();
       $this->data = $this->query->fetch( PDO::FETCH_ASSOC );
   }

   function getDisplayName() {
       return $this->data['nome'];
   }

}

No users.php você fará:

 

require( 'classes/UserDAO.php' );

 

$user = new UserDAO();

 

<h1>Seja bem-vindo(a), <?php echo $user->getDisplayName(); ?></h1>

 

 

 

 

[b]Esta parte e em java ? eu acho que sim, mas se for java vai rodar normalmente no editor php? [/b]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não é Java, é PHP.

 

Você pode ter se confundido porque está orientado à objeto, e como isso é um padrão universal, é natural a confusão. Mas é PHP, não se preocupe.

 

E assim, antes de utilizar o meu código, você tem certeza que não tem um código que resgate a informação dos usuários através do banco?

 

Se tiver, utilize-a. Posso te ajudar à adaptar. Só usei esse código como exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não é Java, é PHP.

 

Você pode ter se confundido porque está orientado à objeto, e como isso é um padrão universal, é natural a confusão. Mas é PHP, não se preocupe.

 

E assim, antes de utilizar o meu código, você tem certeza que não tem um código que resgate a informação dos usuários através do banco?

 

Se tiver, utilize-a. Posso te ajudar à adaptar. Só usei esse código como exemplo.

 

Vamos ver se eu pequei a ideia, se eu estiver errado me corrija por favor.

 

Voce quer que a query busque as informações do usuario que esta entrando e aloge essas informações dentro de uma unica pagina?

no caso users.php?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente. Mas o users.php vai trablhar de maneira diferente para cada ID de usuário digitado no parâmetro da URL.

 

Quando o ID digitado for 2, por exemplo, a query fará a consulta no banco através do ID 2, e então, assim, exibirá as informações do ID 2. Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente. Mas o users.php vai trablhar de maneira diferente para cada ID de usuário digitado no parâmetro da URL.

 

Quando o ID digitado for 2, por exemplo, a query fará a consulta no banco através do ID 2, e então, assim, exibirá as informações do ID 2. Entendeu?

 

 

Haaa garoto ta mais de boa do que eu pensava.

Eu estava parado dando um tempo para descançar a cabeça, mas agora vou começar a programar essa parte dependendo das duvidas e o que eu tiver sucesso eu coloco aqui.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos la...

 

 

este comando tem que ir no bando de dados e trazer as informações que estao dentro do campo1

mas nao esta resondendo onde eu tenho que mudar?

$sql = mysql_query("SELECT campo1, FROM cadastro");

 

$sql = mysql_query("SELECT login, perfil, fotos, amigos, FROM cadastro");

esta e a ideia que eu tenho do codigo, mas nao esta funcionando.

 

OBS:

 

o que eu tenho e que eu compreendo e esse codigo:

mysql_query("SELECT * FROM cadastro WHERE login='{$_POST['login']}' and senha='{$_POST['senha']}'");

 

sei que o * quer dizer TODOS ou TUDO, me ajudem a intendei o que estou fazendo de errado

 

onde estou errando ?

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vales, seguinte.

 

'Cê tem que buscar as informações pelo ID. Digamos que a URL seja a seguinte:

index.php?page=perfil&uid=1

Então, para fazer a consulta:

$id = $_GET['uid']; // Neste caso, será 1.
$sql = mysql_query("SELECT login, perfil, fotos, amigos, FROM cadastro WHERE `id` = $id");

Basicamente você vai pegar os dados referentes ao usuário digitado na URL e vai retorná-los na tela.

 

Para você entender melhor, a lógica é a seguinte:

  • URL digitada ->
  • procura na URL o parâmetro uid ->
  • se achar, resgata o número (no nosso caso 1) ->
  • depois de resgatado, este valor é atribuído à variável $id ->
  • com a atribuição feita, ele consulta no banco pelo id armazenado na variável $id, onde, nesse nosso caso específico, é 1. ->
  • depois é-se feito um fetch para retornar todas as informações referentes ao usuário de id 1.

Entendeu melhor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que quer dizer WHERE e while?

 

o que quer dizer WHERE e while?

 

Não tenho a experiência do pessoal por aqui, mas a palavra "Where" bruscamente traduzido quer dizer "Onde":

 

$id = $_GET['uid']; 
$sql = mysql_query("SELECT login, perfil, fotos, amigos, FROM cadastro WHERE `id` = $id");

 

Traduzindo a consulta acima:

 

id = $_GET['uid']; 

Vai recuperar a opção uid da barra de endereços, ou seja em sua pagina de login ou na página antes da página de usuário ao invés de você criar o link

<a href="usuarios.php">Login</a>

você altera o link para <a href="usuarios.php?uid=idDoUsuario">Login</a>, caso queira de forma dinamica então precisa de um campo input com um formulario exemplo:

 

<form action="usuarios.php" method="post" enctype="multipart/form-data" name="login">

Dai quando o usuario se logar a url do navegador será por exemplo cadastro.php?uid=355, de acordo com o que foi digitado nos campos.Voltando ao código:

id = $_GET['uid']; 

Vai recuperar a opção uid da barra de endereços,

$sql = mysql_query("SELECT login, perfil, fotos, amigos, FROM cadastro WHERE `id` = $id"); 

vai selecionar os campos necessários FROM define de onde devem ser selecionados WHERE define um critério, que neste caso diz, Selecionar valores tal, da tabela tal, WHERE(onde) 'id' ('id' é o campo do seu banco de dados, provavelmente o auto_increment, que é gerado automaticamente) é igual a uid, ou seja onde 'id' é igual a variavel recuperada (uid). "While", apesar de não saber o que que o WHILE tem a ver com este tópico, vou responder, WHILE quer dizer "enquanto" =), Caso deseje entender melhor sobre while, deixo estes dois links: Este e este

. Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

è isso que eu nao gosto pra mim esta correto mas esta retornando 0 pelo var_dump

o que eu estou errando e como sera que eu vou resolver isso de uma vez por tordas.

 

<?php

 

$busca = mysql_query("SELECT * FROM cadastro");

$ver = mysql_fetch_array("$busca");

var_dump("$ver");

 

?>

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\xampp\htdocs\www\buscar.php on line 6

string(0) ""

 

pelo o que eu estou vendo o query nao esta conseguindo achar nada, e por

isso nao esta passando nada para o fetch ja usei o mysql_fetch_row e varios,

ma nao vai dar em nada por que pelo o que eu acho o query nao esta trazendo nada. mas no BD tem dois registros, o que eu estou fazendo de errado?

 

ja tentei:

$buscar = mysql_query("SELECT * FROM usuarios WHERE login = '.$login.'");

e o var_dump da 0

Obrigado amigos

 

Tá ai gente o meu erro e que tinha uma , a mais no final do email.

 

errado:

$bus = mysql_query("SELECT login, email, FROM cadastro");

 

certo:

$bus = mysql_query("SELECT login, email FROM cadastro");

 

para visualizar o codigo voce vai ter que usar esse codigo:

 

while($l = mysql_fetch_array($bus)){

echo "<pre>";

print_r($l["login"]);

echo"<br>";

print_r($l["email"]);

echo "</pre>";

}

 

 

<?php

 

include('conectar bd.php');

 

$bus = mysql_query("SELECT login, email FROM cadastro");

 

while($l = mysql_fetch_array($bus)){

echo "<pre>";

print_r($l["login"]);

echo"<br>";

print_r($l["email"]);

echo "</pre>";

}

?>

 

A gente que estamos iniciando em programação temos muita dificuldade mas quase sempre e coisas pequenas.

vou continuar e mostrar para todos nossos amigos que participa ajudando nos topicos as correções.

 

muito obrigado amigos pela ajuda de todos vocês.

 

ok agora eu tenho a pesquisa de todos os dados dentro do baco de dados.

 

Como chamar apenas as tabela responsável pelo usuario que esta usando seu login e senha pessoal para entrar no site?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos deixa eu colocar de uma melhor forma...

 

vamos voltar a minha necessidade.

 

eu quero que quando o usuario entrar com login e senha ela va para uma pagina particular.

um amigo me disse que a logica disso e que eu devo fazer com que os dados do usuario dentro do Bando de Dados, seja visto em uma pagina chamada users.php, por isso eu criei esse codigo que vai dentro do bd e pega as informaçoes:

 

CODIGO:

 

<?php

include('conectar bd.php');

$bus = mysql_query("SELECT login, email FROM cadastro");

while($lista = mysql_fetch_array($bus))

{

echo "<pre>";

echo($lista["login"]);

echo"<br>";

echo($lista["email"]);

echo "</pre>";

}

?>

agora vamos pensar assim:

eu entro no site...

 

Login Alex senha 123.

como e que o codigo vai saber que sou eu, e que ele tem que ir pegar somente as informaçoes do alex e mostrar elas na pagina users.php?

 

amigos é só me dar o caminho do que eu tenho que estudar e eu vou atraz assim como fui desse codigo que serve para pegar informações dentro do BD vamos la amigos me ajudem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hahaha, sou só mais um, Vales & Dores. Estou aqui pra ajudar.

 

Pode me adicionar como amigo sim. Sempre que precisar, estaremos a disposição! :thumbsup:

Amigo eu já sei fazer uma query no banco de dados e trazer TUDO passar por uma array, mas eu so quero saber como faço para fazer isso em sima do usuario que esta entrando.

 

tenho na mente uma coisa

pego o login e senha da session e coloco na queri pode ser por id que fica mas facil mas o codigo para fazer isso eu to precisando de uma força, como e que eu digo para query pegar somente o que eu quero.

 

vou fazer um exemplo mas deve estar errado.

 

$query = mysql_query("SELEC * FROM perfil WHERE $_SESSION['id']");

 

e claro que nao esta funcionando mas sera que a ideia esta boa tem como me dar uma mao.

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.