Foros del Web » Programando para Internet » PHP »

Ayuda con condicion..

Estas en el tema de Ayuda con condicion.. en el foro de PHP en Foros del Web. Buenas tardes... tengo un problemita.. lo que quiero hacer es que un usuario no pueda hacer click en un enlace mas de una vez por ...
  #1 (permalink)  
Antiguo 29/04/2007, 12:43
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Ayuda con condicion..

Buenas tardes...
tengo un problemita.. lo que quiero hacer es que un usuario no pueda hacer click en un enlace mas de una vez por dia..
entonces lo que hago es crear una tabla con IP FECHA ENLACE

el problema viene aca..
cada ip que clickea, la guardo en la BD junto con el enlace que hizo click.. y al fecha..

entonces, este es el codigo que al clickear te da suma el click al usuario


Cita:
<?

include('config.php');


$sql = "UPDATE user SET clicks=clicks+1 WHERE id_imagen=$id_usuario";
mysql_query($sql);

echo '<meta http-equiv="Refresh" content="10;URL=index.php">';

?>
y loq eu quiero hacer seria mas o menos esto:

if (SI EL IP Y EL ENLACE ESTAN EN LA BD)

{
echo 'ya has clickeado';

}else{

QUE EJECUTE EL UPDATE DE ARRIBA

}


para resumir, lo que me falta, y no se hacer.. es como decirle al IF, que si en la tabla esta ese enlance y ese IP, osea q ese IP clickeo a ese Enlace, te de el error o te haga el update..


no se si se entiende..
saludos y gracias de antemano!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #2 (permalink)  
Antiguo 29/04/2007, 13:02
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 10 meses
Puntos: 3
Re: Ayuda con condicion..

seria algo como:

