Foros del Web » Programando para Internet » PHP »

Cronómetro en PHP + Sincronización con la base de datos

Estas en el tema de Cronómetro en PHP + Sincronización con la base de datos en el foro de PHP en Foros del Web. Hola! He creado un sistema de usuarios en PHP sin MYSQL funciona de maravilla pero... Quiero ir un poco más allá. Código PHP: <?php $mensaje_error  ...
  #1 (permalink)  
Antiguo 28/06/2011, 02:24
 
Fecha de Ingreso: abril-2011
Ubicación: España, Mdrid
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 1
Cronómetro en PHP + Sincronización con la base de datos

Hola! He creado un sistema de usuarios en PHP sin MYSQL funciona de maravilla pero... Quiero ir un poco más allá.

Código PHP:
<?php
$mensaje_error 
"";
if (
$_SERVER['REQUEST_METHOD'] == 'POST')
{
   
$accion = isset($_POST['accion']) ? $_POST['accion'] : '';
   
$base_datos 'usuariosdb.php';
   
$pagina_sucesos './index.php';

   if (!
file_exists($base_datos))
   {
      echo 
'La base de datos no funciona!';
      exit;
   }
   if (
$accion == 'registro')
   {
      
$nuevonombre_usuario $_POST['nombre_usuario'];
      
$nuevoemail $_POST['email'];
      
$nuevacontrasena $_POST['contrasena'];
      
$confirmarcontrasena $_POST['confirmarcontrasena'];
      
$nuevonombre_completo $_POST['nombre_completo'];
      if (
$nuevacontrasena != $confirmarcontrasena)
      {
         
$mensaje_error 'Tu contrasena y la confirmada no es la misma.';
      }
      else
      if (!
ereg("^[A-Za-z0-9_!@$]{1,50}$"$nuevonombre_usuario))
      {
         
$mensaje_error 'Tu nombre de usuario no es válido.';
      }
      else
      if (!
ereg("^[A-Za-z0-9_!@$]{1,50}$"$nuevacontrasena))
      {
         
$mensaje_error 'Tu contrasena no es válida.';
      }
      else
      if (!
ereg("^[A-Za-z0-9_!@$.' &]{1,50}$"$nuevonombre_completo))
      {
         
$mensaje_error 'Tu nombre completo no es válido.';
      }
      else
      if (!
ereg("^.+@.+\..+$"$nuevoemail))
      {
         
$mensaje_error 'Tu Email no es válido.';
      }
    [
B]  $elementos file($base_datos);
      foreach(
$elementos as $enlinea)
      {
         list(
$nombre_usuario$contrasena$email$nombre_completo) = explode('|'trim($enlinea));
         if (
$nuevonombre_usuario == $nombre_usuario)
         {
            
$mensaje_error 'Tu nombre de usuario ya está en uso. Por favor, prueba con otro.';
            break;
         }
      }
      if (empty(
$mensaje_error))
      {
         
$archivo fopen($base_datos'a');
         
fwrite($archivo$nuevonombre_usuario);
         
fwrite($archivo'|');
         
fwrite($archivomd5($nuevacontrasena));
         
fwrite($archivo'|');
         
fwrite($archivo$nuevoemail);
         
fwrite($archivo'|');
         
fwrite($archivo$nuevonombre_completo);
         
fwrite($archivo'|1');
         
fwrite($archivo"\r\n");
         
fclose($archivo);[/B]

         
$mailto $nuevoemail;
         
$asunto 'Tu nueva cuenta.';
         
$correo 'Una nueva cuenta a sido creada';
         
$correo .= "\r\nnombre_usuario: ";
         
$correo .= $nuevonombre_usuario;
         
$correo .= "\r\ncontrasena: ";
         
$correo .= $nuevacontrasena;
         
$correo .= "\r\n";
         
$encabezado_correo  "De: [email protected]"."\r\n";
         
$encabezado_correo .= "X-Mailer: PHP v".phpversion();
         
mail($mailto$asunto$correo$encabezado_correo);
         
header('Location: '.$pagina_sucesos);
         exit;
      }
   }
}
?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" >
<link rel="stylesheet" type="text/css" href="estiloregistro.css"></link>
<link rel="stylesheet" type="text/css" href="estiloindex.css"></link>
<title>Tu libro de compases - Alumno</title>
</head>
<body>
<!-- CABEZA -->
<div id="cabecero">
<div id="menu">
<div id="tabla">
    <ul>
<li><a href="#" >Opciones</a></li>    
<li><a href="#" >Alumno</a></li>  
<li><a href="#" >Estadísticas</a></li>    
    </ul>
</div>
</div>
<div id="menu2">
<div id="tabla2">
    <ul>
<li><a href="#" id="especial">Iniciar sesión</a></li>     
    </ul>
</div>
</div>
</div>
<div id="contenido">
<div id="herramienta">
<div class="margen">
<div id="div_registro">
<form name="registro" method="post" action="<?php echo basename(__FILE__); ?>" id="registro">
<input type="hidden" name="accion" value="registro">
<table fontsize="12px" align="center">
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr>
   <td align="center" colspan="2"><strong>Registrate para crear una nueva cuenta</td></strong>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
<tr align="left">
   <td align="left">Nombre completo: </td>
   <td align="left"><input name="nombre_completo" type="text" id="nombre_completo"></td>
</tr>
<tr align="left">
   <td align="right">Nombre de usuario (nick): </td>
   <td align="left"><input name="nombre_usuario" type="text" id="nombre_usuario"></td>
</tr>
<tr>
   <td align="left"">Contraseña: </td>
   <td align="left"><input name="contrasena" type="password" id="contrasena"></td>
</tr>
<tr align="left">
   <td align="left">Confirmar contraseña: </td>
   <td align="left"><input name="confirmarcontrasena" type="password" id="confirmarcontrasena"></td>
</tr>
<tr align="left">
   <td align="left">E-mail:</td>
   <td align="left"><input name="email" type="text" id="email"></td>
</tr>
<tr align="left">
   <td><?php echo $mensaje_error?></td>
</tr>

   <td align="left" valign="bottom" colspan="1"><input type="submit" name="registro" value="Crear usuario" id="registro"></td>
</tr>
</td>
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
Ese es el código de registro.php con el los suarios meten sus datos y la base de datos que es un archivo .php que esta en formato separado por "|". Quiero que, una vez que te hayas reistrado y logueado accedas a ciertas heramientas músicales las cuales tienen un cronómetro que se inicia cuando tu entras a esa página y se para cuando sales. Y que el tiempo que hayas estado en esa página se imprima en el archivo "base de datos".
  #2 (permalink)  
Antiguo 02/07/2011, 12:51
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Cronómetro en PHP + Sincronización con la base de datos

"una vez que te hayas reistrado y logueado accedas a ciertas heramientas músicales las cuales tienen un cronómetro que se inicia cuando tu entras a esa página y se para cuando sales", entonces está claro, registra la hora entrada, al cerrar la session, la hora de salida, el tiempo que ha pasado el usuario es salida-entrada.
Tu problema ahora es cómo determinar que el usuario ha salido de la web. Por supuesto puedes registrar la hora de salida al cerrar session(), pero si el usuario cierra la ventana del navegador, o tiene cualquier otro problema, entonces el script no se ejecuta.
Puedes usar Js o Ajax, también algún trigger al destruir la session, estudia el manejador de sessiones de php para escribir tu propio handler que haga esto que tú quieres.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: mysql, nada, sistema, usuarios
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 01:02.