Foros del Web » Programando para Internet » PHP »

Solución Formulario php

Estas en el tema de Solución Formulario php en el foro de PHP en Foros del Web. Hola Buenas, la verdad es que esto hace un tiempo me funcionaba bien...creo que cambié algo pero no sé qué...Alguien me podría decir que estoy ...
  #1 (permalink)  
Antiguo 18/03/2014, 09:37
 
Fecha de Ingreso: marzo-2014
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 0
Solución Formulario php

Hola Buenas, la verdad es que esto hace un tiempo me funcionaba bien...creo que cambié algo pero no sé qué...Alguien me podría decir que estoy haciendo mal?

Es solo un formulario php que recibe un usuario y su pass, y dependiendo del cargo que tiene lo redirecciona hacia otra página.

Código HTML
<!DOCTYPE html>
<html>
<head>
<title>Página de Inicio</title>
<link rel="stylesheet" type="text/css" href="http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/Style.css" />
<link rel="icon" type="image/png" href="http://www.clubalfayomega.cl/PaginaWeb/Blog/Im%C3%A1genes/img-logo.png" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>

<body background ="http://www.clubalfayomega.cl/PaginaWeb/Imagenes/smoothy-gris-wallpapers_978_1280x1024%20copia.jpg">
<div id="form">
<form action = "http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/ConquiIngresado.php" method="post" name= "formulario">
<p align="right"><font color="#253491"><b>
Usuario: </b></font><input type="text" name="usuario"> </input></p>
<p align="right"><font color="#253491"><b>
Contraseña: </b></font><input type="password" name="clave"> </input></p>
<center>
<input type="submit" name= "botonGuardar" value="Ingresar">
</center>
</form>
</div>
</body>
</html>

Código PHP

<?php
if(isset($_POST ['usuario'])
&& isset($_POST['clave'])) {

$usuarioRegistrado = $_POST ['usuario'];
$contraRegistrada = $_POST ['clave'];

$db = "conquis";
$host = "localhost";
$pw = "j1324";
$user = "jozhxe";


$con = mysql_connect ($host, $user,$pw) or die ("No se pudo autenticar la BD.");
mysql_select_db ($db,$con) or die ("No se pudo conectar a la base de datos.");

$sql = "SELECT cargo FROM conquistador WHERE usuario='$usuarioRegistrado' AND clave='$contraRegistrada'";
$resultado = mysql_query($sql,$con);

$row = mysql_fetch_array($resultado);

if($row['cargo']=='SubDirector'){
echo"<script language='javascript'>window.location='http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/SubDirector.html'</script>";
}
else if($row['cargo']=='Director'){
}
else if($row['cargo']=='Secretario'){
echo"<script language='javascript'>window.location='http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/Secretario.html'</script>";
}
else if($row['cargo']=='Tesorero'){
}
else if($row['cargo']=='Capelln'){
}
else if($row['cargo']=='Consejero'){
}
else if($row['cargo']=='Conquistador'){
}
}else{
echo("Debes llenar todos los campos");
}
?>

El problema es que cada vez que intento ingresar me dice "Debe llenar todos los campos"

Creo que tiene problemas con el traspaso de variables.

Desde ya Muchas Gracias
  #2 (permalink)  
Antiguo 18/03/2014, 09:44
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Solución Formulario php

¿Que devuelve la consulta? :O

PD: En vez de tanto if / else if.. .podrías poner un switch, en plan:

Código PHP:

switch($row['cargo']) {
    case 
'Subdirector':
        
//blabla
    
break;
    case 
'Director':
       
//blabla2
    
break;
    
//etc etc


PD: La próxima vez usa el highlight
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 18/03/2014, 09:48
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Respuesta: Solución Formulario php

Deberia utilizar los Highlight para poder enterder mas el codigo.
El codigo PHP que muestras esta comprendido dentro del cigo HTML?, o estan en paginas separadas.

Si estas utilizando esto:

Código PHP:
Ver original
  1. if($row['cargo']=='SubDirector'){
  2. echo"<script language='javascript'>window.location='http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/SubDirector.html'</script>";
  3. }

es para realizar acciones dependiendo del cargo de la persona, entyonces para que cierras el final con esto:

Código PHP:
Ver original
  1. }else{
  2. echo("Debes llenar todos los campos");
  3. }

A mi entender es innesesario.
  #4 (permalink)  
Antiguo 18/03/2014, 10:06
 
Fecha de Ingreso: marzo-2014
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Solución Formulario php

