Pequeño script de Bienvenida

Hola a tod@s.
Como en php y mysql aun soy un primerizo, se me pasan cosas por la cabeza que seguramente estan mas que sabidas, pero como no las veo por aqui, pues las posteo por si puede interesar.
Se me ocurrió que podía cambiarle el saludo a los visitantes de mi pagina o darle la bienvenida, si era su primera visita. Y lo hize asi:
Primero cree una base de datos, con un solo campo "IP".
Segundo cambié mi pagina index.html por index.php, para que funcionara el script.
Tercero introduje el script, este:
<?php
           //Me conecto con la bd
include ("conecta.php");
           //Tomo la IP del visitante 
$ip = $_SERVER['REMOTE_ADDR'];
	  //Aqui consulto si el visitante ya ha visitado mi web y por tanto está en la bd
$consulta=("SELECT IP FROM USUARIOS"); 
$resultado=mysql_query($consulta) or die ('error en consulta');
         //Sino la ha visitado... pues que le diga lo que hay en "if" y que lo registre como visitante
if (mysql_num_rows($resultado) == 0)
{
echo "Bienvenido";
mysql_query("INSERT INTO USUARIOS (IP)
values ('$ip')") or die ('error al introducir');
}
         //Y si ya la ha visitado...
else {
echo "Gracias por volver";
}

?>

¿Que os parece? Sencillo ¿verdad? aunque no se si original.
Lo mejor de caerse al tropezar, es volverse a levantar.
Sencillo, sí, pero no está nada mal.
Se puede modificar según tus necesidades y hacer realmente una buena bienvenida, por supuesto.
Servirá a más de un@, ¡Gracias por el aporte!

Si os fijáis las cuatro línes que he escrito empiezan por S xD
para hacerlo mas interesante podrias agregarle un campo mas a tu tabla con el tiempo en que ingreso, y asi poder decirle al usuario que volvio hace cuanto tiempo que visito la web, algo como: "Hey Amigo No Te Veiamos Por Aqui Desde $fecha, Gracias Por Volver Ha Visiarnos".
No es mala idea, para eso debo de hacer un update where IP='$ip' ¿no?
Lo mejor de caerse al tropezar, es volverse a levantar.
algo asi, pero la ip no, ya que tu sistema esta basado en ips, tendras que agregar un campo para guardar la fecha de ingreso, y actualizar la fecha cada que vuelva ha entrar.
Bueno pues creo que lo he hecho. Os dejo el code por si quereis echarle un vistasillo a ver si hay algun error.:
<?php
          
include ("conecta.php");
$fecha = date ("d/m/Y");
           //Tomo la IP del visitante 
$ip = $_SERVER['REMOTE_ADDR'];
      //Aqui consulto si el visitante ya ha visitado mi web y por tanto está en la bd
$consulta = mysql_query("SELECT * FROM USUARIOS WHERE IP = '$ip'"); 
         //Sino la ha visitado... pues que le diga lo que hay en "if" y que lo registre como visitante
if ($row = mysql_fetch_array($consulta) == 0)
{
echo "<h3>Bienvenido</h3> ";
$inserto = mysql_query("INSERT INTO USUARIOS (IP, FECHA)
values ('$ip','$fecha')") or die ('error al introducir');
}
         //Y si ya la ha visitado...
else {
$consultoFecha = mysql_query("SELECT FECHA FROM USUARIOS WHERE IP ='$ip'");
$row = mysql_fetch_array($consultoFecha);
echo "<h3>Gracias por volver, no nos visitas desde ".$row["FECHA"]."</h3> ";
$actualizar = mysql_query ("UPDATE USUARIOS SET FECHA = '$fecha' WHERE IP ='$ip'");
}

?> 
Lo mejor de caerse al tropezar, es volverse a levantar.
Ahora se me ocurrió que puedo ponerle un campo con el nº de visitas que realiza una misma IP.
Pero ¿como debe ser ese campo para que se autoincremente?
Por que no vale que sea INT y A.I ya que eso sólo haría contar los registros.
Lo mejor de caerse al tropezar, es volverse a levantar.
Pues si podria contar las visitas con el INT se iria incrementando 1,2,3,4,5,6,7

y lo harias de esta forma:

if($row['ip'] != 0)
{
$consulta = mysql_query("UPDATE tutabla(ip) SET ip='$row["ip"]+1") or die("ERROR");
}

Un saludo.
Es facil programar "Solo interesate en aprender"
Hola cesar_ed.
No te entendí.
Si... creo un campo nuevo para contar las visitas que se llame VISITAS y teniendo en cuenta que tambien se debe actualizar la fecha de la visita, ¿como hago la consulta y el update? Pues si tengo esto:
else {
$consultoFecha = mysql_query("SELECT FECHA FROM USUARIOS WHERE IP ='$ip'");
$row = mysql_fetch_array($consultoFecha);
echo "<h3>Gracias por volver, no nos visitas desde ".$row["FECHA"]."</h3> ";
$actualizar = mysql_query ("UPDATE USUARIOS SET FECHA = '$fecha' WHERE IP ='$ip'");
}

y le añado al ("SELECT FECHA, VISITAS FROM USUARIOS WHERE IP ='$ip'"); y al ("UPDATE USUARIOS SET FECHA = '$fecha', VISITAS ='row['VISITAS']+1' WHERE IP ='$ip'"); me un error que no entiendo. ¿Podrias aclaramelo?
Gracias
Lo mejor de caerse al tropezar, es volverse a levantar.
SOLUCIONAO
No había caído en la cuenta de que sólo estaba consultando la FECHA y que la $visitas no había sido declarada ya lo solucione así:
else {
$consultoFecha = mysql_query("SELECT * FROM USUARIOS WHERE IP ='$ip'");
$row = mysql_fetch_array($consultoFecha);
echo "<h3>Gracias por volver, no nos visitas desde ".$row["FECHA"]."</h3> ";
$visitas = $row["VISITAS"];
$actualizar = mysql_query ("UPDATE USUARIOS SET FECHA = '$fecha', VISITAS = '$visitas'+1 WHERE IP ='$ip'");
}
Seguramente habrá otra manera más fácild e hacerlo, pero bueno para ser de quien es y para lo que es, no está nada mal ¿no?
Gracias serverdns, cesar_ed.
Lo mejor de caerse al tropezar, es volverse a levantar.
gjulian escribió:Hola cesar_ed.
No te entendí.
Si... creo un campo nuevo para contar las visitas que se llame VISITAS y teniendo en cuenta que tambien se debe actualizar la fecha de la visita, ¿como hago la consulta y el update? Pues si tengo esto:
else {
$consultoFecha = mysql_query("SELECT FECHA FROM USUARIOS WHERE IP ='$ip'");
$row = mysql_fetch_array($consultoFecha);
echo "<h3>Gracias por volver, no nos visitas desde ".$row["FECHA"]."</h3> ";
$actualizar = mysql_query ("UPDATE USUARIOS SET FECHA = '$fecha' WHERE IP ='$ip'");
}

y le añado al ("SELECT FECHA, VISITAS FROM USUARIOS WHERE IP ='$ip'"); y al ("UPDATE USUARIOS SET FECHA = '$fecha', VISITAS ='row['VISITAS']+1' WHERE IP ='$ip'"); me un error que no entiendo. ¿Podrias aclaramelo?
Gracias

Es muy simple ,
primero modificamos la variable $consultoFecha, quitando la seleccion de fecha por un asterisco esto nos permitira seleccionar varios campos posteriormente de esta manera:
else {
$consultoFecha = mysql_query("SELECT * FROM USUARIOS WHERE IP ='$ip'");
$row = mysql_fetch_array($consultoFecha);
echo "<h3>Gracias por volver, no nos visitas desde ".$row["FECHA"]."</h3> ";
$actualizar = mysql_query ("UPDATE USUARIOS SET FECHA = '$fecha', VISITAS='".$row['VISITAS']."+1' WHERE IP ='$ip'");
}


Asi de sencillo ;)

Un saludo
Es facil programar "Solo interesate en aprender"
Rayos me tarde un poco veo que lo solucionaste xD

Un saludo.
Es facil programar "Solo interesate en aprender"
Segun te lo exponía, me estaba dando cuenta de la solucion.
De todas maneras gracias.
Un saludo