Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2010, 04:45
Ivan_gaditano
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 14 años, 3 meses
Puntos: 0
Formulario PHP de registro de eventos.

Buenas,voy a intentar explicarlo lo mejor posible dentro de mis posibilidades de programacion.
Pues resulta que tengo un componente instalado en joomla que se llama COM_EVENTS,y lo voy a utilizar para confirmaciones de los pilotos si asiste o no para las carreras.
El componente solo me da la opcion de confirmar la carrera,pero yo quiero usarlo tanto para confirmar si se corre la carrera como si no se corre.
O sea,yo voy a poner los archivos que tengos en el componente y a ver si podeis meter por ahi por medio una opcion que puedan elegir "Confirmar SI" o "Confirmar NO".
Y claro,que a mi me salta si han confirmado en positivo o en negativo en la tabla de administracion del comoponente,que me salga si ha confirmado en positivo o en negativo.
Bueno voy al grano con imagenes y archivos.



Esta primera imagen es lo que le sale a cualquier usuario que quiera confirmar asistencia a las carreras.Y ahi es donde quiero que salga otra opcion donde puedan confirmar en positivo SI o en negativo NO.




Esta segunda imagen es lo que veo yo solamente como administrador que soy.Pero me interesaria que aqui me reflejara tambien lo de la confirmacion positiva o negativa de los pilotos,para llevar un control de quien asiste y quien no a las carreras.


Aqui pongo los archivos:

Ruta:
/Web/components/com_eventos
Archivo: eventos.php
Código PHP:
<?php





defined
'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );


$idEvento $_POST['evento'];
$correo $_POST['correo'];
//$nombre = $_POST['appat']." ".$_POST['apmat']." ".$_POST['nombre'];
$nombre $_POST['nombre'];
$mensaje=$_GET['mid'];
global 
$database;
$activarid=$_GET['activate'];

$activarid=$_GET['activate'];

if (isset(
$activarid)) {
$datos_registro=explode("_",$activarid);
$sql="select * from jos_com_asistencia where idEvento=".$datos_registro[1]." and idAsistente='".$datos_registro[0]."'";
$database->setQuery$sql );
$rows=$database->loadObjectList();
$row=$rows[0];
//-----------------------------------------------
if ($row->confirm != 1) {
    
$sql "update jos_com_asistencia set confirm=1 where idEvento=".$datos_registro[1]." and idAsistente='".$datos_registro[0]."'";
     
$database->setQuery$sql);
    if (!
$database->query()){
    echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."?option=com_eventos&mid=2'>";
    } else {
    echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."?option=com_eventos&mid=3'>";
    }
} else {
echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."?option=com_eventos&mid=4'>";

}

//------------------------------------------------
} else if (isset($mensaje)) {
    

    if (
$mensaje == 0) {
      echo 
"<div class='componentheading' style='color:#FF9900'>Ya existe registro</div>Sus datos ya estaban registrados previamente en este evento.";
     } else if (
$mensaje == 1) {
     echo 
"<div class='componentheading'>Gracias por su registro</div>Un <b>correo electr&oacute;nico de confirmaci&oacute;n </b> ha sido enviado a la direcci&oacute;n de correo que usted nos proporcion&oacute;. <br><br> Para continuar con su registro porfavor confirme su asistencia.";
    } else if (
$mensaje == 2) {
     echo 
"<div class='componentheading' style='color:#FF0000'>Error al registrar</div>Sus datos no han podido ser registrados en el evento<br>Porfavor contacte al administrador del sitio: "$mainframe->getCfg('mailfrom');
    }else if (
$mensaje == 3) {
     echo 
"<div class='componentheading'>Enhorabuena!</div> Su registro ha sido completado con &eacute;xito";
    }else if (
$mensaje == 4) {
    echo 
"<div class='componentheading' style='color:#FF9900'>Confirmado</div>No se realiz&oacute; confirmacion debido a que sus datos ya estan confirmados para el evento.";
    }


    

} else if (isset(
$nombre) && isset($correo) && isset($idEvento)) {

       
  
$sql "SELECT * FROM jos_com_asistencia where idEvento=".$idEvento." and mail='".$correo."'";
  
$database->setQuery$sql );
  
$rows=$database->loadObjectList();
  
