Foros del Web » Programando para Internet » PHP »

Usar variable $_POST en Switch

Estas en el tema de Usar variable $_POST en Switch en el foro de PHP en Foros del Web. Buenas necesito hacer la autentificación de un usuario por medio de su nick y su pass; si no es correcto devuelva un error y si ...
  #1 (permalink)  
Antiguo 21/09/2011, 19:06
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta Usar variable $_POST en Switch

Buenas necesito hacer la autentificación de un usuario por medio de su nick y su pass; si no es correcto devuelva un error y si es correcto almacene un valor de una tabla de una base de datos en una variable de sesion. Y para ello he realizado este codigo:

Código PHP:
<?php
$link 
mysql_connect ("localhost""root""");
if (!
$link)
  echo(
"ERROR");
else{
  if (!
mysql_select_db("myFaceBook"$link))
    echo(
"ERROR");
  else{
    
$ConsultaSQL="SELECT DNI,Pass FROM usuarios WHERE Nick='" .$_POST["NICK"]. "'";
    
$resultado mysql_query($ConsultaSQL$link);
    
$fila mysql_fetch_array($resultado);
    switch (
$fila[1])
    {
    case 
'':
      {
      
$_SESSION["Usuario"] = -1;
      echo (
"ERROR: No existe el Usuario");
      echo 
"<a href='acceso.html'>CONTINUAR</a>";
      }
    break;
    case 
'$_POST["PASS"]' :
      
$_SESSION["Usuario"] = $fila[0];
      echo 
"<a href='redessociales.php'>CONTINUAR</a>";
    break;
    default: 
      {
      
$_SESSION["Usuario"] = -1;
      echo (
"ERROR: Contraseña Incorrecta");
      echo 
"<a href='acceso.html'>CONTINUAR</a>";
      }
    }
  } 

?>
El problema es cuando quiero comparar la contraseña que metio el usuario con la que esta almacenada en la base de datos para ese usuario. Se que el fallo es porque no estoy usando bien la variable $_POST["PASS"] ; porque la parte que no evalua, pero no se como podria solucionarlo.

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 21/09/2011, 19:10
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Usar variable $_POST en Switch

si utilizas variables de sesión donde colocas
Código PHP:
Ver original 
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 21/09/2011, 19:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Usar variable $_POST en Switch

Cita:
Iniciado por skiper0125 Ver Mensaje
si utilizas variables de sesión donde colocas
Código PHP:
Ver original 
Eso no lo hice todavia, se que tengo que ponerlo, pero muchas gracias por recordarlo. Pero mientras que no sea capaz de evaluar la contraseña, eso da igual...
  #4 (permalink)  
Antiguo 21/09/2011, 19:23
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Usar variable $_POST en Switch

por lo visto lo que quieres hacer es un inicio de sesión, en el foro hay muchos ejemplos te dejo uno para que lo cheques

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #5 (permalink)  
Antiguo 21/09/2011, 19:44
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Usar variable $_POST en Switch

Hola amigo muy buenas noches lo que puedes hacer es:

Código PHP:
Ver original
  1. <?php
  2. $link = mysql_connect ("localhost", "root", "");
  3. if (!$link)
  4.   echo("ERROR");
  5. else{
  6.   if (!mysql_select_db("myFaceBook", $link))
  7.     echo("ERROR");
  8.   else{
  9.     $ConsultaSQL="SELECT DNI,Pass FROM usuarios WHERE Nick='" .$_POST["NICK"]. "'";
  10.      $resultado = mysql_query($ConsultaSQL, $link);
  11.     $fila = mysql_fetch_array($resultado);
  12.     // Antes de hacer el swicth
  13. $pass = $fila['pass']//supongo que se llama asi
  14. $password = $_POST['PASS'];
  15. if($pass != $password){
  16. echo("ERROR");
  17. }else{
  18.     switch ($fila[1])
  19.     {
  20.     case '':
  21.       {
  22.       $_SESSION["Usuario"] = -1;
  23.       echo ("ERROR: No existe el Usuario");
  24.       echo "<a href='acceso.html'>CONTINUAR</a>";
  25.       }
  26.     break;
  27.     case '$_POST["PASS"]' :
  28.       $_SESSION["Usuario"] = $fila[0];
  29.       echo "<a href='redessociales.php'>CONTINUAR</a>";
  30.     break;
  31.     default:  
  32.       {
  33.       $_SESSION["Usuario"] = -1;
  34.       echo ("ERROR: Contraseña Incorrecta");
  35.       echo "<a href='acceso.html'>CONTINUAR</a>";
  36.       }
  37. }
  38.     }
  39.   }  
  40. }  
  41. ?>
Espero que te sirva
__________________
Visita a Publiventa donde compras y vendes de todo
  #6 (permalink)  
Antiguo 21/09/2011, 19:46
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Usar variable $_POST en Switch

Cita:
Iniciado por skiper0125 Ver Mensaje
por lo visto lo que quieres hacer es un inicio de sesión, en el foro hay muchos ejemplos te dejo uno para que lo [URL="http://www.forosdelweb.com/f18/aporte-sistema-registro-reconocimiento-usuario-aporte-561417/"]cheques [/URL]

Saludos
Efectivamente eso es lo que quiero hacer. Muchisimas gracias, me ha servido perfectamente.

De todas formas, a ver si alguien sabria explicarme como usar una variable para un case de un Switch, ya a modo de curiosidad y para saber si es posible o estaba intentando convertir el agua en vino.
  #7 (permalink)  
Antiguo 21/09/2011, 19:53
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Usar variable $_POST en Switch

Cita:
Iniciado por gustavopino Ver Mensaje
Hola amigo muy buenas noches lo que puedes hacer es:

Código PHP:
Ver original
  1. <?php
  2. $link = mysql_connect ("localhost", "root", "");
  3. if (!$link)
  4.   echo("ERROR");
  5. else{
  6.   if (!mysql_select_db("myFaceBook", $link))
  7.     echo("ERROR");
  8.   else{
  9.     $ConsultaSQL="SELECT DNI,Pass FROM usuarios WHERE Nick='" .$_POST["NICK"]. "'";
  10.      $resultado = mysql_query($ConsultaSQL, $link);
  11.     $fila = mysql_fetch_array($resultado);
  12.     // Antes de hacer el swicth
  13. $pass = $fila['pass']//supongo que se llama asi
  14. $password = $_POST['PASS'];
  15. if($pass != $password){
  16. echo("ERROR");
  17. }else{
  18.     switch ($fila[1])
  19.     {
  20.     case '':
  21.       {
  22.       $_SESSION["Usuario"] = -1;
  23.       echo ("ERROR: No existe el Usuario");
  24.       echo "<a href='acceso.html'>CONTINUAR</a>";
  25.       }
  26.     break;
  27.     case '$_POST["PASS"]' :
  28.       $_SESSION["Usuario"] = $fila[0];
  29.       echo "<a href='redessociales.php'>CONTINUAR</a>";
  30.     break;
  31.     default:  
  32.       {
  33.       $_SESSION["Usuario"] = -1;
  34.       echo ("ERROR: Contraseña Incorrecta");
  35.       echo "<a href='acceso.html'>CONTINUAR</a>";
  36.       }
  37. }
  38.     }
  39.   }  
  40. }  
  41. ?>
Espero que te sirva
Gracias por la ayuda, pero le sucede lo mismo que me pasaba a mi, que la parte de:

Código PHP:
    case '$_POST["PASS"]' 
      
$_SESSION["Usuario"] = $fila[0]; 
      echo 
"<a href='redessociales.php'>CONTINUAR</a>"
    break; 
Nunca la valida como cierta. Por eso creo que el problema es al usar la variable para el case, que en vez de comparar con el valor de la variable $_POST["PASS"] lo que hace es comparar con la cadena de caracteres $_POST["PASS"] .
  #8 (permalink)  
Antiguo 21/09/2011, 19:57
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Usar variable $_POST en Switch

Es mejor usar condicionales if else elseif para ese caso:

http://www.php.net/manual/es/control...res.elseif.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 21/09/2011, 20:49
Avatar de gustavopino  
Fecha de Ingreso: septiembre-2011
Ubicación: venezuela
Mensajes: 152
Antigüedad: 12 años, 7 meses
Puntos: 29
Respuesta: Usar variable $_POST en Switch

quitas el case '$_POST["PASS"]' :

y ponlo asi:
Código PHP:
Ver original
  1. if($pass != $password){
  2. $_SESSION["Usuario"] = $fila[0];  
  3.       echo "<a href='redessociales.php'>CONTINUAR</a>";
  4. }
Espero tu respuesta
__________________
Visita a Publiventa donde compras y vendes de todo

Etiquetas: html, mysql, post, sql, switch, tabla, usar, 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 21:39.