Gracias, tomaré todas sus consideraciones y les avisaré :D
  #5 (permalink)  
Antiguo 18/03/2014, 10:25
 
Fecha de Ingreso: marzo-2014
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: Solución Formulario php

Ocupé el switch, pero el problema es que ni siquiera entra al primer if, adjunto código

Código HTML:
Ver original
  1. Código HTML
  2. <!DOCTYPE html>
  3. <title>Página de Inicio</title>
  4. <link rel="stylesheet" type="text/css" href="http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/Style.css" />
  5. <link rel="icon" type="image/png" href="http://www.clubalfayomega.cl/PaginaWeb/Blog/Im%C3%A1genes/img-logo.png" />
  6. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  7. </head>
  8.  
  9. <body background ="http://www.clubalfayomega.cl/PaginaWeb/Imagenes/smoothy-gris-wallpapers_978_1280x1024%20copia.jpg">
  10. <div id="form">
  11. <form action = "http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/ConquiIngresado.php" method="post" name= "formulario">
  12. <p align="right"><font color="#253491"><b>
  13. Usuario: </b></font><input type="text" name="usuario"> </input></p>
  14. <p align="right"><font color="#253491"><b>
  15. Contraseña: </b></font><input type="password" name="clave"> </input></p>
  16. <center>
  17. <input type="submit" name= "botonGuardar" value="Ingresar">
  18. </center>
  19. </form>
  20. </div>
  21. </body>
  22. </html>

Este formulario le envía las variables a la siguiente página php

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST ['usuario'])
  3. && isset($_POST['clave'])) {
  4.  
  5. $usuarioRegistrado = $_POST ['usuario'];
  6. $contraRegistrada = $_POST ['clave'];
  7.  
  8. $db = "conquis";
  9. $host = "localhost";
  10. $pw = "j1324";
  11. $user = "jozhxe";
  12.  
  13.  
  14. $con = mysql_connect ($host, $user,$pw) or die ("No se pudo autenticar la BD.");
  15. mysql_select_db ($db,$con) or die ("No se pudo conectar a la base de datos.");
  16.  
  17. $sql = "SELECT cargo FROM conquistador WHERE usuario='$usuarioRegistrado' AND clave='$contraRegistrada'";
  18. $resultado = mysql_query($sql,$con);
  19.  
  20. $row = mysql_fetch_array($resultado);
  21.  
  22. switch($row['cargo']){
  23.                
  24.                 case 'SubDirector':
  25.                 echo"<script language='javascript'>window.location='http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/SubDirector.html'</script>";
  26.                 break;
  27.                 case 'Director':
  28.                 break;
  29.                 case 'Secretario':
  30.                 echo"<script language='javascript'>window.location='http://www.clubalfayomega.cl/PaginaWeb/Portal_Club/Secretario.html'</script>";
  31.                 break;
  32.                 case 'Tesorero':
  33.                 break;
  34.                 case 'Conquistador':
  35.                 break;
  36.             }
  37. }else{
  38. echo("Debes llenar todos los campos");
  39. }
  40. ?>
  #6 (permalink)  
Antiguo 18/03/2014, 10:41
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 7 meses
Puntos: 326
Respuesta: Solución Formulario php

Sigo preguntando, ¿q devuelve la consulta?

Puedes verlo poniendo esto antes del switch, y despues del fetch..
Código PHP:
echo '<pre>';
print_r($row);
echo 
'</pre>'
Tb te vendria bien asegurar que el query no tiene error:
Código PHP:
$resultado mysql_query($sql,$con) or die("Se produjo un error en la consulta: ".mysql_error()); 
Y el switch, revisa la doc: http://es1.php.net/manual/es/control...res.switch.php

El "else" te sobra, deberia ir en la condicion default:
Código PHP:
switch($var) {
   case 
'valor1':
      
//asdasdads
   
break;
   case 
'valor2':
       
//asdasdads
   
break;
   default:
      echo 
"Valor no esperado";
   break;

__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 18/03/2014, 10:48
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 11 años, 4 meses
Puntos: 32
Respuesta: Solución Formulario php

para que usas else en el switch?
switch lo que maneja es default
pero bueno... igual por todo lo que e visto creo que tu problema viene de mas atras... antes de hacer el switch
haz un var_dump de $row y $row['cargo'] seguido de un exit; para verificar que es lo que te esta imprimiendo realmente

Etiquetas: formulario, formulario-php
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 00:00.