Código PHP:
if($row["campoIP"] == $_SERVER["REMOTE_ADDR"] && $row["campoenlace"] == "enlace")
{
echo 
"ya has clikeado";
}
else
{
echo 
"enlace";

creo que es a lo que te refieres, no?
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #3 (permalink)  
Antiguo 29/04/2007, 13:48
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

Gracias cirujano.. no entinedo bien tu codigo..
lo que se me ocurre ahora.. es algo asi.. agrego un campo ID, autoincremental.. y entonces de ahi hago la condicion..
puede ser algo asi.. IF(si hay un ID con tal Enlace y tal IP)

{echo'error';

}else{

update

}


No se si se pora hacer asi..

saludos y gracias por responder!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #4 (permalink)  
Antiguo 29/04/2007, 14:06
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con condicion..

Te recomiendo borrar cada entrada luego de 1 dia de haber sido insertada en la db, de manera de que no se te llene al dope.
  #5 (permalink)  
Antiguo 29/04/2007, 14:10
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 10 meses
Puntos: 3
Re: Ayuda con condicion..

Código PHP:
// Si tu campoIP tiene 192.168.0.1 y REMOTE_ADDR tambien 192.168.0.1 && campoenlace tiene buscador.php y "enlace" tambien es buscador.php te muestra que ya has clickeado
if($row["campoIP"] == $_SERVER["REMOTE_ADDR"] && $row["campoenlace"] == "enlace")
{
echo 
"ya has clikeado";
}
else
{
// de lo contrario te muestra el enlace
echo "enlace";

__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #6 (permalink)  
Antiguo 29/04/2007, 14:21
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

Gracias nuevamente.. pero no me funciona--

aca dejo el codigo entero..

Código PHP:
<?
include('config.php');


$id $_SESSION['idusuario'];
$IP $_SERVER["REMOTE_ADDR"]; 

$fecha time (); 

if(
$row[$IP] == $_SERVER["REMOTE_ADDR"] && $row["$id"] == "$id")
{
echo 
"ya has clikeado";
}
else
{

echo 
"enlace";
}  



?>
donde $IP es el ip del usuario q va a votar, y $id, seria el enlace q mencione anteriormente...

pero me mueestra ENLACE.. del echo
Código PHP:
echo "enlace"
, estando mi ip y ese "enlace" en la BD...

cual seria el error..

saludos y mil gracias..
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #7 (permalink)  
Antiguo 29/04/2007, 14:22
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

Cita:
Iniciado por Ioryo Ver Mensaje
Te recomiendo borrar cada entrada luego de 1 dia de haber sido insertada en la db, de manera de que no se te llene al dope.
con respecto a esto.. lo dejo para despues..
hago un delete, que suprima todos los campos mayores a un dia..

saludos!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #8 (permalink)  
Antiguo 29/04/2007, 14:40
 
Fecha de Ingreso: abril-2007
Mensajes: 127
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con condicion..

Mira a ver, en config.php estan solo las opciones de coneccion/seleccion de db cierto? en ese caso:

Código PHP:
<?php
session_start
(); //esto tiene que estar en cada pagina que chequee o utilice funciones referentes a la sesion
include('config.php');

$idusuario=$_SESSION['idusuario'];
$ip=$_SERVER["REMOTE_ADDR"]; 

//Tomas los datos guardados, llamese idusuario e ip:
$result=mysql_query("SELECT * FROM tabla WHERE idusuario=$idusuario",$connect); //le pedis que te devuelva los datos donde el idusuario es igual al que esta en session
//$connect es la variable donde definiste la coneccion en config.php

$fecha=now(); //now() indica la fecha y tiempo exacto del servidor en el momento de la consulta

//Preguntas si la ip guardada es igual a la actual en dicho usuario, y si hizo mas de 1 click:
if ($row["ip"]==$ip && $id==$row["idusuario"] && $row["clicks"]>1)
{
echo 
"ya has clikeado";
}
else
{
echo 
"enlace";
}  

//Liberar los resultados para no ocupar memoria inutil y cerrar la coneccion:
mysql_free_result($result);
mysql_close($connect);
?>
  #9 (permalink)  
Antiguo 29/04/2007, 16:36
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

Gracias por tu respuesta.. pero esta muy rebuscada y enrredada.. seria algo mas simple.. como el que posteo el cirujano...
no tan complicado, sin fecha.. y demas..
es solo loq eu postee arriba..

saludos y gracias!

PD: alguna otra forma.. o solucion??

MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #10 (permalink)  
Antiguo 30/04/2007, 07:45
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

Buenos DIas..
alguna solucion..

gracias!

MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #11 (permalink)  
Antiguo 30/04/2007, 08:05
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Re: Ayuda con condicion..

para mi que tu problema es este
Código PHP:
$row[$IP] == $_SERVER["REMOTE_ADDR"] && $row["$id"] == "$id"
//deberías tener algo com esto
$row['ip'] == $IP && $row['id'] == "$id" 
$row['ip'], si el nombre del campo donde guardas el ip del usuario no se llama 'ip' cambialo por el nombre que tienes en tu tabla lo mismo para $row['id'] aqui es el nombre del campo donde guardas el id del usuario y en cuanto a $_SERVER["REMOTE_ADDR"] ya no es necesario que lo repitas ya que el contenido se asignas a la variable $IP.

suerte y saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 30/04/2007 a las 18:08
  #12 (permalink)  
Antiguo 30/04/2007, 10:06
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

NO, es correcto.. mi campo se llama ip, asique no tedria que haber problemas--

saludos! y gracias!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #13 (permalink)  
Antiguo 30/04/2007, 10:22
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Re: Ayuda con condicion..

bien si debe haber problemas si tu lo dejas así
Código PHP:
$row[$IP] == $_SERVER["REMOTE_ADDR"] && $row["$id"] == "$id" 
fijate que tu pones ip como variable es decir $IP y eso no es correcto ya que el ser remplazado por el valor de $IP no coincidiran con el nombre del campo, ejemplo
Código PHP:
//suponiendo que tienes esto
$IP=$_SERVER["REMOTE_ADDR"];//y esto sea 123.123.123.123 por ejemplo
//cuando se remplace $IP despues de pasar por php te quedaría algo como esto
$row[123.123.123.123];//y esto no es correcto ya que tu no tienes un campo con ese nombre 
y algo similar sucede con $row["$id"].

suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 02/05/2007 a las 08:37
  #14 (permalink)  
Antiguo 30/04/2007, 17:11
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Ayuda con condicion..

Claro.. entiendo..
entonces como tendria que hacer para adaptarlo.. basandome en lo primero que posteo EL CIRUJANO..

saludos y mil gracias por todo..
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #15 (permalink)  
Antiguo 30/04/2007, 18:13
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 9 meses
Puntos: 88
Re: Ayuda con condicion..

creo que es poner algo como esto
Código PHP:
if($row["ip"] == $IP && $row["id"] == $id
nota que dentro de los corchetes debe de ir el nombre del campo que quieres comparar sin poner el '$'.

suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
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 10:33.