Bienvenido a CADCC.CL Centro de Alumnos Departamento de Ciencias de la Computacion
Departamento de Ciencias de la Computación   Escuela de Ingenieria y Ciencias   Universidad de Chile


Inicio · Temas ·  Tu Cuenta
 
 

 
 
Temas

· Inicio
· Departamento
· Actualidad
· Docencia
· Alumnos
· Recreación
· Actividades
· Trabajo
· Histórico
· CADCC 2002
 
 

 
 
Servicios

· Principal
· Temas
· Estoy Harto!
· Galerías Fotos
· Recomiendanos
· Crea tu Cuenta
· Publicar Noticia
· Estadisticas
· Top 10
 
 

 
 
Conectados:

Actualmente hay 5 invitados, 1 miembro(s) conectado(s).

Es un usuario anónimo. Puede registrarse aquí
 
 

 
 

Código Fuente Elecciones 2003

Proceso de votación:

require("votacionCadcc_lib.php");

sleep(3);  #evito ataques de fuerza bruta en usernames o passwords

if(es_dcc($username)) {

  if(es_votante($username)) {

    if(verifica_password($username,$password)) {

      if(!ya_voto($username,$password)) {
        #voto correcto
        agregar_voto($username, $voto, $textonulo, $comentario);
        agregar_log("Usuario $username ha votado");
        responder("ok");
      }
      else {
        #ya voto
        agregar_log("Usuario $username intenta votar nuevamente");
        responder("repite");
      }
    }
    else {
      #mala la password
      sleep(5); #evito ataques de fuerza bruta
      agregar_log("Usuario $username equivoca password");
      responder("password");
    }
  }
  else {
    #no es votante
    agregar_log("Usuario $username es dcc pero no es votante");
    responder("votante");
  }
}
else {
  #no es dcc
  agregar_log("Usuario $username no es dcc");
  responder("dcc");
}

Librería de funciones:

<?

#datos para votar
$file_dcc='/home/cadcc/2003/dcc.dat';
$file_votantes='/home/cadcc/2003/votantes.dat';
$file_passwords='/home/cadcc/2003/passwords.dat';
$file_logs='/home/cadcc/2003/logs.dat';

#registro votos
$file_votaron='/home/cadcc/2003/votaron.dat';
$file_comentarios='/home/cadcc/2003/comentarios.dat';
$file_nulos='/home/cadcc/2003/nulos.dat';
$file_votos='/home/cadcc/2003/votos.dat';

function buscar_en_archivo($archivo, $buscar){
  $arch=file($archivo);
  foreach ($arch as $linea) {
    $linea=rtrim($linea);
    if($buscar==$linea)
      return TRUE;
  }
  return FALSE;
}

function es_dcc($username){
  global $file_dcc;
  return buscar_en_archivo($file_dcc,$username);
}

function es_votante($username){
  global $file_votantes;
  return buscar_en_archivo($file_votantes,$username);
}

function ya_voto($username){
  global $file_votaron;
  return buscar_en_archivo($file_votaron, $username);
}

function verifica_password($username,$password){
  global $file_passwords;
  $pass = file($file_passwords);
  foreach ($pass as $linea) {
    $linea=rtrim($linea);
    list($user,$pass,$nombre)=explode(":",trim($linea));
    if($username==$user)
      return crypt($password,$pass) == $pass;
  }
  agregar_log("!!! No se encontro la password de $username");
  return FALSE;
}

function agregar_voto($username, $voto, $textonulo, $comentario){
  global $file_votaron,$file_votos,$file_nulos,$file_comentarios;
  append_archivo($file_votaron, $username);
  append_archivo($file_votos, $voto);
  if($voto=='nulo')
    append_archivo($file_nulos, $textonulo);
  append_archivo($file_comentarios, $comentario);
}

function agregar_log($texto){
  global $file_logs;
  append_archivo($file_logs, date("D M j G:i:s T Y")." ". $texto);
}

function append_archivo($file, $texto){
  system("echo ". escapeshellarg($texto). " >> " . $file);
}

function responder($codigo){
  echo '<p align="center" class="title">Plebiscito Paro de Alumnos del DCC</p>
  <p align="center">';

  if($codigo=="ok")
    echo "Su Voto ha sido recepcionado satisfactoriamente.<br>
          Espere el recuento de votos parcial a las 18:00 hrs. y el recuento
          final a las 23:00 hrs.<br>
          Por seguridad, recomendamos cerrar el navegador.";

  if($codigo=="repite")
    echo "Según nuestros registros Ud. ya ha votado previamente.<br>
          <a href='javascript:history.go(-1)'_gt;Volver_lt;/a_gt;_quot;;

  if($codigo=="password")
    echo "La password ingresada no corresponde a la que utiliza en el DCC.<br>
          Por favor, inténtelo nuevamente.<br>
          <a href='javascript:history.go(-1)'_gt;Volver_lt;/a_gt;_quot;;

  if($codigo=="votante")
    echo "Ud. no se encuentra en la lista de alumnos votantes para estas elecciones.<br>
          Si tiene inscrito el código 059 o es de postgrado envíe un email a
          cadcc@dcc.uchile.cl para solucionar su problema.<br>
          <a href='javascript:history.go(-1)'_gt;Volver_lt;/a_gt;_quot;;

  if($codigo=="dcc")
    echo "Sólo los alumnos del DCC pueden votar en estas elecciones.<br>
          Por favor, verifique que su username este bien escrito.<br>
          <a href='javascript:history.go(-1)'_gt;Volver_lt;/a_gt;_quot;;

  echo "</p>";
}

?>

Volver

 

 
 


 
 
Centro de Alumnos del Departamento de Ciencias de la Computación
Facultad de Ciencias Físicas y Matemáticas
Universidad de Chile
Web site powered by PHP-Nuke

 
 
Google