Foros del Web » Programando para Internet » PHP »

Consulta sobre acceso por Letra de Apellido

Estas en el tema de Consulta sobre acceso por Letra de Apellido en el foro de PHP en Foros del Web. Buena noche colegas, quisiera hacerles una pequeña consulta. Estoy haciendo un pequeño sistema de registro en donde el usuario ingresa a registrarse a una pagina ...
  #1 (permalink)  
Antiguo 13/02/2014, 23:15
 
Fecha de Ingreso: febrero-2014
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
Consulta sobre acceso por Letra de Apellido

Buena noche colegas, quisiera hacerles una pequeña consulta.

Estoy haciendo un pequeño sistema de registro en donde el usuario ingresa a registrarse a una pagina por su CURP (algo identificativo en México), que es de 18 dígitos y letras donde la primer letra del CURP empieza con la primer letra del apellido paterno.

TALM000206HMCPNRA1 algo mas o menos asi.

Entonces debo restringir el acceso por ejemplo:

Dia 1 : letras del apellido A,B,C,D,E
Día 2 Letras del apellido F,G, H, etc.

Ya tengo, la validación de la curp, luego los manda al registro etc etc etc.

Pero me ha quebrado la cabeza el restringir el acceso por esa situación.

Que el usuario ingrese su CURP en un campo de texto le de click en un boton y le diga no puede ingresar porque no es su día o que le dé acceso el día que le corresponde.

Hasta el momento he hecho esto, pero presiento que voy perdido.

Código:
  <?php 
session_start(); //inicio de sesion para guardar variables
//$_SESSION['curp']=$_REQUEST['curp'];

date_default_timezone_set("America/Mexico_City");
setlocale(LC_TIME, "spanish");

$curpv = 'HEAA710803MDFRLR05';
$dia1 = '13/02/14';
$dia2 = '14/02/14'; 
$dia3 = '15/02/14'; 
$dia4 = '16/02/14'; 
$dia5 = '17/02/14';
$actual = date ("d/m/y");
$accion = '';

if ($dia2 == $actual) {
echo 'hoy es su preinscripcion';
} elseif ($actual =! $dia2) {
	echo 'hoy NO es su día de preinscripcion';
}

//$si_acceso = action="validar2.php";
//$no_acceso = action="sinacceso.php";


$cadena= $curpv; 
$p=1; 

for ($i=0; $i<strlen($cadena); $i++) 
{ 
if($cadena[$i]!=" " && $p==1) 
{ 
echo " Su Primera Letra de Apellido es: ". $cadena[$i]; 
$p=0;	
} 
if($cadena[$i]==" ") 
$p=1; 
} 

?>
  
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align="center">El d&iacute;a de Hoy es: <?php print date("d/m/y");?>

¿Alguna sugerencia por donde empezar a investigar o como implementar algo?
  #2 (permalink)  
Antiguo 13/02/2014, 23:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Consulta sobre acceso por Letra de Apellido

No necesitas ningún loop para eso, con substr() puedes obtener una parte de la cadena.

De ahí luego necesitas un switch() y caso cerrado.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2014, 23:31
 
Fecha de Ingreso: febrero-2014
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Consulta sobre acceso por Letra de Apellido

y lo que estoy haciendo tomando la fecha con date es correcto?
  #4 (permalink)  
Antiguo 14/02/2014, 00:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Consulta sobre acceso por Letra de Apellido

Pues es que esa parte no se entiende.

¿Cómo sabes cual es el día 1, 2, 3, etc.?

No entiendo.

Ese es el principal problema, pues en abstracto puede ser algo así:
Código PHP:
Ver original
  1. switch($dia) {
  2.    case 1: return validar('ABCDE'); break;
  3.    case 2: return validar('FGHIJ'); break;
  4.    // ...
  5. }

Pero como no explicas que significado tienen esos "días" pues es imposible saber si estás bien o no.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/02/2014, 08:02
 
Fecha de Ingreso: febrero-2014
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Consulta sobre acceso por Letra de Apellido

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues es que esa parte no se entiende.

¿Cómo sabes cual es el día 1, 2, 3, etc.?

No entiendo.

Ese es el principal problema, pues en abstracto puede ser algo así:
Código PHP:
Ver original
  1. switch($dia) {
  2.    case 1: return validar('ABCDE'); break;
  3.    case 2: return validar('FGHIJ'); break;
  4.    // ...
  5. }

Pero como no explicas que significado tienen esos "días" pues es imposible saber si estás bien o no.

Hola que tal agradezco mucho tu respuesta, muchísimas gracias por tomarte el tiempo de corregirme, te comento:


El día del registro es y deberá ser solo una semana, durante el mes de abril.

