AYUDA Script Me Gusta Adaptado

Iniciado por J0RG325, 31 Marzo 2013, 07:21 AM

0 Miembros y 1 Visitante están viendo este tema.

J0RG325

Hola nuevamente gente de foro elhacker, he estado trabajando en el Script de me gusta de Marcofbb: http://www.marcofbb.com.ar/script-me-gusta-hecho-e... pero el lo tiene para un sistema de noticias donde esta es su DB

Código (php) [Seleccionar]

CREATE TABLE `post` (
  `id` int(11) NOT NULL auto_increment,
  `nombre` varchar(255) collate utf8_unicode_ci NOT NULL,
  `megusta` int(11) default '0',
  `ips` text collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;


agregue la fila de "megusta" y la de "ips" a mi DB quedando de la siguiente forma

Código (php) [Seleccionar]

CREATE TABLE `usuarios` (
  `usuario_id` int(4) NOT NULL AUTO_INCREMENT,
  `usuario_matricula` varchar(5) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `usuario_clave` varchar(32) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `usuario_nombre` varchar(60) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `usuario_email` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `sexo` tinyint(6) NOT NULL DEFAULT '0',
  `usuario_avatar` varchar(250) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `EstadoKEY` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  `CodigoKEY` varchar(40) COLLATE utf8_unicode_ci NOT NULL,
  `megusta` int(11) NOT NULL DEFAULT '0',
  `ips` text COLLATE utf8_unicode_ci NOT NULL,
  `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`usuario_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ;



ahora les dejo los archivos php que he modificado para que funcionen con mi db

voto.php

Código (php) [Seleccionar]

<?php 
$dbhost 
"127.0.0.1"// Servidor 
$dbuser "root"// Nombre de usuario 
$dbpass "123456"// Contraseña 
$dbname "usuariosdb"// Nombre de la base de datos 

# Creamos conexion a la base de datos 
$link mysql_connect($dbhost,$dbuser,$dbpass); 
        
mysql_select_db($dbname,$link); 

# Imprimimos una prueba para dar como ejemplo 
$sql "SELECT * FROM usuarios ORDER BY megusta DESC"
$query mysql_query($sql,$link); 
?>

<table width="800" border="0" align="center">
  <tr>
    <td width="5%" align="center">ID</td>
    <td width="63%" align="center">USUARIO</td>
    <td width="32%" align="center">ME GUSTA</td>
  </tr>
<?php 
while($row mysql_fetch_assoc($query)) 
{
?>

  <tr>
    <td width="5%" align="center"><?=$row['usuario_id']?></td>
    <td width="63%" align="center"><?=$row['usuario_matricula']?></td>
    <td width="32%" align="center">[<a href="index.php?page_id=megusta&voto=positivo&id=<?=$row['usuario_id']?>">Me gusta</a>] <?=$row['megusta']?> [<a href="index.php?page_id=megusta&voto=negativo&id=<?=$row['usuario_id']?>">No me gusta</a>]</td>
  </tr>
<?php     
}     
?>

</table>


y aca el script que hace todo

megusta.php

Código (php) [Seleccionar]

<?php 
$dbhost 
"127.0.0.1"// Servidor 
$dbuser "root"// Nombre de usuario 
$dbpass "123456"// Contraseña 
$dbname "usuariosdb"// Nombre de la base de datos 

# Creamos conexion a la base de datos 
$link mysql_connect($dbhost,$dbuser,$dbpass); 
        
mysql_select_db($dbname,$link); 
# Saber si el voto es negativo o positivo 
$voto htmlentities($_GET['voto']); 

# Tomamos el id de nuestro post y vemos todas las ip que pusieron megusta 
$usuario_id = (int) $_GET['usuario_id']; 
$query mysql_query("SELECT usuario_id,ips FROM usuarios WHERE usuario_id='".$usuario_id."'",$link); 
$row mysql_fetch_assoc($query); 
$ip $row['ips']; 

# Obtenemos la ip de nuestro visitante         
if ($HTTP_X_FORWARDED_FOR == "") { 
$ipp getenv(REMOTE_ADDR); 

else { 
$ipp getenv(HTTP_X_FORWARDED_FOR); 


# Me gusta o No me gusta 
switch($voto

case 
"positivo"
    if(
$query
    { 
        
$var explode(","$ip); 
        
$arr in_array($ipp$var); 
        if(!
$arr
        { 
            
mysql_query("UPDATE usuarios SET megusta=megusta+1, ips=CONCAT(usuarios.ips,'".$ipp.",') WHERE usuario_id='".$usuario_id."'",$link); 
        } 
    } 
break;     
case 
"negativo"
    if(
$query
    { 
        
$var explode(","$ip); 
        
$arr in_array($ipp$var); 
        if(!
$arr
        { 
            
mysql_query("UPDATE usuarios SET megusta=megusta-1, ips=CONCAT(usuarios.ips,'".$ipp.",') WHERE usuario_id='".$usuario_id."'",$link); 
        } 
    } 
break; 

header('location:index.php?page_id=voto'); 
?>



el archivo voto.php muestra un ranking donde muestra a todos los usuarios registrados y a un costado te aparecen 2 links para darle megusta o no me gusta y enmedio de esos 2 sale la cantidad de votos que ha recibido pero al precionar sobre alguno de esos 2 links no da ni quita nada y siempre queda en 0 la unica forma de darle votos es manualmente mediante el phpmyadmin y el ranking voto.php si los muestra

no estoy seguro si tenga algo mal mi DB o mi modulo de registro que tenga que ver con la IP o el link que me genera el voto.php no funcione ese es mi unico problema que al precionar no da los votos y ya no se que más hacer ya he movido casi todo y nada espero me puedan ayudar con este problema que tengo

por las dudas aca les dejo el sistema modular que tengo en el index.php

Código (php) [Seleccionar]

<?php 
if(empty($_GET['page_id'])) {  
    include(
"modulos/news.php");  
} else { 
    switch (
$_GET['dir']) { 
    default: 
        
$dir "modulos/".$_GET['page_id'].".php"
        
$file "modulos/".basename($_GET['page_id']).".php"
        break; 
    } 
    if(
file_exists($dir)) {  
        include(
$file);  
    } else {  
        echo 
'<table border=0 cellpadding=0 cellspacing=0>  
        <tr>  
        <td width=85%>'
.text_site_module.'</td>  
        </tr>  
        </table>'
;  
    }  
}  
?>