Foros del Web » Programando para Internet » PHP »

Sistema de puntos sin mysql

Estas en el tema de Sistema de puntos sin mysql en el foro de PHP en Foros del Web. Hola, estoy usando un sistema de registro sin mysql y necesito desarrollarlo, es el siguiente: http://www.juegaen3d.com/pruebas/ He añadido un campo mas para que se definan ...
  #1 (permalink)  
Antiguo 15/10/2009, 10:04
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Sistema de puntos sin mysql

Hola, estoy usando un sistema de registro sin mysql y necesito desarrollarlo, es el siguiente:

http://www.juegaen3d.com/pruebas/


He añadido un campo mas para que se definan los puntos:


Código PHP:
<?
if($registrar) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$cnnick quitar($cnnick) ;
$cnemailquitar($cnemail) ;
// Comprobar que el usuario existe en la base de datos
if(!file_exists("usuarios/")) { mkdir("usuarios/"0777); }
if(
file_exists("usuarios/$cnnick.php")) {
echo 
"Ya existe un usuario con ese nick o email en la base de datos. Haz click <a href=javascript:history.back()>aquí</a> para regresar." ;
}
else {
$cnfecha time() ;
$cncontrasena md5($cncontrasena) ;
$cnip $REMOTE_ADDR ;

$nuevo .= "<"."?\n";
$nuevo .="\$nick = \"$cnnick\";\n";
$nuevo .="\$contrasena = \"$cncontrasena\";\n";
$nuevo .="\$email = \"$cnemail\";\n";
$nuevo .="\$fecha = \"$cnfecha\";\n";
$nuevo .="\$ip = \"$cnip\";\n";
$nuevo .="\$sexo = \"\";\n";
$nuevo .="\$pais = \"$pais\";\n";
$nuevo .="\$edad = \"\";\n";
$nuevo .="\$descripcion = \"\";\n";
[
COLOR="Red"][B]$nuevo .="\$puntos = \"\";\n";[/B][/COLOR]
$nuevo .= "?".">";

$crea fopen("usuarios/$cnnick.php","w");
fputs($crea,$nuevo);
fclose($crea);
echo 
"Has sido registrado con éxito. Haz click <a href=index.php>aquí</a> para ir a la página principal." ;
}
}
else {
?>
<p>Los datos marcados con un asterisco (*) son obligatorios.
<script>
function revisar() {
if(formulario.cnnick.value.length < 3) { alert('El nick debe contener por lo mínimo 3 caractéres') ; return false ; }
if(formulario.cncontrasena.value.length < 5) { alert('La contraseña debe contener por lo mínimo 5 caractéres') ; return false ; }
if(formulario.cnemail.value.length == 0) { alert('Debes poner un email válido') ; return false ; }
}
</script>
<form name="formulario" method="post" action="index.php?id=registrar" onsubmit="return revisar()">
<b>* Nick:</b><br>
<input name="cnnick" type="text" id="cnnick" maxlength="20" class="form"><br>
<b>* Contraseña:</b><br>
<input name="cncontrasena" type="password" id="cncontrasena" maxlength="20" class="form"><br>
<b>* Email:</b><br>
<input name="cnemail" type="text" id="cnemail" maxlength="40" class="form"><br><br>
<input type="submit" name="registrar" value="Registrar" class="form">
</form>
<?
}
?>

y cuando se registra el usuario, crea un archivo llamado elnombredeusuarioquehaelegido.php

y se registran estos datos:

Código PHP:
<?
$nick 
"usuario";
$contrasena "contraseña";
$email "email";
$fecha "";
$ip "ip";
$sexo "";
$pais "";
$edad "";
$descripcion "";
$puntos "";
?>

Pero en puntos necesito que cada dia que te loguees se sumen 10 puntos, entonces en el campo puntos apareceria el numero de puntos que tiene..

Alguien sabe como hacerlo?
  #2 (permalink)  
Antiguo 15/10/2009, 10:11
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Sistema de puntos sin mysql

Se me ocurre que debes guardar la fecha del último acceso, y si es distinta a la fecha actual, aumentar los puntos (que obviamente también los guardas en ese archivo) y luego reescribir el archivo. La idea es original, espero que llegues a buen puerto .
  #3 (permalink)  
Antiguo 15/10/2009, 10:13
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

Pero como lo hago? El problema es que no se tanto de php.. supongo que sera sencillo, pero no se hacerlo, tengo buenas ideas para hacer el sistema, lo unico que me falta es saber como hacer esto
  #4 (permalink)  
Antiguo 15/10/2009, 10:17
Avatar de hieloverde  
Fecha de Ingreso: julio-2005
Ubicación: México, D.F
Mensajes: 467
Antigüedad: 18 años, 9 meses
Puntos: 5
Respuesta: Sistema de puntos sin mysql

Cita:
Iniciado por SeaPirates Ver Mensaje
Pero en puntos necesito que cada dia que te loguees se sumen 10 puntos, entonces en el campo puntos apareceria el numero de puntos que tiene..

Alguien sabe como hacerlo?
Yo recomendaría que usaras archivos de configuracion tipo txt o xml para que los puedas crear y editar al vuelo, así podrás guardar y actualizar de manera sencilla datos como la puntuación.
__________________
<? echo("1 <script> dice + que 1000 palabras"); ?> EspacioMéxico
  #5 (permalink)  
Antiguo 15/10/2009, 10:26
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

Lo que necesito es que el usuario al loguearse reciba de modo automatico los puntos.

Saludos,
  #6 (permalink)  
Antiguo 15/10/2009, 11:17
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Sistema de puntos sin mysql

Si vos no tenes problemas para crear el archivo, entonces podes incluir el nombredeusuario.php y luego sumar 10 puntos a la variable $puntos. Luego deberias reemplazar el archivo nombredeusuario.php por el mismo actualizado....por eso te digo q si sabes crear el archivo, sabras borrarlo y volver a agregar uno nuevo actualizado no?

Es medio ortodoxo, pero es lo primero que se me vino a la mente.

Saludos.
  #7 (permalink)  
Antiguo 15/10/2009, 11:18
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Sistema de puntos sin mysql

Sin querer hice doble post, soy nuevo aca y no se como borrar posteos, lo siento mucho.......

Última edición por MarioAraque; 15/10/2009 a las 11:19 Razón: Me equivoque.
  #8 (permalink)  
Antiguo 15/10/2009, 11:24
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

jeje, estoy usando ese sistema, no lo he creado yo
  #9 (permalink)  
Antiguo 15/10/2009, 12:44
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Sistema de puntos sin mysql

buenas!!

tendrias que definir varias cosas

primero como quieres dar los puntos? por dia o por visita?
si es por dia tienes que comparar la fecha