$row=$rows[0];
  if (
$row->mail == $correo) {
   echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."?option=com_eventos&mid=0'>";
  } else { 
$sql "INSERT INTO jos_com_asistencia (idAsistente,idEvento,nombre,mail,fecha) values (UUID(),".$idEvento.",'".$nombre."','".$correo."', now()) ON DUPLICATE KEY UPDATE idAsistente=idAsistente+1;";
  
$database->setQuery$sql );
  if (!
$database->query()){
echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."?option=com_eventos&mid=2'>";
} else {
//----ENVIAR CORREO DE CONFIRMACIÓN------------
  
$sql "SELECT * FROM jos_com_asistencia at join jos_com_eventos ev on ev.idEvento=at.idEvento where at.idEvento=".$idEvento." and mail='".$correo."'";
  
$database->setQuery$sql );
  
$rows=$database->loadObjectList();
  
$row=$rows[0];

//--Enviando un correo de confirmacion.---------------
     
$e_remitente=$mainframe->getCfg('mailfrom');
     
$url $_SERVER['SERVER_NAME']."/index.php?option=com_eventos&activate=".$row->idAsistente."_".$row->idEvento."&Itemid=4";
     
$sitio $mainframe->getCfg('sitename');
     
$asunto "Confirmacion de asistencia para ".$row->nombre;
     
$mensaje "<div style='font-size:16px;color:#33669'><b>Estimado(a) " $row->nombre ":</b></div><br><br>";
     
$mensaje .= "Este correo está generado automaticamente desde el sitio de ".$sitio." como parte de su ";
     
$mensaje .= "solicitud de inscripción a <b>".$row->nombreEvento."</b>.<br><br>";
     
$mensaje .= "El prop&oacute;sito de este correo es verificar que la dirección de correo que se nos ";
     
$mensaje .= "proporcionó realmente existe, y que usted está dispuesto(a) a informar a la administracion de si vas a participar o no en el evento.<br><br>";
     
$mensaje .= "Para confirmar si asiste o no al evento, de click en el siguiente vínculo:<br><b><div style='font-size:13px;color:#FF0000'><a href='".$url."'>".$url."</a></div></b><br><br><br>";
     
$mensaje .= "<b>Nota:</b>Este correo electronico solo sirve para confirmar si se asiste o no a dicha carrera, <br>";
     
$mensaje .= "tendras que hacer los mismos pasos para cada carrera.<br><br><div style='font-size:13px;color:#33669'><b>Atte: Equipo de ".$sitio."</b></div>";
     
$encabezado "From:".$e_remitente."\nReply-To:".$e_remitente."\n";
     
$encabezado .= "X-Mailer:PHP/".phpversion()."\n";
     
$encabezado .= "Mime-Version: 1.0\n";
     
$encabezado .= "Content-Type: text/html";
     
mail($row->mail,$asunto,$mensaje,$encabezado);
 
//----- Fin de envio de correo...--------------------
echo "<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."?option=com_eventos&mid=1'>";
}

}
} else {

echo 
"<script type='text/javascript'>
function isEmail(theElement){
var s = theElement.value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
if (filter.test(s) && s.length > 0)
return true;
else
alert('Ingrese una direccion de correo valida');
theElement.focus();
return false;
}

function validar() {
if (document.registro.evento.value.length < 1) {
alert('Debe seleccionar un Evento');
return false;
}
if (document.registro.nombre.value.length < 3) {
alert('Debe escribir su nombre');
return false;
}
if (!isEmail(document.registro.correo)) {
return false;
}
return true;
}

</script>"
;  


  
$sql "SELECT * from jos_com_eventos where fechalimite >= now()";
  
$database->setQuery$sql );
  
$rows $database->loadObjectList();
  
$row0=$rows[0];
echo 
"<div class='componentheading'>Suscripci&oacute;n a Eventos</div><div class='small'> (Hay "count($rows)." evento(s) disponible(s))</div>";
echo 
"<table><tr><td><form name='registro' method='post' action='".$PHP_SELF."' onsubmit='return validar()'>
<br>"
;
if (
$row0->nombreEvento != ""){ 
echo 
"<div class='small2'>Evento <select name='evento' style='margin-left:19px'>";
 foreach ( 
$rows as $row ) {
 echo 
"<option value='".$row->idEvento."'>".$row->nombreEvento."</option>";
 }
echo 
"</select></div>";
} else {
echo 
"<div style='margin-left:30px; color:#ff6600'>No existen eventos por ahora</div>";
}
echo 
"<div class='small2'>Nickname <input type='text' name='nombre' size='27'></div>
<div class='small2'>Correo Electr&oacute;nico <input type='text' name='correo' style='margin-left:4px'></div><br>
<input type='reset' value='Limpiar Campos' style='background:#FFFFFF; Color:#666666'> <input type='submit' value='Registrarme' style='background:#FFFFFF; Color:#666666'>
</form></td></tr></table>"
;

}
?>