Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Friend System error

Estas en el tema de Friend System error en el foro de PHP en Foros del Web. Hola nuevamente amigos de forodelweb en esta ocasión les pido ayuda con un sistema de usuarios que tiene un sistema de amigos la verdad muy ...
  #1 (permalink)  
Antiguo 10/08/2013, 00:52
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Friend System error

Hola nuevamente amigos de forodelweb 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 PHP:
CREATE TABLE IF NOT EXISTS `users` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
usernamevarchar(255CHARACTER SET latin1 NOT NULL,
  `
passwordvarchar(255CHARACTER SET latin1 NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=;

CREATE TABLE IF NOT EXISTS `frnd_req` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
fromint(11NOT NULL,
  `
toint(11NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=;

CREATE TABLE IF NOT EXISTS `frnds` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
user_oneint(11NOT NULL,
  `
user_twoint(11NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=
perfil.php
Código PHP:
<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 PHP:
<?

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:
<?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 PHP:
<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
  #2 (permalink)  
Antiguo 12/08/2013, 21:52
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Friend System error

Hola en req.php estas pasando 'my_id' literal, no la variable
  #3 (permalink)  
Antiguo 12/08/2013, 22:40
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Friend System error

Cita:
Iniciado por Erick_MD9 Ver Mensaje
Hola en req.php estas pasando 'my_id' literal, no la variable
si amigo me di cuenta pero muchas gracias igual y pues aun sigo con el otro problema
  #4 (permalink)  
Antiguo 12/08/2013, 23:06
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Friend System error

En action.php dice "usuer_id" eso afecta todas las query
  #5 (permalink)  
Antiguo 12/08/2013, 23:33
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Friend System error

Cita:
Iniciado por Erick_MD9 Ver Mensaje
En action.php dice "usuer_id" eso afecta todas las query
amigo pero me sirve bien para el login no entiendo por que falle debido al user_id, alguna idea de que sea o como arreglarlo??

Última edición por J0RG325; 12/08/2013 a las 23:39
  #6 (permalink)  
Antiguo 13/08/2013, 09:54
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 10 años, 8 meses
Puntos: 55
Respuesta: Friend System error

esta mal escrito, "usuer_id" es diferente de "user_id".
aveces la vista juega en contra de nosotros
  #7 (permalink)  
Antiguo 13/08/2013, 15:04
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Friend System error

Cita:
Iniciado por Erick_MD9 Ver Mensaje
esta mal escrito, "usuer_id" es diferente de "user_id".
aveces la vista juega en contra de nosotros
Tienes toda la razón Erick aveces la vista juega con nosotros y si estaba mal escrito yo tenia "usuer_id" y era "user_id" y eso que ya había revisado el código varias veces. Muchas gracias Erick apenas lo tenga completo lo compartiré por que seguro muchos querrán un sistema de amigos.

Etiquetas: html, mysql, select, sql, system, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:49.