elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Friend System ayuda error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Friend System ayuda error  (Leído 2,037 veces)
J0RG325

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Friend System ayuda error
« en: 10 Agosto 2013, 20:12 pm »

Hola amigos de elhacker.net en esta ocasión les pido ayuda con un sistema de usuarios que tiene un sistema de amigos la verdad muy básico pero muy bueno, el sistema funciona bien si lo haces manualmente osea del phpmyadmin ya que normal el modulo no funciona

DB
Código:
CREATE TABLE IF NOT EXISTS `users` ( 
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) CHARACTER SET latin1 NOT NULL,
  `password` varchar(255) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;

CREATE TABLE IF NOT EXISTS `frnd_req` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `from` int(11) NOT NULL,
  `to` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;

CREATE TABLE IF NOT EXISTS `frnds` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_one` int(11) NOT NULL,
  `user_two` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;  

perfil.php
Código:
<html> 
<head>
<title>Profile - Friend System</title>
<link rel='stylesheet' href='style.css' />
</head>
<body>
<? include 'connect.php'; ?>

<? include 'functions.php'; ?>

<? include 'header.php'; ?>

<div class='container'>
<?php
if(isset($_GET['user']) && !empty($_GET['user'])){
    $user = $_GET['user'];
} else {
    $user = $_SESSION['user_id'];
}
    $my_id = $_SESSION['user_id'];
    $username = getuser($user, 'username');
    ?>
<h3><?php echo $username; ?></h3>
<?php
if($user != $my_id){
    $check_frnd_query = mysql_query("SELECT id FROM frnds WHERE (user_one='$my_id' AND user_two='$user') OR (user_one='$user' AND user_two='$my_id')");
    if(mysql_num_rows($check_frnd_query) == 1){
        echo "<a href='#' class='box'>Already Frnds</a> | <a href='actions.php?action=unfrnd&user=$user' class='box'>Unfriend $username</a>";
    } else {
        $from_query = mysql_query("SELECT `id` FROM `frnd_req` WHERE `from`='$user' AND `to`='$my_id'");
        $to_query = mysql_query("SELECT `id` FROM `frnd_req` WHERE `from`='$my_id' AND `to`='$user'");
        if(mysql_num_rows($from_query) == 1){
            echo "<a href='#' class='box'>Ignore</a> | <a href='actions.php?action=accept&user=$user' class='box'>Accept</a>";
        } else if (mysql_num_rows($to_query) == 1){
            echo "<a href='actions.php?action=cancel&user=$user' class='box'>Cancel Request</a>";
        } else {
            echo "<a href='actions.php?action=send&user=$user' class='box'>Send Friend Request</a>";
        }
    }
}
?>
</div>

</body>
</html>

si aprietas el boton que dice "Send Friend Request" debería mandar la solicitud recargar la pagina solo y cambiar el boton por "Cancel Request" pero no lo hace siempre se queda igual sin embargo si entras al phpmyadmin y miras la consulta notaras que si la hace pero la hace mal. En "id" va el "id" de la solicitud ahí todo bien, y en "from" siempre queda en 0 pero ahí esta mal ya que debería ser el "id" de quien manda la solicitud y en "to" si lo hace bien y pone el "id" de a quien se manda la solicitud.
Cuando te llega la solicitud tampoco puedes aceptarla por que se queda igual
También si tu mandas una solicitud y quieres cancelarlo tampoco lo hace.


-Este es el archivo actions.php que hace las consultas
actions.php
Código:
<? 

include 'connect.php';

include 'functions.php';

$action = $_GET['action'];

$user = $_GET['user'];

$my_id = $_SESSION['usuer_id'];

if($action == 'send'){
    
    mysql_query("INSERT INTO frnd_req VALUES('', '$my_id', '$user')");
    
}

if($action == 'cancel'){
    
    mysql_query("DELETE FROM `frnd_req` WHERE `from`='$my_id' AND `to`='$user'");
    
}

if($action == 'accept'){
    
    mysql_query("DELETE FROM frnd_req WHERE from='$user' AND to='$my_id'");
    
    mysql_query("INSERT INTO frnds VALUES('', '$user', '$my_id')");

}

if($action == 'unfrnd'){
    
    mysql_query("DELETE FROM frnds WHERE (user_one='$my_id' AND user_two='$user') OR (user_one='$user' AND user_two='$my_id')");
    
}

header('location: profile.php?user='.$user);

?>

-El archivo functions.php que sirve para el login
functions.php
Código:
<?php 

session_start();

function loggedin(){
    if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])){
        return true;
    } else {
        return false;
    }
}

function getuser($id, $field){
    $query = mysql_query("SELECT $field FROM users WHERE id='$id'");
    $run = mysql_fetch_array($query);
    return $run[$field];
}

?>

y por ultimo esta el archivo req.php que es donde te deben aparecer las solicitudes de amistad pero nunca aparecen, no se cual sea el problema...
Código:
<html> 
<head>
<title>Requests - Friend System</title>
<link rel='stylesheet' href='style.css' />
</head>
<body>
<? include 'connect.php'; ?>

<? include 'functions.php'; ?>

<? include 'header.php'; ?>

<div class='container'>
    <hr>Requests : </h3>
    <?php
        $my_id = $_SESSION['user_id'];
        $req_query = mysql_query("SELECT `from` FROM `frnd_req` WHERE `to`='my_id'");
        while($run_req = mysql_fetch_array($req_query)){
            $from = $run_req['from'];
            $from_username = getuser($from, 'username');
            echo "<a href='profile.php?user=$from' class='box' style='display:block'>$from_username</a>";
        }
    ?>
</div>

</body>
</html>

por favor ayúdenme a arreglarlo ya que me gustaría usar este sistema, también si quieres les comparto todo el sistema completo para el que lo quiera usar :D


« Última modificación: 10 Agosto 2013, 20:13 pm por J0RG325 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines