Ver Mensaje Individual
  #16 (permalink)  
Antiguo 17/10/2009, 14:25
fr1974
 
Fecha de Ingreso: noviembre-2007
Mensajes: 498
Antigüedad: 17 años, 2 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 :)