php- sq- follow system.......ayudaaa

Hola mi problema es el siguiente, estoy intentando hacer un sistema de seguidores pero envés de seguir usuarios, sigo cosas, artículos y demás.
mi problema es que no se como vincular mi inicio de sesión....
por ejemplo quiero iniciar sesion con un usuario y que este dé click en "seguir" y los almamacene en la base de datos
lo que he encontrado es que guarda la ip, y yo quiero que guarde el id de usuario enves de su ip...Se los agradeceria mucho si pudieran ayudarme aqui les adjunto los codigos.....

-------------------------------------------------------dbcon.php------------------------------------------------------------

<?php
$link = mysql_connect('localhost', 'root', '') or die('error');
@mysql_select_db('follow2',$link) or die('error');   
?>




------------------------------------------------------- follow.php------------------------------------------------------------

<?php

   include("dbcon.php");
   $userip = $_SERVER['REMOTE_ADDR'];
   
   $res = mysql_query("select * from digg_follower_ip where userip = '$userip' AND digg_id = ".@$_REQUEST['id']);
   $check_result = @mysql_num_rows(@$res);
   
   if($check_result > 0)
   {
      @mysql_query("delete from digg_follower_ip where userip = '$userip' AND digg_id = ".@$_REQUEST['id']);
      echo '<a class="btn-follow" href="#"></a>';
   }   
   else
   {
      @mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$userip."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';
   }      
               

?>



------------------------------------------------------- index.php------------------------------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Fancy Menus With CSS and jQuery</title>
      
        <link rel="stylesheet" href="style.css" type="text/css" media="screen"/>
        <script type="text/javascript" src="jquery-1.2.6.min.js"></script>
        <script type="text/javascript" src="jquery.livequery.js"></script>
      
        <script type="text/javascript">
           $(document).ready(function() {
         
                   $('.buttons > a').livequery("click",function(e){
                  
                  var parent  = $(this).parent();
                  var getID   =  parent.attr('id').replace('button_','');
                  
                  $.post("follow.php?id="+getID, {
         
                  }, function(response){
                     
                     $('#button_'+getID).html($(response).fadeIn('slow'));
                  });
            });   
            });
        </script>
    </head>

    <body>
   
   <br clear="all" />
   
        <div id="content">
      <img src="digg.jpg" alt="" />
      <br clear="all" />
      <br clear="all" />
      <?php 
         include("dbcon.php");
         
         $userip = $_SERVER['REMOTE_ADDR'];
         
         $result = mysql_query("select * from digg_follow order by id asc");
         
         while ($row = mysql_fetch_array($result))
         {?>
            <div class="digg-panel">
               
               <div class="img-username">
               
                  <img alt="<?php  echo $row['username']?>" src="<?php  echo $row['image']?>.png" width="40" height="40" class="userImage" alt="" />
                  <div class="user-title">
                     <a href="http://digg.com/<?php  echo $row['username']?>" class="fullname"><?php  echo $row['fullname']?></a>
                     
                     <a href="http://digg.com/<?php  echo $row['username']?>" class="username"><?php  echo $row['username']?></a>
                  </div>
               </div>
               
               <?php
               $res = mysql_query("select * from digg_follower_ip where userip = '$userip' AND digg_id = ".$row['id']);
               
               $check_result = @mysql_num_rows(@$res);
               
               if($check_result > 0)
               {?>
                  <span class="buttons" id="button_<?php echo $row['id']?>"><a class="btn-following" href="javascript: void(0)"></a></span>
                  <?php
               }
               else
               {?>
                  <span class="buttons" id="button_<?php echo $row['id']?>"><a class="btn-follow" href="javascript:void(0)"></a></span>
                  <?php
               }?>
               <br clear="all" />
               
               <div class="bio">
               <?php  echo $row['bio']?>
               </div>
               
            </div>
         <?php 
         }?>
      
      
      
      
      
      
        </div>
      
      
      <br clear="all" />
      
    </body>
</html>






-------------------------------------------------------acceso.php ------------------------------------------------------------



<?php
   session_start();
   include('acceso_db.php');
?>
<!doctype html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
   <?php
       if(empty($_SESSION['usuario_nombre'])) { // comprobamos que las variables de sesión estén vacías       
   ?>
           <form action="comprobar.php" method="post">
               <label>Usuario:</label><br />
               <input type="text" name="usuario_nombre" /><br />
               <label>Contraseña:</label><br />
               <input type="password" name="usuario_clave" /><br />
               <a href="recuperar_contrasena.php">Recuperar contraseña</a><br />
               <input type="submit" name="enviar" value="Ingresar" />
           </form>                   
   <?php
       }else {
   ?>
           <p>Hola <strong><?=$_SESSION['usuario_nombre']?></strong> | <a href="logout.php">Salir</a></p>
   <?php
       }
   ?> 
</body>
</html>






