Foros del Web » Programando para Internet » PHP »

Cookies

Estas en el tema de Cookies en el foro de PHP en Foros del Web. miren, mi problema es el siguiente SOY DEMASIADO FLOJO XD... nah ademas de eso xddd... tengo el tipiko problema del contador ke se suma 1+ ...
  #1 (permalink)  
Antiguo 26/03/2005, 19:52
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
Cookies

miren, mi problema es el siguiente
SOY DEMASIADO FLOJO XD... nah ademas de eso xddd...
tengo el tipiko problema del contador ke se suma 1+ cuando actualizo la pagina o cuando ingreso a un enlace (Debido a ke esta en el menú)
sé que se puede solucionar con las famosas Cookies... el problema es...
que no se usarlas, todas las guias de PHP ke he visto dicen una pequeña mencion, como se llaman, etc...
pero no muestran ejemplos muy utiles y los ejemplos que hay, simplemente no los entiendo xD
me gustaria que me dieran un ejemplo de este contador con cookies (o solo parte de el) pero la meta es poder saber bien como se usa esto de las cookies, xq se como "llamarlas" pero no como utilizarlas en el script, osea que pongo en un IF (por ejemplo) que mencione que no se le adhiera uno mas... :S
ojala me entiendan xq soy dificil explicando mi turbia cabezota :)
gracias de antemano
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #2 (permalink)  
Antiguo 26/03/2005, 19:53
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
seria mas facil que te montaaras una tabla sql y la actualizaras cada vez que hubiera una visita.... yo te explico como... te interesaria o no?


Saludos
  #3 (permalink)  
Antiguo 26/03/2005, 19:56
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
dale :D
graxxx :D
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #4 (permalink)  
Antiguo 26/03/2005, 20:10
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
Primero creas la tabla sql, supongamos... que se llama visitas y la montas en el phpmyadmin o en donde las montes tu... aqui esta la instruccion

CREATE TABLE visitas(
id int not null auto_increment,
visitas int not null,
KEY(id)
);

Asi de simple 2 simples columnas....ahora vamos con el codigo...

Código PHP:
//Voy a poner comentarios para explikarte...
//Primero seleccionas todo de la tabla visitas
$sql mysql_query("SELECT * FROM visitas");

//Llamamos a mysql_fetch_array para sacar el numero de visitas, nada
//complicado, utilizando la consulta SQL
$fila mysql_fetch_array($sql);

/*
Visitas = $fila["visitas"]... que significa esto? pues simple... que la variable visitas almacena el valor actual del resultado de la columna "visitas" de la tabla "visitas", esto quiere decir que si en la tabla visitas en tu columna visitas tienes 30 visitas, va obtener el valor 30, simple no?
*/
$visitas $fila["visitas"]
//Sacamos la id de la columna visitas, para que? pues para poder identificar
//la columna visitas y asi poder actualizar la tabla...
$id $fila["id"];
//Ahora simplemente agregamos una visita mas por haberla visto... si eran 30
//Ahora son 31...
$visitas++;

//Actualizamos la tabla y sumamos la nueva visita, y en vez de que sean
//30 ahora van a ser 31, y asi se va ir aumentando automaticamente
//cada vez queun usuario acceda a la pagina donde metas este minicontador
$act mysql_query("UPDATE visitas SET visitas='$visitas' WHERE id='$id'");

//Y ya es todo, ahora si quieres ver el resultado en pantalla en numeros...
//puedes anexar lo siguiente...

$nsql mysql_query("SELECT * FROM visitas");
$ft mysql_fetch_array($nsql);
$vis $ft["visitas"];

echo 
"$vis visitas"
Y eso es todo!! saludoss
  #5 (permalink)  
