Ir para conteúdo

POWERED BY:

Arquivado

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

RaroPixelado Raro

Página apenas para amigos - PHP

Recommended Posts

Bom eu coloquei to jeito que você mostro na logica láa de cima e continua o mesmo error

 

Essa parte do código:

 

         if( !in_array( $dados[ 'id' ], $_SESSION[ 'id' ] ) ){
            header( 'location: privacy?id=13', true );

não deveria estar cehcando se meu id é igual a alguns dos ids que o mysql pegou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá, vamos pela logica .. no SQL eu vou retornar minha lista de amigos, no qual não inclui 'eu mesmo', eu não posso ser amigo de mim mesmo ..

então, você teria que logar com outro usuário, por outro navegador pra testar, então dá pra resolver no SQL mesmo.

mysql> select * from usuarios;
+-----+--------+------------+
| uid | nome   | sobrenome  |
+-----+--------+------------+
|   1 | Andrey | Knupp      |
|   2 | João   | Da Silva   |
|   3 | Maria  | Dos Santos |
+-----+--------+------------+
3 rows in set (0.09 sec)

mysql> select * from amigos;
+-----+-----+
| uid | fid |
+-----+-----+
|   1 |   2 |
|   1 |   3 |
|   3 |   1 |
|   3 |   2 |
+-----+-----+
4 rows in set (0.00 sec)

Veja a lista acima, na tabela amigo, o uid 1 = 'Andrey' ou seja: 'eu', o uid 3 é outro usuário ..

mysql> select count(*) from amigos inner join usuarios on amigos.fid = usuarios.uid where amigos.uid = 1 and amigos.fid = 3;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.01 sec)

 

Então, vou selecionar nos amigos do 'uid' 1 ou seja: eu, o amigo com id 3, ou seja a pessoa,

deixando mais claro pra você

select count(*) from amigos inner join usuarios on amigos.fid = usuarios.uid where amigos.uid = ID_NA_URL and amigos.fid = VOCÊ;

 

Então agora basta você contar .. se retornar 1 é que você é amigo, se não retornar nada, e porque não é amigo

 

<?php
 ob_start();
 session_start();
 $_SESSION[ 'id' ] = $_GET[ 'id' ];
 $usuario = $_GET[ 'fid' ];
 echo '<pre>';
 $PDO = new PDO( 'mysql:host=localhost;dbname=exemplo', 'usuario', 'senha' );
 $PDO->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
 $query = $PDO->prepare( 'SELECT * FROM `amigos` INNER JOIN `usuarios` ON `amigos`.`fid` = `usuarios`.`uid` WHERE `amigos`.`uid` = :uid AND `amigos`.`fid` = :voce ' );
 $query->bindParam( ':uid', $_SESSION[ 'id' ], PDO::PARAM_INT );
 $query->bindParam( ':voce', $usuario, PDO::PARAM_STR );
 $query->execute();
 if( $query->rowCount() != false ){
	echo 'Eu sou amigo';
 }else{
	echo 'Eu não sou amigo';
	exit();
 }

 

Na url, eu coloquei:

http://localhost/pagina.php?id=1&fid=1

 

Saída:

Eu não sou amigo

 

Mais agora:

http://localhost/pagina.php?id=1&fid=3

 

Saída:

Eu sou amigo

 

uid = usuário que você vai verificar se 'me' tem como amigo

fid = você, você pega no SESSION ..

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.