------------------------------------------------acceso_db.php------------------------------------------------------------
<?php
    $host_db = "localhost"; // Host de la BD
    $usuario_db = "root"; // Usuario de la BD
    $clave_db = ""; // Crontraseña de la BD
    $nombre_db = "login"; // Nombre de la BD
   
    //conectamos y seleccionamos db
   $dbcon= mysql_connect($host_db, $usuario_db, $clave_db);
    mysql_select_db($nombre_db);
?>


-------------------------------------comprobar.php-------------------------------------------------------------------------


<?php
    session_start();
    include('acceso_db.php');
    if(isset($_POST['enviar'])) { // comprobamos que se hayan enviado los datos del formulario
        // comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos
        if(empty($_POST['usuario_nombre']) || empty($_POST['usuario_clave'])) {
            echo "El usuario o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>";
        }else {
            // "limpiamos" los campos del formulario de posibles códigos maliciosos
            $usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
            $usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
            $usuario_clave = md5($usuario_clave);
            // comprobamos que los datos ingresados en el formulario coincidan con los de la BD
            $sql = mysql_query("SELECT usuario_id, usuario_nombre, usuario_clave FROM usuarios WHERE usuario_nombre='".$usuario_nombre."' AND usuario_clave='".$usuario_clave."'");
            if($row = mysql_fetch_array($sql)) {
                $_SESSION['usuario_id'] = $row['usuario_id']; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id
                $_SESSION['usuario_nombre'] = $row["usuario_nombre"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre
                header("Location: index.php");
            }else {
?>
                Error, <a href="acceso.php">Reintentar</a>
<?php
            }
        }
    }else {
        header("Location: acceso.php");
    }
?>



AQUI VAN LAS TABLAS


---------------------------------------USUARIOS------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `usuarios` (
  `usuario_id` int(4) NOT NULL AUTO_INCREMENT,
  `usuario_nombre` varchar(15) NOT NULL DEFAULT '',
  `usuario_clave` varchar(32) NOT NULL DEFAULT '',
  `usuario_email` varchar(50) NOT NULL DEFAULT '',
  `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `work` varchar(50) NOT NULL,
  `avatarv` varchar(100) NOT NULL,
  PRIMARY KEY (`usuario_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;





------------------------------------FOLLOW--------------------------------------------------------------------


CREATE TABLE IF NOT EXISTS `digg_follow` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fullname` varchar(120) NOT NULL,
  `username` varchar(80) NOT NULL,
  `image` varchar(100) NOT NULL,
  `bio` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;




----------------------------FOLLOW-IP------------------------------------------------------
CREATE TABLE IF NOT EXISTS `digg_follower_ip` (
  `userip` varchar(200) NOT NULL,
  `digg_id` int(11) NOT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Empiezas una variable de sesión con $_SESSION[-nombre que le quieras dar-] y le asignas el valor del nombre o ID de usuario.
Lo siento pero no entiendo bien, puedes ser mas explícito?
Según leo al final de follow.php:
@mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$userip."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';

Por lo tanto almacena la IP y la ID, verifica que realmente no tienes la id guardada ;)
Xavy_S escribió:Según leo al final de follow.php:
@mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$userip."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';

Por lo tanto almacena la IP y la ID, verifica que realmente no tienes la id guardada ;)



inserta la id del producto que sigo, pero no la del usuario
Tienes toda la razón, prueba a cambiar esto
      @mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$userip."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';
   }     

Por esto
      @mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$_SESSION['usuario_id']."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';
   }     

Se ha cambiado
VALUES('".$userip."','".@$_REQUEST['id']."')");

Por
VALUES('".$_SESSION['usuario_id']."','".@$_REQUEST['id']."')");

Ya que según veo en tu comprobar.php creas esa variable en la sesión para almacenar el ID de usuario.

Pruébalo y me dices, que hace años que no toco PHP, pero a simple vista me cuadra (aunque no estoy seguro ya de como se usaban las sesiones).
Xavy_S escribió:Tienes toda la razón, prueba a cambiar esto
      @mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$userip."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';
   }     

Por esto
      @mysql_query("INSERT INTO digg_follower_ip (userip,digg_id) VALUES('".$_SESSION['usuario_id']."','".@$_REQUEST['id']."')");
      echo '<a class="btn-following" href="#"></a>';
   }     

Se ha cambiado
VALUES('".$userip."','".@$_REQUEST['id']."')");

Por
VALUES('".$_SESSION['usuario_id']."','".@$_REQUEST['id']."')");

Ya que según veo en tu comprobar.php creas esa variable en la sesión para almacenar el ID de usuario.

Pruébalo y me dices, que hace años que no toco PHP, pero a simple vista me cuadra (aunque no estoy seguro ya de como se usaban las sesiones).


Sabes como cambiar esto $userip = $_SERVER['REMOTE_ADDR']; por algo mas parecido que recoja la id y no la ip?
Claro, de hecho está en el código que te acabo de pasar, es este:
$_SESSION['usuario_id']
7 respuestas