Código PHP:
if ($date == $fecha) {
$puntos $puntos 10

obviamente tienes que definir $date que tome la fecha actual del servidor y obviamente $fecha viene del ultimo logueo que tenga tu usuario

ya entre a muestra pero no presenta la opcion de puntos asi que sin la referencia eso es lo que se me ocurre

un saludo!!
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #10 (permalink)  
Antiguo 16/10/2009, 16:33
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

ni idea de como hacerlo...
  #11 (permalink)  
Antiguo 16/10/2009, 16:36
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Sistema de puntos sin mysql

Vos probaste incluir ese fichero "elnombredeusuarioquehaelegido.php" ... editar los datos cada vez q se loguee, y luego reescribirlo? Porque asi parece hasta sencillo =S

Saludos.
  #12 (permalink)  
Antiguo 16/10/2009, 17:45
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

pero no se hacerlo.. a mi no me dan clases de programacion.. ¬¬
  #13 (permalink)  
Antiguo 17/10/2009, 03:28
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

supongo que no sera tan dificil, pero nunca he usando php sin mysql..
  #14 (permalink)  
Antiguo 17/10/2009, 03:50
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Sistema de puntos sin mysql

Pero tenes la funcion include o require, la cual le pasas la ruta donde esta el archivo con la info del usuario, y automaticamente tenes las variables.

include("elnombredeusuarioquehaelegido.php");

Luego sumas 10 a la variable $puntos (q la tendras disponible seguro) ... y luego lo sobreescribis, para hacer esto deberias subir un nuevo archivo con el mismo nombre....pero de esto ya no se mucho =(

Saludos.
  #15 (permalink)  
Antiguo 17/10/2009, 10:38
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Sistema de puntos sin mysql

vale, ya lo tengo!:

Cita:
<?
if($entrar) {
function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
$cnnick = quitar($cnnick) ;
$cnpass = quitar($cnpass) ;

if(file_exists("usuarios/$cnnick.php")) {
require ("usuarios/$cnnick.php");
// Comprobamos que la contraseña sea igual a la del usuario
if($contrasena == md5($cnpass)) {
$puntosMas = $puntos+10;
$nuevo .= "<"."?\n";
$nuevo .="\$nick = \"$nick\";\n";
$nuevo .="\$contrasena = \"$contrasena\";\n";
$nuevo .="\$email = \"$email\";\n";
$nuevo .="\$fecha = \"$fecha\";\n";
$nuevo .="\$ip = \"$ip\";\n";
$nuevo .="\$sexo = \"$sexo\";\n";
$nuevo .="\$pais = \"$pais\";\n";
$nuevo .="\$edad = \"$edad\";\n";
$nuevo .="\$descripcion = \"$descripcion\";\n";
$nuevo .="\$puntos = \"$puntosMas\";\n";
$nuevo .= "?".">";

$crea = fopen("usuarios/$cnnick.php","w");
fputs($crea,$nuevo);
fclose($crea);

setcookie("ucnnick",$cnnick,time()+7776000) ;
setcookie("ucnpass",$cnpass,time()+7776000) ;
// Enviamos al usuario a la pagina principal
header("location: $id") ;
}
else {
echo "La contraseña es incorrecta. Haz click <a href=javascript:history.back()>aquí</a> para regresar." ;
}
}
else {
echo "Este usuario no existe en la base de datos." ;
}
}
else {
echo "
<form method=post action=entrar.php>
<b>Nick:</b><br>
<input type=text name=cnnick maxlength=20><br>
<b>Contraseña:</b><br>
<input type=cnpassword name=cnpass maxlength=20><br><br>
<input type=submit name=entrar value=Entrar>
</form>
" ;
}
?>

lo unico que como hago para que solo reciban 1 vez por dia?
  #16 (permalink)  
Antiguo 17/10/2009, 14:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 16 años, 5 meses
Puntos: 20
Respuesta: Sistema de puntos sin mysql

Código PHP:


<?
if($entrar) {
function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$cnnick quitar($cnnick) ;
$cnpass quitar($cnpass) ;

if(
file_exists("usuarios/$cnnick.php")) {
require (
"usuarios/$cnnick.php");
// Comprobamos que la contraseña sea igual a la del usuario
if($contrasena == md5($cnpass)) {
$puntosMas $puntos+10;
$nuevo .= "<"."?\n";
$nuevo .="\$nick = \"$nick\";\n";
$nuevo .="\$contrasena = \"$contrasena\";\n";
$nuevo .="\$email = \"$email\";\n";
$nuevo .="\$fecha = \"$fecha\";\n";
$nuevo .="\$ip = \"$ip\";\n";
$nuevo .="\$sexo = \"$sexo\";\n";
$nuevo .="\$pais = \"$pais\";\n";
$nuevo .="\$edad = \"$edad\";\n";
$nuevo .="\$descripcion = \"$descripcion\";\n";
$nuevo .="\$puntos = \"$puntosMas\";\n";
$nuevo .= "?".">";

$crea fopen("usuarios/$cnnick.php","w");
fputs($crea,$nuevo);
fclose($crea);

setcookie("ucnnick",$cnnick,time()+7776000) ;
setcookie("ucnpass",$cnpass,time()+7776000) ;
// Enviamos al usuario a la pagina principal
header("location: $id") ;
}
else {
echo 
"La contraseña es incorrecta. Haz click <a href=javascript:history.back()>aquí</a> para regresar." ;
}
}
else {
echo 
"Este usuario no existe en la base de datos." ;
}
}
else {
echo 
"
<form method=post action=entrar.php>
<b>Nick:</b><br>
<input type=text name=cnnick maxlength=20><br>
<b>Contraseña:</b><br>
<input type=cnpassword name=cnpass maxlength=20><br><br>
<input type=submit name=entrar value=Entrar>
</form>
;
}
?>









Cuando el Usuario se valide crea donde tengas la base de datos lo siguiente ; imaginemos que posees una carpeta donde tienes la base de datos que es db/users

Ok .............

Crea dentro una carpeta denominada sesiones por ejemplo , cuando el usuario acceda y se sumen los puntos se abre una sesión de esta forma


Código PHP:

<?

$dir
="db/user/sesiones";

$name_session="".$REMOTE_ADDR.dat."";

if (!
file_exists("$dir/$name_session"))
{
$fp=fopen ("$name_session","a");
fputs ($fp,"".date("dmY")."");
fclose($fp);
}
?>
Con esto Determinamos una sesión por día , al verificar el archivo y ver que existe la sesión no se permitirá que la persona pueda hacer uso indebido de sumar puntos acceder o lo que quieras


Código PHP:

<?

/////Para el borrado automático de la sesión esto se hará al cargar la página o puedes seleccionar un archio con este script programado en cron 


$dir=fopen("$dir")
while(
$file=readdir($dir))
{

if (
$file!="." && $file!="..")
{

/// Se leen todas las sesiones 


$fecha_actual=file("$dir/$file");


if (
$fecha_actual[0]==date("dmY"))
{}
else
{
unlink ("$dir/$file");
}


}





}

?>




Con esto tendrías un sistema interno de sesiones totalmente limpio intocable que ademas puedes aumentar en seguridad encriptándolo como md5 o similar , al no usar cookies ni sesiones y correr en el server es lo más seguro que existe , el usuario se localiza por la ip o po rel nombre del usuario , yo utilice la sesión según la ip tu puedes usar e lnombre del usuario , lo escribi al vuelo disculpa si hay algún error un saludo y ya me contarás , chao :)
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 02:34.