Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/03/2013, 18:40
J0RG325
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 9 meses
Puntos: 0
AYUDA Script Me Gusta Adaptado

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

Código PHP:
CREATE TABLE `post` (
  `
idint(11NOT NULL auto_increment,
  `
nombrevarchar(255collate utf8_unicode_ci NOT NULL,
  `
megustaint(11) default '0',
  `
ipstext collate utf8_unicode_ci NOT NULL,
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=
agregue la fila de "megusta" y la de "ips" a mi DB quedando de la siguiente forma

Código PHP:
CREATE TABLE `usuarios` (
  `
usuario_idint(4NOT NULL AUTO_INCREMENT,
  `
usuario_matriculavarchar(5COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `
usuario_clavevarchar(32COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `
usuario_nombrevarchar(60COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `
usuario_emailvarchar(50COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `
sexotinyint(6NOT NULL DEFAULT '0',
  `
usuario_avatarvarchar(250COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `
usuario_fregdatetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `
estatustinyint(2NOT NULL DEFAULT '0',
  `
megustaint(11NOT NULL DEFAULT '0',
  `
ipstext COLLATE utf8_unicode_ci NOT NULL,
  
PRIMARY KEY (`usuario_id`)
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=
ahora les dejo los archivos php que he modificado para que funcionen con mi db

voto.php
Código PHP:
<?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:
<?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:
<? 
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>'

    } 

?>

Última edición por J0RG325; 28/03/2013 a las 23:53