Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] variables vacias

Estas en el tema de variables vacias en el foro de PHP en Foros del Web. Buenas a todos. Hacía días que ya no preguntaba por aquí, pero llevo unos días que el siguiente problema me trae de cabeza. Les explico. ...
  #1 (permalink)  
Antiguo 14/05/2013, 04:28
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 22 años
Puntos: 0
Mensaje variables vacias

Buenas a todos. Hacía días que ya no preguntaba por aquí, pero llevo unos días que el siguiente problema me trae de cabeza. Les explico.
Tengo una página de inscripciones (inscripcion.php). Esta página recibe varias variables ya que vienen cursos vinculados desde distintas partes de la web.
Le llega la variable $idcurso, otra $id, otra $idaviso. Siempre recibe una de estas variables si viene desde otra opágin, pero también puede no recibir nada, es decir, que si clico al link de inscripcion va directamente a esta ágina y puedes hacer la inscripción del curso.

Después de este rollo, aquí viene la duda. El cliente me pide que puede ser que las variables $idcurso, $id o $idaviso pueden estar deshabilitadas, ya que desde la gestión de administrador hayan desactivado el link. Días antes puede que se ha enviado el mail para hacer promocion del curso. O sea que el usuario en cualquier momento, día o més puede volver a hacer clic para mirar de registrarse.

Lo que desearía es que si se hace clic a este vínculo ya caducado vaya a la página inscripcion.php y le de un mensaje tipo "Este curso ya no está disponible. Disculpe las molestias". Y en 3 segundo me redirecciona a la página index.php Pero al mismo tiempo si hacen clic a la página de inscipcion se mantenga en ella. Tengo un lio entre variables vacias y variable no coincidentes....

He logrado hacer algo para solucionarlo, pero si hago clic directamente al link de inscripción, me sale siempre el mensaje de "Este curso....". Porqué como no tiene variable asociada me tirá atras.



<?php
//si las variables estan vacias o el id ya no coincide
if(($_GET['idcurso']!=$idcurso) && ($_GET['id']!=$id) && ($_GET['idaviso']!=$idaviso)) {?>
<p> Este curso ya no está disponible. Disculpe las molestias</p></div><script>reload() = "index.php"</script>
<? } else { print "idcurso existe. ";}?>

Pueden tomar esto como ejemplo, pero tampoco es el resultado que quiero, ya que si no se envia ninguna variable también me echa para atras.

Gracias y haber si me pueden echar una mano.
Un saludo
  #2 (permalink)  
Antiguo 14/05/2013, 05:35
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: variables vacias

Consulta http://www.php.net/manual/es/function.isset.php y la sección "Ver también".
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 14/05/2013, 07:43
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 22 años
Puntos: 0
Respuesta: variables vacias

Gracias repara2.
Ya estuve mirando la funcion isset, y a mi parecer creo que no sirve para lo que yo estoy buscando.
Ya que cuando, por ejemplo, la variable tiene un valor 1234, y la recibe en la página todo va bien, pero si llega a la página sin enviar variable tambien me lanza a la página de inicio con el redirect.
O si la variable es 1233, recibe la variable y como no esta vacia entonce también se queda en la misma página.

la idea es que si la variable no coincide, me lance a la página de inicio. Y si llego sin ninguna variable, aciendo clic directo al link que me lleva a inscripcion.php se quede y no valide ningún tipo de variable.

En fin, seguire buscando..
  #4 (permalink)  
Antiguo 14/05/2013, 07:52
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: variables vacias

pero si llega a la página sin enviar variable tambien me lanza a la página de inicio con el redirect. entonces tienes un problema con la lógica de tu programa. Es bastante simple:

if(!isset$laVariable) rediccionar a inicio
else redireccionar a otra parte

Tu problema no es con isset() sino con el IF.

Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 14/05/2013, 08:37
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 22 años
Puntos: 0
Respuesta: variables vacias

El problema que veo es que en la misma página (inscripcion.php) ha de pasar todo.
Si haces clic y accedes a ella sin enviar ninguna variable, te enseña el formulario de registro para que puedas inscribirte a un curso.
Si vienes de la página index y has hecho clic en un curso de promoción entonces te llega a la pagina inscripcion.php?idcurso=123.
Pero puede que ese curso 123 ya no exista, entonce es cuando te ha de enviar a la página index.php con el redirect. No puedo validar si està vacia la variable porque si llega un ?idcurso=129 me la lee como llena, y en realidad el curso no existe.
Y esto pasa con 3 variables que provienen de distintos sitio de la web y que atacan a tablas distintas.

Entonces no puedo direccionar a otra página. O tal vez una página intermedia quizás...
  #6 (permalink)  
Antiguo 15/05/2013, 05:27
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 22 años
Puntos: 0
Respuesta: variables vacias

Bueno, llegado este punto sólo he logrado esto:

<?php
//si las variables no coinciden, el curso está eliminado y tiene que redirigir a la pagina index.php
if( ($idcurso!=$_GET['idcurso']) && ($idaviso!=$_GET['idaviso']) && ($id!=$_GET['id'])) { ?>
<p>Este curso ya no está disponible. Disculpe las molestias</p></div><script>reload() = "index.php"</script>
<? } else {
//sino, no existen estas variables y me quedo para relenar el formulario
?>
depliego en este punto el formulario
<? }?>

Pero si no le llega ninguna variable me redirecciona igualment...

Alguna ayuda, o sugerencia??
  #7 (permalink)  
Antiguo 18/05/2013, 02:51
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 22 años
Puntos: 0
Respuesta: variables vacias

Ya he conseguido realizar lo que me proponia.
Esta ha sido la mejor solución. Por si a alguien algún día le sirve

<?php
//valida si existe el curso
if (($avisos_sup['IdAvisos']!=$_GET['idcurso']) || ($avisA['IdAvisos']!=$_GET['idcursoA']) || ($avisB['IdAvisos']!=$_GET['idcursoB']) || ($cursos['id']!=$_GET['id'])){
print "<div id='dialog-modal' title='Alerta'><p>El curs que voleu accedir ja no està en curs</p></div><script>reload()</script>";
}
?>

Gracias de todas formas a todos.

Etiquetas: vacias, variables
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 11:15.