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: 12 años, 2 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
  #2 (permalink)  
Antiguo 30/03/2013, 01:38
 
Fecha de Ingreso: febrero-2012
Mensajes: 34
Antigüedad: 12 años, 2 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 17:30.