Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Script Me Gusta Adaptado

Estas en el tema de Script Me Gusta Adaptado en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/03/2013, 18:40
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 14 años, 8 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` (
  `
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:
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 '',
  `
usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `
estatus` tinyint(2) NOT NULL DEFAULT '0',
  `
megusta` int(11) NOT NULL DEFAULT '0',
  `
ips` text COLLATE utf8_unicode_ci NOT NULL,
  
PRIMARY KEY (`usuario_id`)
) 
ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=8 ; 
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
  #2 (permalink)  
Antiguo 30/03/2013, 01:38
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Script Me Gusta Adaptado

alguien me podria ayudar?

Etiquetas: megusta
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 00:54.