Antiguo 26/03/2005, 20:20
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
buff.. too correcto... menos las visitas, xDXDXD
no se ven el numero de visitas, pero no me da niun error, solo no se ven :S:S:S:S
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #6 (permalink)  
Antiguo 26/03/2005, 20:22
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
buff... no ahora ta bien
tenia ke insertar un valor en la bd...
el problema ahora es ke
cuando hago f5 igual se agrega uno :S ke hagoooo??? :S:S:S:S:S
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #7 (permalink)  
Antiguo 26/03/2005, 20:23
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
Ahh creo que si me equivoque al final...

debe ser :

echo $vis ."visitas";

en vez de:
echo "$vis visitas";

Disculpas :$
  #8 (permalink)  
Antiguo 26/03/2005, 20:27
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
buff... no ahora ta bien
tenia ke insertar un valor en la bd...
el problema ahora es ke
cuando hago f5 igual se agrega uno :S ke hagoooo??? :S:S:S:S
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #9 (permalink)  
Antiguo 26/03/2005, 20:29
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta

no entendi
  #10 (permalink)  
Antiguo 26/03/2005, 20:38
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
lokooo..!!
mi problema principal es...
la wea de contador, ta en el indice...
cuando apreto "f5" osea actualizar... las visitas se le suma 1
y eso es lo ke evito pues... pero no pasa nada... pasa lo mismo ke kon este kodigo ...

$archivo = "contador.txt";
$contador = 0;

$fp = fopen($archivo,"r");
$contador = fgets($fp, 26);
fclose($fp);

++$contador;

$fp = fopen($archivo,"w+");
fwrite($fp, $contador, 26);
fclose($fp);

echo "Visita nº : $contador";
?>

launke tenga base de datos.. no hay una forma ke la cantidad de visitas no se sume con el hecho de actulizar la pagina???
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #11 (permalink)  
Antiguo 26/03/2005, 20:48
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
aaaaaa....... tu dices que las visitas se sumen una sola vez por IP??? osea que si yo entro 2 veces mi visita no se cuenta porque es la misma IP... eso es lo q tu diceS??
  #12 (permalink)  
Antiguo 26/03/2005, 20:55
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
no se me ocurre como hacerlo (en codigo) pero se me imagina que fuera con hora y IP
onda que si la misma ip entra en tal lapso de tiempo, entonces que no se sumen visitas... por ejemplo 10 minutos, para evitar que se sumen cuando el usuario actualiza la web, o esta navegando en ella :D
ojala me puedas ayudar, tu ayuda ya me ha servido bastante
gracias de antemano
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #13 (permalink)  
Antiguo 26/03/2005, 21:06
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
Información

Claro mira es muy facil...

Voy a retomar la tabla mysql anteriores para no hacerme trisas jeje... solo que esta vez le agregare un campo mas

CREATE TABLE visitas(
id int not null auto_increment,
visitas int not null,
ip varchar(27) not null,
KEY(id)
);

Código PHP:
//primero sacamos la ip
$ip $REMOTE_ADDR;

//luego seleccionamos todo de visitas en orden DEScendiente
$sql mysql_query("SELECT * FROM visitas ORDER BY id DESC");

//despues seleccionamos la ultima fila
$klm mysql_fetch_array($sql);
//Llamamos a visitas y almacenamos el valor en una variable
$visitas $klm["visitas"];


//Si existe la cookie usuariop, imprimimos blanco jejeje
//para que se vea bonito el if  xD
if($HTTP_COOKIE_VARS["usuariop"]){
echo 
" ";
//si no existe lacookie
}else{
//agregamos la visita ultima, con su respectiva ip y su numeor de visita
mysql_query("INSERT INTO visitas (visitas,ip) VALUES('$visitas','$ip')");
//Creamos la cookie usuariop con valor ip que dura 10 minutos
setcookie("usuariop",$ip,time()+600);
}

//Y por ultimo, seleccionamos todo de visitas de manera descenciente

$zkl mysql_query("SELECT * FROM visitas ORDER BY id DESC");

//Seleccionamos la ultima visita es decir el ultimo numro de visita
$fetomysql_fetch_array($zkl);

