Foros del Web » Programando para Internet » PHP » Configuración PHP »

Formulario PHP de registro de eventos.

Estas en el tema de Formulario PHP de registro de eventos. en el foro de Configuración PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/09/2010, 04:45
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 8 años, 2 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>"
;

}
?>
  #2 (permalink)  
Antiguo 19/09/2010, 04:45
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Formulario PHP de registro de eventos.

Ruta:
/Web/administrator/components/com_eventos
Archivo: admin.eventos.php

Código PHP:
<?php
//Adminstrador de Eventos//


defined'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
 
 global 
$database;
 
$accion=$_POST['accion'];
 
$evento=$_POST['evento'];
 
$newfe=$_POST['new_flimite'];
 
$newev=$_POST['new_namevento'];
 
$edev=$_POST['ed_namevento'];
 
$id =$_POST['idev'];

if (isset(
$newev)) {
  
$sql "insert into jos_com_eventos (fechaLimite,nombreEvento) values ('".$newfe."','".$newev."')";
  
$database->setQuery$sql );
 if (
$database->query()){
echo 
"Se cre&oacute; correctamente el evento";
} else {
echo 
"No se pudo crear el evento";
}
echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."'>";

}

if (isset(
$edev)) {
  
$sql ="update jos_com_eventos set nombreEvento='".$edev."',fechaLimite='".$newfe."' where idEvento=".$id;
  
$database->setQuery$sql );
 if (
$database->query()){
echo 
"Se guard&oacute; correctamente el evento";
} else {
echo 
"No se pudo modificar el evento";
}
echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."'>";


}
if (!isset(
$accion)) {
  
$sql "SELECT *,DATE_FORMAT(fechaLimite, '%d/%m/%Y') AS fechal from jos_com_eventos";
  
$database->setQuery$sql );
  
$rows $database->loadObjectList();

echo 
"<script type='text/javascript'>

function validar() {

if(document.opcion.accion.value == 2 && !confirm('Desea borrar el evento?')) {
return false;
}

if (document.opcion.accion.value > 2 || document.opcion.accion.value < 0) {
return false;


return true; 

}

</script>"
;


echo 
"<table width='100%'><tr><td style=\"vertical-align: top\"><form name='opcion' method='POST' action='' onsubmit='return validar()'><input type='hidden' name='accion' value=''>";
if (
count($rows) > 0) echo "<input type='submit' value='Editar' onClick='document.opcion.accion.value=1'> <input type='submit' value='Eliminar' onClick='document.opcion.accion.value=2'>"; echo " <input type='submit' value='Nuevo Evento' onClick='document.opcion.accion.value=0'><br><br>
<table border=0px width='100%'><tr style='background:#DDDDDD'><td></td><td>Nombre del Evento</td><td>Fecha Limite de Registro</td></tr>"
;
 foreach ( 
$rows as $row ) {
 echo 
"<tr style='background:#FFE8C6'><td><input type='radio' name='evento' value='".$row->idEvento."' checked='true'></td><td><a href='".$PHP_SELF."?option=com_eventos&evento=".$row->idEvento."'>".$row->nombreEvento."</a></td><td>".$row->fechal."</td></tr>";
 }
echo 
"</table><form><br></td>";

$muestra =$_GET['evento'];
if (isset(
$muestra)) {

$sql "SELECT at.confirm,at.idAsistente,at.idEvento,at.nombre,at.mail,DATE_FORMAT(at.fecha, '%d/%m/%Y') AS fecha,ev.nombreEvento from jos_com_asistencia at join jos_com_eventos ev on at.idEvento=ev.idEvento where ev.idEvento=".$muestra." and at.confirm=1 order by at.nombre asc";
  
$database->setQuery$sql );
  
$rows $database->loadObjectList();
  
$row=$rows[0];
echo 
"<td><div style='font-size:16px'><b>Asistentes al evento ".$row->nombreEvento."</b></div><table width='100%'><tr style='background:#DDDDDD'><td>Nombre</td><td>Correo Electronico</td><td>Fecha de registro</td>";
 
 foreach ( 
$rows as $row ) {
 echo 
"<tr style='background:#336699; color:#FFFFFF'><td>".$row->nombre."</td><td>".$row->mail."</td><td>".$row->fecha."</td></tr>";
 }
  
    
echo 
"</table><input type='button' value='Cerrar' onClick=\"parent.location.href='index.php?option=com_eventos'\"></tr></table>";
} else {
 echo 
"</tr></table>";
}

} else {
if (
$accion == 0) {
//---------------------NUEVO----------------------//
echo "<script type='text/javascript'>
function IsNumeric(sText)

{
   var ValidChars = '0123456789.';
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
  }

function validar() {
document.opcion.new_flimite.value=document.opcion.new_ano.value+'-'+document.opcion.new_mes.value+'-'+document.opcion.new_dia.value;
if (document.opcion.new_namevento.value.length < 1) {
alert('Debe teclear el nombre del Evento');
 return false; 
}
if (!IsNumeric(document.opcion.new_dia.value) || document.opcion.new_dia.value < 1 || document.opcion.new_dia.value > 31 || document.opcion.new_dia.value == '') {
alert('El valor '+document.opcion.new_dia.value+' no es apropiado para el campo \"dia\"');
 return false; 
}
if (!IsNumeric(document.opcion.new_mes.value) || document.opcion.new_mes.value < 1 || document.opcion.new_mes.value > 12 || document.opcion.new_mes.value == '') {
alert('El valor '+document.opcion.new_mes.value+' no es apropiado para el campo \"mes\"');
 return false; 
}
if (!IsNumeric(document.opcion.new_ano.value) || document.opcion.new_ano.value < 2000 || document.opcion.new_ano.value == '') {
alert('El valor '+document.opcion.new_ano.value+' no es apropiado para el campo \"año\"');
 return false; 
}

return true;
}</script>"
;


echo 
"<div style='font-size:16px'><b>Creaci&oacute;n de Eventos</b></div><br><form name='opcion' method='POST' action='".$PHP_SELF."' onsubmit='return validar()'>
Nombre del Evento <input type='text' name='new_namevento' size='35' style='margin-left:24px'><input type='hidden' name='new_flimite'><br><br>
Fecha l&iacute;mite de Registro <input type='text' size='1' maxlength='2' name='new_dia'>/<input type='text' size='1' maxlength='2' name='new_mes'>/<input type='text' size='2' maxlength='4' name='new_ano'>
<br><br><input type='button' value='Cancelar' onClick=\"parent.location.href='"
.$PHP_SELF."'\"> <input type='reset' value='Limpiar Campos'> <input type='submit' value='Crear Evento'>
</form>"
;

} else if (
$accion == 1) {
//---------------------EDITAR----------------------//
//-------------------------------------------------//
echo "<script type='text/javascript'>
function IsNumeric(sText)

{
   var ValidChars = '0123456789.';
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
  }

function validar() {
document.opcion.new_flimite.value=document.opcion.new_ano.value+'-'+document.opcion.new_mes.value+'-'+document.opcion.new_dia.value;
if (document.opcion.ed_namevento.value.length < 1) {
alert('Debe teclear el nombre del Evento');
 return false; 
}
if (!IsNumeric(document.opcion.new_dia.value) || document.opcion.new_dia.value < 1 || document.opcion.new_dia.value > 31 || document.opcion.new_dia.value == '') {
alert('El valor '+document.opcion.new_dia.value+' no es apropiado para el campo \"dia\"');
 return false; 
}
if (!IsNumeric(document.opcion.new_mes.value) || document.opcion.new_mes.value < 1 || document.opcion.new_mes.value > 12 || document.opcion.new_mes.value == '') {
alert('El valor '+document.opcion.new_mes.value+' no es apropiado para el campo \"mes\"');
 return false; 
}
if (!IsNumeric(document.opcion.new_ano.value) || document.opcion.new_ano.value < 2000 || document.opcion.new_ano.value == '') {
alert('El valor '+document.opcion.new_ano.value+' no es apropiado para el campo \"año\"');
 return false; 
}

return true;
}</script>"
;

$sql "SELECT *,DATE_FORMAT(fechaLimite, '%d/%m/%Y') AS fechal from jos_com_eventos where idEvento=".$evento;
$database->setQuery$sql );
$rows $database->loadObjectList();
$row=$rows[0];

echo 
"<div style='font-size:16px'><b>Editar Evento</b></div><br><form name='opcion' method='POST' action='".$PHP_SELF."' onsubmit='return validar()'>
Nombre del Evento <input type='text' name='ed_namevento' value='"
.$row->nombreEvento."'size='35' style='margin-left:24px'><input type='hidden' name='new_flimite'><input type='hidden' name='idev' value='".$row->idEvento."'><br><br>
Fecha l&iacute;mite de Registro <input type='text' size='1' maxlength='2' name='new_dia' value='"
.substr($row->fechal,0,2)."'>/<input type='text' size='1' maxlength='2' name='new_mes'value='".substr($row->fechal,3,2)."' >/<input type='text' size='2' maxlength='4' name='new_ano' value='".substr($row->fechal,6,4)."'>
<br><br><input type='button' value='Cancelar' onClick=\"parent.location.href='"
.$PHP_SELF."'\"> <input type='reset' value='Limpiar Campos'> <input type='submit' value='Guardar Cambios'>
</form>"
;



} else if (
$accion ==2) {
//---------------------ELIMINAR----------------------//
$sql "delete from jos_com_asistencia where idEvento=".$evento;
$database->setQuery$sql );
$database->query();
$sql "delete from jos_com_eventos where idEvento=".$evento;
$database->setQuery$sql );
 if (
$database->query()){
echo 
"Se elimin&oacute; correctamente el evento";
} else {
echo 
"No se pudo eliminar el evento";
}
echo 
"<meta http-equiv='refresh' content='0 ; url=".$PHP_SELF."'>";

}


}
?>
  #3 (permalink)  
