Foros del Web » Programando para Internet » PHP »

Paso de variables

Estas en el tema de Paso de variables en el foro de PHP en Foros del Web. Buenos dias. A vr si me podian ayudar. Bueno mejor dicho a ver si me puedo explicar. Mi problema es que no paso bien las ...
  #1 (permalink)  
Antiguo 10/05/2012, 03:41
Avatar de interjsr  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 81
Antigüedad: 12 años, 6 meses
Puntos: 2
Paso de variables

Buenos dias. A vr si me podian ayudar. Bueno mejor dicho a ver si me puedo explicar. Mi problema es que no paso bien las variables, creo.

Tengo 3 ficheros php.
El Fichero1.php será el menú y al seleccionar la opción1 llamo a fichero2.php pasando por url una variable (Reg) que será 0.
El Fichero2.php será un formulario con un mensage. Recibo variables porGet, (sí, sí), y switch ($Reg) {
case "0":
echo "<font color = '#1041AA'>";
echo "No ha hay acciones";
echo "</font>";
break;
case "1":
echo "<font color = '339900'>";
echo "Usuario y Contraseña módificados con éxito";
echo "</font>";
break;
case "2":
echo "<font color = '339900'>";
echo "Contraseña incorrecta";
echo "</font>";
case "3":
echo "<font color = 'FF9900'>";
echo "La contraseña actual es obligatoria para comprobar";
echo "</font>";
break;
case "4":
echo "<font color = 'FF9900'>";
echo "Debe modificar al menos un campo, el usuario o la contraseña.";
echo "</font>";
break;
case "5":
echo "<font color = 'FF9900'>";
echo "Debe confirmar la nueva contraseña.";
echo "</font>";
break;
case "6":
echo "<font color = 'FF9900'>";
echo "Contraseña modificada con éxito";
echo "</font>";
break;
case "7":
echo "<font color = 'FF9900'>";
echo "Usuario modificado con éxito.";
echo "</font>";
break;
}
El fichero3.php es al que llama el formualario del fichero2.php y accede a bbdd y que dependiendo de uno u otro resultado devuelve Reg.
if ((empty($Contra1)) && (empty($Usuario))){
$Reg = "4";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
//Hay un cambio
else{
//Usuario y Contraseña no vacio. Se modifica el usuario y la contraseña
if ((!empty($Usuario)) && (!empty($Contra1))){
//Si vacia la confirmacion
if(!empty($Contra2)){
$Reg = "5";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
//todo correcto
else{
//Comprobar que el nuevo usuario no exista
$Reg = "1";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
}
//Contarseña no vacío. Sólo se modifica la contarseña
elseif(!empty($Contra1)){
//Si vacia la confirmacion
if(!empty($Contra2)){
$Reg = "5";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
//todo correcto
else{
$Reg = "6";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
}
//Usuario no vacío . Sólo se modifica el usuario
elseIf (!empty($Usuario)){
//Comprobar que el nuevo usuario no exista
$Reg = "7";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
}
}
//error de contraseña
else{
$Reg = "2";
header("Location:".$f_Ruta."?Reg=$Reg");
exit();
}
}



//Siempre me sale

$Reg = 2
Contraseña incorrectaLa contraseña actual es obligatoria para comprobar

Alguien sabe qué estoy haciendo mal. No sé si me expolicado bien.
  #2 (permalink)  
Antiguo 10/05/2012, 04:12
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Paso de variables

Tienes un elseIf (la i en mayuscula), pon elseif todo en minuscula. Eso puede ser un error pero tampoco estoy muy seguro.

Tambien comprueba que haces los cierres de los if, elseif y elses correctamente. Porque me parece que cierras mas de lo que deberias. Espero no equivocarme i que sea algo de eso.

EDIT: Para ser mas especifico creo que te sobran el ultimo cierre }, y también el ultimo cierre } justo antes del ultimo else
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.

Etiquetas: formulario, paso, variables, usuarios
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 22:32.