Por eso había pensado en tomar el dato del servidor con date y guardarlo en una variable para compararlo.

Te comento el código como yo lo había pensado.


Código PHP:

session_start
(); //inicio de sesion para guardar o tomar los datos de una sesión anterior.
$_SESSION['curp']=$_REQUEST['curp']; //Aquí recupero el dato de la CURP que en una pagina anterior ya habian colocado en un cuadro de texto 

date_default_timezone_set("America/Mexico_City"); // de aquí tomo el dato de la fecha actual
setlocale(LC_TIME"spanish");

$curpv 'curp'// convierto el dato (curp) que ya viene de una sesión en una variable
$dia1 '13/04/14'// aquí le coloco la fecha del primer dia es 
$dia2 '14/04/14'// aquí el segundo etc etc
$dia3 '15/04/14'
$dia4 '16/04/14'
$dia5 '17/04/14';
$actual date ("d/m/y"); // aquí le digo que la variable actual sea igual a la fecha de hoy

switch($dia) {
   case 
1: return validar('ABCDE'); break;
   case 
2: return validar('FGHIJ'); break;
   case 
3: return validar('KLMN'); break;
   case 
3: return validar('OPQRS'); break;
   case 
4: return validar('TUVW'); break;
   case 
5: return validar('XYZ'); break;    
   
// ...


A eso me refería si estoy pensando bien en tomar el dato del día del servidor?

Saludos.
  #6 (permalink)  
Antiguo 14/02/2014, 09:20
 
Fecha de Ingreso: febrero-2014
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Consulta sobre acceso por Letra de Apellido

Te comento que, quedó muy bien convertido para tomar solo la primera letra de la cadena con substr() y después convertirla a una variable.



Código PHP:

$curpt 
substr($curpv, -181); //$curpv es el valor del curp previamente ingresado por el usuario. 
echo $curpt
  #7 (permalink)  
Antiguo 14/02/2014, 09:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Consulta sobre acceso por Letra de Apellido

Bueno, eso es relativo.

Cita:
A eso me refería si estoy pensando bien en tomar el dato del día del servidor?
Si configuras la hora del servidor correctamente no veo ningún problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 14/02/2014, 20:29
 
Fecha de Ingreso: febrero-2014
Mensajes: 5
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Consulta sobre acceso por Letra de Apellido

Hola que tal, nuevamente agradeciéndote tus correcciones.

Tengo otra duda.

Te pego el código completo que llevo y hasta abajo te pego el código con la duda.

Código PHP:
<?php 

session_start
(); //inicio de sesion para guardar o tomar los datos de una sesión anterior. 
//$_SESSION['curp']=$_REQUEST['curp']; //Aquí recupero el dato de la CURP que en una pagina anterior ya habian colocado en un cuadro de texto  

date_default_timezone_set("America/Mexico_City"); // de aquí tomo el dato de la fecha actual 
setlocale(LC_TIME"spanish"); 

$curpv 'AEAA710803MDFRLR05'// convierto el dato (curp) que ya viene de una sesión en una variable 
$dia1 '13/04/14'// aquí le coloco la fecha del primer dia es  
$dia2 '14/04/14'// aquí el segundo etc etc 
$dia3 '15/04/14';  
$dia4 '16/04/14';  
$dia5 '17/04/14'
$actual date ("d/m/y"); // aquí le digo que la variable actual sea igual a la fecha de hoy 

//$si_acceso = echo 'su acceso es garantizado';//header('location: si_acceso.php');
//$no_acceso = (action "sinacceso.php");


//echo $curpt;  
$curpt substr($curpv, -181); //$curpv es el valor del curp previamente ingresado por el usuario.

switch($curpt) { 
    case 
"A":
        ((
$curpt 'A') && ($actual == $dia1)); 
        
//include ('validar.php');
        
echo 'Aquí lo va a redireccionar a la inscripcion';
    break;
    case 
"B";
        (
$curpt 'B') && ($actual == $dia1); 
        echo 
'Aquí lo va a redireccionar a la inscripcion';
    break;
        
    default: echo 
'Aquí lo va a redireccionar a la pagina que le indica que no le toca ese día';
        break;
}
  
?>

En la parte del Switch al validar la segunda información o sea la variable $actual con el $dia1 no lo hace o sea si cumple la primera lo da por valido.

Alguna sugerencia para que valide las 2 variables, que la letra del curp que en este caso está en $curpt = 'A' y $actual sea igual a $dia1 (que es la primera fecha).

Saludos.

Código PHP:
case "A":
        ((
$curpt 'A') && ($actual == $dia1)); 
        
//include ('validar.php');
        
echo 'Aquí lo va a redireccionar a la inscripcion'

Etiquetas: letra, registro, variable
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 21:32.