Antiguo 19/09/2010, 04:46
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Formulario PHP de registro de eventos.

Archivo: eventos.xml

Código HTML:
<?xml version="1.0" ?>
<mosinstall type="component">
    <name>Eventos</name>
    <creationDate>Abril 2008</creationDate>
    <author>Fabian Gonzalez</author>
    <copyright>2008 Fabian Gonzalez</copyright>
    <authorEmail>[email protected]</authorEmail>
    <authorUrl></authorUrl>
    <version>1.0</version>
    <description>Permite registrar asistencia a eventos</description>
    <files>
        <filename>eventos.php</filename>
    </files>
    <install>
        <queries>
            <query>create table if not exists jos_com_asistencia (
                `idAsistente` varchar(40) not null, 
                `idEvento` int not null, 
                `nombre` varchar(50), 
                `mail` varchar(30), 
                `fecha` date,
                `confirm` int,
                primary key(`idAsistente`)
                )
            </query>
            <query>create table if not exists jos_com_eventos (
                `idEvento` int not null auto_increment, 
                `fechaLimite` date,
                `nombreEvento` varchar(50), 
                primary key(`idEvento`)
                )
            </query>

        </queries>
    </install>
    <uninstall>
    <queries>
            <query>drop table jos_com_asistencia;
            </query>
            <query>drop table jos_com_eventos;
            </query>
    </queries>
    </uninstall>

    <administration>
        <menu>Eventos</menu>
        <submenu>
            <menu act="sub1">Administrar Eventos</menu>
        </submenu>
        <files>
            <filename>admin.eventos.php</filename>
        </files>
    </administration>
</mosinstall> 
Bueno,espero haber puesto todo lo necesario para explicarlo lo mejor posible.
A ver si me podeis ayudar,y si os hace falta otro archivo o algo,me lo decis y lo busco,es que esto es lo que he visto de COM_EVENTS.
Gracias y saludos.

Perdonar que lo haya puesto en 3 mensajes,pero no me dejaba escribir textos tan largo.

Etiquetas: eventos, php, registro, formulario
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 07:27.