//Lo almacenamos en una variable
$ult_vis $feto["visitas"];

//Y wala lo imprimimos, es todo...
echo "Hemos tenido".$visitas." visitas"

Saludos!! ESpero que este codigo te sirva mas que el anterior
  #14 (permalink)  
Antiguo 26/03/2005, 22:00
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
=(
me da este error...


Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\nox\cabeza.php:5) in c:\apache\htdocs\nox\contador.php on line 30
Hemos tenido X visitas

donde X = 0 o 20 :S
ke sera?? :S!
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #15 (permalink)  
Antiguo 26/03/2005, 22:07
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
De acuerdo

Disculpame d nuevo la volvi a regar jejje ya que no puedes poner una cokie si no va al principio del documento y yo lo puse enmedio solo

cambia esto...

Código PHP:
//Si existe la cookie usuariop, imprimimos blanco jejeje 
//para que se vea bonito el if  xD 
if($HTTP_COOKIE_VARS["usuariop"]){ 
echo 
" "
//si no existe lacookie 
}else{ 
//agregamos la visita ultima, con su respectiva ip y su numeor de visita 
mysql_query("INSERT INTO visitas (visitas,ip) VALUES('$visitas','$ip')"); 
//Creamos la cookie usuariop con valor ip que dura 10 minutos 
setcookie("usuariop",$ip,time()+600); 

Por esto....
Código PHP:
//Si existe la cookie usuariop, imprimimos blanco jejeje 
//para que se vea bonito el if  xD 
if(!$HTTP_COOKIE_VARS["usuariop"]){ 
setcookie("usuariop",$REMOTE_ADDR,time()+600); 
//Creamos la cookie usuariop con valor ip que dura 10 minutos 
//agregamos la visita ultima, con su respectiva ip y su numeor de visita 
mysql_query("INSERT INTO visitas (visitas,ip) VALUES('$visitas','$ip')"); 

//si no existe lacookie 
}else{ 
 echo 
"";

El codigo anterior debe ir mero arriba del documento, antes de <html>, debe de ir antes de

//primero sacamos la ip
$ip = $REMOTE_ADDR;

De hecho esa linea borrala no la ocupas mas ya que a la hora de crear la cookie directamente le puse la variable $REMOTE_ADDR, .... en fin, el codigo que te di corregido colocalo antes que nada, antes que <html> y antes que

//primero sacamos la ip
$ip = $REMOTE_ADDR;

y la linea esa de $ip, borrala y es todo...

Si tienes dudas aki stare

saludos
  #16 (permalink)  
Antiguo 26/03/2005, 22:08
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
Una ultima aclaracion... corrige esto::

if(!$HTTP_COOKIE_VARS["usuariop"]){

Por esto... ya que si no lo corrijes markara error :$

if(!($HTTP_COOKIE_VARS["usuariop"])){
  #17 (permalink)  
Antiguo 26/03/2005, 22:12
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
buta men muxas gracias... ahora una pregunta... donde se ve el "tiempo de lapso" que tendra la cookie? xD?

xq talvez el codigo funciona bien... pero no lo averiguare hasta que se haga otra visita..y todavia estoy en localhost :S
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #18 (permalink)  
Antiguo 26/03/2005, 22:16
Avatar de Nox
Nox
 
Fecha de Ingreso: diciembre-2004
Ubicación: Viña del Mar
Mensajes: 72
Antigüedad: 13 años
Puntos: 1
buta men... otro problem.. .:S
ahora la kosa... me marka o 1 o 0 :S:S:S:S:S
ke sera???
__________________
todo es serio y ordenado, todo es racional y programado, precisamente porque todo es falso e ilusorio
  #19 (permalink)  
Antiguo 27/03/2005, 10:33
 
Fecha de Ingreso: marzo-2005
Ubicación: cd. victoria, tamps, mexico
Mensajes: 53
Antigüedad: 12 años, 8 meses
Puntos: 0
que te marca 0 o 1 ?
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 03:02.