Foros del Web » Programando para Internet » PHP »

Problema con password y paso de datos a ptra página

Estas en el tema de Problema con password y paso de datos a ptra página en el foro de PHP en Foros del Web. Hola, buenas tardes a todos, Tengo el siguiente problema, a ver si alguien puede ayudarme: En una página tengo en el ingreso de un cliente ...
  #1 (permalink)  
Antiguo 26/05/2010, 13:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Problema con password y paso de datos a ptra página

Hola, buenas tardes a todos,
Tengo el siguiente problema, a ver si alguien puede ayudarme:
En una página tengo en el ingreso de un cliente y su password, el programa valida que la password sea correcta, pero una vez que hace esto quiero pasar el codigo del cliente a otra página. Si coloco esta instruccion <a href="selects/reg1_1_NewPoint_pt.php"></a><form action="selects/reg1_1_NewPoint_pt.php" method="post" id="Registro: Empresas"> antes de ingresar el cliente, que me permitiria pasar el cliente a la otra página, no funciona, porque arriba ya hay un Form que tiene un action que es incompatible con el action de la intruccion para pasar el codigo. Que puede estar malo aqui?, o que puede faltar para que pueda funcionar?. Desde ya muchas gracias.
Acá coloco el codigo fuente:

<form action="<?php echo $loginFormAction; ?>" method="POST" name="form1"> <table width="60%" border="0" cellpadding="0" cellspacing="0" bgcolor="#408080">
<tr>
<td width="47%">&nbsp;</td>
<td width="53%">&nbsp;</td>
</tr>
<a href="selects/reg1_1_NewPoint_pt.php"></a><form action="selects/reg1_1_NewPoint_pt.php" method="post" id="Registro: Empresas">
<tr>
<td align="right"><span class="Estilo84">C&oacute;digo Empresa</span></td>
<td><input name="cliente" type="text" id="cliente"></td>
</tr>
<tr>
<td align="right"><span class="Estilo84">Contrase&ntilde;a</span></td>
<td><input name="password" type="password" id="password" size="15"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right"><input name="Submit" type="submit" value="Entrar"></td>
<td align="left"><input type="reset" name="Submit2" value="Limpiar"></td>
</tr>
</table>
</form>
  #2 (permalink)  
Antiguo 26/05/2010, 13:32
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 9 meses
Puntos: 81
Respuesta: Problema con password y paso de datos a ptra página

Creo que no tienes muy claros los conceptos de envio de datos entre paginas.

Para pasar datos de una pagina a otra hay 2 opciones basicas:

1.- Por medio de un formulario
2.- Por medio de un link

Para pasar datos por medio de un formulario tienes que poner los inputs dentro de un tag <form></form> para que la pagina interprete que todos los elementos de ese form se van a enviar y ademas agregar un boton de submit que haga el trabajo de enviarlos.

Para pasar datos por medio de un link debes poner la informacion directamente en el link con el formato siguiente:
Código HTML:
<a href="pagina.php?variable1=valor_variable1&variable2=valor_variable2&variableN=valor_variableN">vamos a pagina.php con todas las variables</a> 
Trata de investigar un poco mas de "paso de variables en formularios" aca y en san google.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 26/05/2010, 15:20
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con password y paso de datos a ptra página

Gracias por tu respuesta MARVIN, la verdad es que me parece que no entendistes bien el problema o yo no me explique bien, pero se trata de lo siguiente, si tu ves existe un primer Form que permite hacer que la password sea validada y corresponda al cliente, que tiene un Action que se crea cuando haces coneccion de usuario, si yo creo otro Form dentro de la página, no puedo colocarle un Action que sea una pasada de datos, porque no permite tener 2 Form con distintos Action; ahora si quito el primero, los datos pasan perfecto a la otra página, pero pierdo la validación de la password; entonces la situación es perimitir pasar datos a otra página pero a la vez no perder la validación de la password.
  #4 (permalink)  
Antiguo 26/05/2010, 16:31
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 8 meses
Puntos: 10
Respuesta: Problema con password y paso de datos a ptra página

Te voy a decir casi lo mismo que el usuario anterior:

Mira:

//creas un form
<form action="selects/reg1_1_NewPoint_pt.php" method="post" id="Registro: Empresas">
//el form que creaste no tiene cierre </form> ni botones

//al no cerrar el anterior estas creando otro form DENTRO del primero
<form action="<?php echo $loginFormAction; ?>" method="POST" name="form1">
//Tampoco sierras este form

//Ahora un link dentro del form...
<a href="selects/reg1_1_NewPoint_pt.php"></a>

//OTRO form anidado ... que si cierras

//Ahora cuando oprimes el boton de este formulario este no funciona, sino que funcionaria el PRIMERO que creaste (sin cerrar)

<form action="selects/reg1_1_NewPoint_pt.php" method="post" id="Registro: Empresas">

<input name="cliente" type="text" id="cliente">
<input name="password" type="password" id="password" size="15">
<input name="Submit" type="submit" value="Entrar">
<input type="reset" name="Submit2" value="Limpiar">
</form>


Cada formulario debe tener su etiqueta de apertura y de ciere, y los botones deben estar dentro
salvo exepciones...

<form action="alla_voy.php" method='post'>
< algn otro elemento de form... >
<input type='submit' value= 'enviar'/>
</form>

Saludos...!

Última edición por wiwi74; 26/05/2010 a las 16:38
  #5 (permalink)  
Antiguo 27/05/2010, 02:46
Avatar de kalebra  
Fecha de Ingreso: mayo-2010
Ubicación: Marbella
Mensajes: 44
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Problema con password y paso de datos a ptra página

Buenas, no se si te entendi lo que quieres hacer, pero te explico lo que hago yo para ingresar usuario y contraseña, yo utilizo un ejemplo que vi y lo adapte a lo mio.

Este es el formulario para ingresar el usuario y la contraseña.
Código HTML:
<!-- Formulario Login -->
<form action="validate.php" method="post">
  <table width="200" border="0">
    <tr> 
      <td><div align="right"><strong><span class="Estilo1">Usuario:</span> </strong></div></td>
      <td><input type="text" name="adminName" size="20" maxlength="10" /></td>
    </tr>
    <tr> 
      <td><div align="right"><strong><span class="Estilo1">Clave:</span> </strong></div></td>
      <td><input type="password" name="adminClave" size="20" maxlength="10" /></td>
    </tr>
    <tr> 
      <td><input name="submit" type="submit" value="Ingresar" /></td>
    </tr>
  </table>
</form> 
Este archivo validate.php, me valida el usuario y la contraseña que tengo en MySQL, y sale un boton que al pulsarlo me lleva a la pagina de administracion por ejemplo, se puede modificar para cuando se valide el usuario te lleve a la pagina que quieras.
Código PHP:
<!-- Validar Admin -->
<?php
error_reporting
(E_ALL & ~E_NOTICE);
session_start();
// ------------------------------------------------------------------------------------- datos para establecer la conexion con la base de mysql.
include(".././includes/conexion.php");
function 
quitar($mensaje)
{
    
$nopermitidos = array("'",'\\','<','>',"\"");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}
if(
trim($_POST["adminName"]) != "" && trim($_POST["adminClave"]) != "")
{
// ------------------------------------------------------------------------------------- Puedes utilizar la funcion para eliminar algun caracter en especifico
// ------------------------------------------------------------------------------------- $usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
// ------------------------------------------------------------------------------------- $password = $HTTP_POST_VARS["password"];
// ------------------------------------------------------------------------------------- o puedes convertir los a su entidad HTML aplicable con htmlentities
    
$adminName strtolower(htmlentities($_POST["adminName"], ENT_QUOTES));
    
$adminClave md5($_POST["adminClave"]);
    
$result mysql_query('SELECT adminClave, adminName FROM admin WHERE adminName=\''.$adminName.'\'');
    if(
$row mysql_fetch_array($result)){
        if(
$row["adminClave"] == $adminClave){
            
$_SESSION["k_username"] = $row['adminName'];
            echo 
'<style type="text/css">
                  .Estilo1 {color: #FFFFFF}
                  </style>'
;
            echo 
'<h3><span class="Estilo1">Has sido logueado correctamente, registrado como:</span></h3> '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="./scp-admin.php"><img id="cbi_cbindex_1" src="images/administracion.png" name="ebbcbindex_1" width="149" height="26" style="vertical-align: bottom;" border="0" alt="Administracion" title="" /></a>';
// ------------------------------------------------------------------------------------- Elimina el siguiente comentario si quieres que re-dirigir automticamente a index.php
        /* Ingreso exitoso, ahora sera dirigido a la pagina principal.
            <SCRIPT LANGUAGE="javascript">
            location.href = "login_admin.php";
            </SCRIPT> */
        
}else{
            echo 
'<style type="text/css">
                  .Estilo1 {color: #FFFFFF}
                  </style>'
;
            echo 
'<h3><span class="Estilo1">Usuario o Password incorrectos, vuelva a intentarlo.</span></h3>';
            echo 
'<a href="scp-login.php"><img id="cbi_cbindex_1" src="images/volver_atras.png" name="ebbcbindex_1" width="86" height="26" style="vertical-align: bottom;" border="0" alt="Volver Atras" title="" /></a></p>';
        }
    }else{
        echo 
'<style type="text/css">
                  .Estilo1 {color: #FFFFFF}
                  </style>'
;
        echo 
'<h3><span class="Estilo1">Usuario o Password incorrectos, vuelva a intentarlo.</span></h3>';
        echo 
'<a href="scp-login.php"><img id="cbi_cbindex_1" src="images/volver_atras.png" name="ebbcbindex_1" width="86" height="26" style="vertical-align: bottom;" border="0" alt="Volver Atras" title="" /></a></p>';
    }
    
mysql_free_result($result);
}else{
    echo 
'<style type="text/css">
                  .Estilo1 {color: #FFFFFF}
                  </style>'
;
    echo 
'<h3><span class="Estilo1">Debe especificar un usuario y password</span></h3>';
    echo 
'<a href="scp-login.php"><img id="cbi_cbindex_1" src="images/volver_atras.png" name="ebbcbindex_1" width="86" height="26" style="vertical-align: bottom;" border="0" alt="Volver Atras" title="" /></a></p>';
}
mysql_close();
?>
Esto es lo que pongo en el inicio de todas las paginas que quiero proteger con usuario y contraseña.
Código PHP:
<?php
error_reporting
(E_ALL & ~E_NOTICE); 
session_start();
if(!isset(
$_SESSION["k_username"]))
{
   
header('Location: scp-login.php');
   exit;
}
?>
Asi ya podrias en esa pagina redireccionada poner el otro formulario que no te deja en la primera.

P.D. Lo dicho no se si es lo que necesitas, pero es lo que he entendido.

Saludos
  #6 (permalink)  
Antiguo 27/05/2010, 04:36
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con password y paso de datos a ptra página

Porque no validas primero el usuario, y una vez lo hayas validado haces el formulario? es decir..

Código PHP:
<?php
if($logincorrecto) { ?>
<form action="selects/reg1_1_NewPoint_pt.php" method="post" id="Registro: Empresas">
<tr>
<td align="right"><span class="Estilo84">C&oacute;digo Empresa</span></td>
<td><input name="cliente" type="text" id="cliente"></td>
</tr>
<tr>
<td align="right"><span class="Estilo84">Contrase&ntilde;a</span></td>
<td><input name="password" type="password" id="password" size="15"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right"><input name="Submit" type="submit" value="Entrar"></td>
<td align="left"><input type="reset" name="Submit2" value="Limpiar"></td>
</tr>
</table>
</form>
<?php
}else{
echo 
"logueado incorrectamente, lo sentimos";

}
?>

Y el codigo para ver si esta logueado o no sería así;
Código PHP:
<?php
//incluimos la conexion 
  
include("conex.php");


//declaramos la variable de logueado en false y recogemos de las cookies el usuario y la pass 
$loginCorrecto false;
$tNick mysql_real_escape_string($_COOKIE["usNick"]);
$tPass mysql_real_escape_string($_COOKIE["usPass"]);

//realizamos una consulta comprobando si sale algun resultado con ese nick y esa password
$result mysql_query("SELECT * FROM usuarios WHERE nick='$tNick' AND password='$tPass'");
$rows mysql_fetch_array($result);
//si sale algun resultado que coincida cambiamos el login a true
    
if(mysql_num_rows($result) == 1){
        
$loginCorrecto true;
    } else {
//si no, lo dejamos en false, y le mostrara sin loguear.
        
$loginCorrecto false;
    }
mysql_free_result($result);
  
?>

Para que te funcionase esto, tendrías que hacer una página con un formulario sencillo en la que se iniciase como usuario.. y luego en cada página que tu quieras comprobarías de la manera que te he dicho yo si esta logueado o no. Si lo esta le muestras lo que hay en la pagina, si no lo esta le muestras un error y le rediriges.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.
  #7 (permalink)  
Antiguo 27/05/2010, 04:39
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con password y paso de datos a ptra página

Te lo pongo aún más facil, este sería el codigo que te loguearia..

Código PHP:
<?php
//incluimos el archivo de conexion y el modulo de seguridad
   
include("conex.php");

//Recogemos las variables escapando caracteres raros
$nick mysql_real_escape_string($_POST["nick"]);
$password mysql_real_escape_string($_POST["password"]);

//comprobamos si el nick o la pass esta vacio 
  
if(trim("$nick") != "" && trim("$password") != "")
  {
//limpiamos el nick y la password si no da error, escapando caracteres y reemplazando codigo html
$nickN mysql_real_escape_string($nickN);
$passN mysql_real_escape_string($passN);
$nickN htmlentities($nick);
$passN htmlentities($password);

//comprobamos que la password del usuario que ha introducido sea correcta
  
$result mysql_query("SELECT password FROM usuarios WHERE nick='$nickN'");
  if(
$row mysql_fetch_array($result))
   {
//si lo es crea la cookie
  
if($row["password"] == $passN)
  {
  
//La cookie dura 1 hora
setcookie("usNick",$nickN,time()+36000"/");
setcookie("usPass",$passN,time()+36000"/");
//una vez creada la cookie nos redirecciona
  
echo "<table style=\"height:100%;width:100%;\" border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Logueado correctamente, ahora sera dirigido a el panel de administración automaticamente.</div></td></tr></table>";
  echo 
"<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=administracion.php\">";
  }
  else
  {
//si la contraseña introducida es incorrecta muestra este mensaje
  
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\"><br>Contraseña incorrecta. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  }
  else
  {
//si el usuario no existe nos muestra este error y volvemos atras
  
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\"><br>Ese Usuario no existe en la base de datos. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  
mysql_free_result($result);
  }
  else
  {
//si deja los campos en blanco nos muestra este error y volvemos atras.
  
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=../panel.php\">";
  echo 
"<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\"><br>Debe especificar un nick y password. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
  }
  
mysql_close();  
  
?>

Y este el formulario donde meterias los datos para loguearte.

Código HTML:
<form id="login" name="login" method="post" action="ingresar.php">
  <table width="200" border="0" align="center">
    <tr>
      <td width="247" ><div align="center"><span class="Estilo2">Usuario</span></div></td>
      <td width="247" ><span class="Estilo1">
        <label>
        <div align="left">
          <input type="text" name="nick" />
        </div>
        </label>
      </span></td>
    </tr>
    <tr>
      <td class="Estilo2"><div align="center">Contrase&ntilde;a</div></td>
      <td><label>
        <div align="left">
          <input type="password" name="password" />
          </div>
      </label></td>
    </tr>
    <tr>
      <td colspan="2" class="Estilo2">&nbsp;</td>
    </tr>
    <tr>
      <td class="Estilo2"><label>
        <div align="center">
          <input name="Enviar" type="submit" id="Enviar" value="Enviar" />
          </div>
      </label></td>
      <td class="Estilo2"><label>
        <div align="left">
          <input name="restablecer" type="reset" id="restablecer" value="Restablecer" />
          </div>
      </label></td>
    </tr>
  </table>
</form> 

Adaptalo a tus necesidades..
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.
  #8 (permalink)  
Antiguo 28/05/2010, 09:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Respuesta: Problema con password y paso de datos a ptra página

Hola a todos, gracias por sus respuestas a mi problema, he adoptado la solución que me envió Flow89, pero tengo la siguiente situacion; me funciona muy bien para pasar las variables a la página siguiente, pero no me está realizando la validación de la password, o del cliente si existe o no, todo eso se lo salta, me gustaria saber que puede ser, ahi coloco el codigo, muchas gracias.

<?php require_once('Connections/QlikPro.php'); ?>
<?php
mysql_select_db($database_QlikPro, $QlikPro);
$query_Recordset1 = "SELECT * FROM clientes";
$Recordset1 = mysql_query($query_Recordset1, $QlikPro) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);

//Recogemos las variables escapando caracteres raros
if (isset($_POST['codigo'])) {
$nick = mysql_real_escape_string($_POST["codigo"]);
$password = mysql_real_escape_string($_POST["passw"]);

//comprobamos si el nick o la pass esta vacio
if(trim("$nick") != "" && trim("$password") != "")
{
//limpiamos el nick y la password si no da error, escapando caracteres y reemplazando codigo
$nickN = mysql_real_escape_string($nickN);
$passN = mysql_real_escape_string($passN);
$nickN = htmlentities($nick);
$passN = htmlentities($password);

//comprobamos que la password del usuario que ha introducido sea correcta
$result = mysql_query("SELECT Password FROM clientes WHERE Cliente='$nickN'");
if($row = mysql_fetch_array($result))
{
//si lo es crea la cookie
if($row["Password"] == $passN)
{
setcookie("usNick",$nickN,time()+36000, "/");
setcookie("usPass",$passN,time()+36000, "/");
//una vez creada la cookie nos redirecciona
echo "<META HTTP-EQUIV='refresh' CONTENT='2; url=selects/reg1_1_NewPoint_es.php'>";
}
else
{
//si la contraseña introducida es incorrecta muestra este mensaje
echo "<META HTTP-EQUIV='refresh' CONTENT='2; url=reg1_NewPoint_error_es.php'>";
}
}
else
{
//si no esite el cliente muestra este mensaje
echo "<META HTTP-EQUIV='refresh' CONTENT='2; url=reg1_NewPoint_error_es.php'>";
}
mysql_free_result($result);
}
else
{
//si deja los campos en blanco nos muestra este error y volvemos atras.
echo "<META HTTP-EQUIV='refresh' CONTENT='2; url=reg1_NewPoint_es.php'>";
}
mysql_close();
}
?>

La instruccion que está color rojo tuve que agregarla porque si no me tira el sgte. error: APACHE HTTP Server ha detectado un error y debe cerrarse.
Es posible que haya perdido la información en que estaba trabajando.


Sim embargo creo que es lo que me esta afectando para la validación.
Desde ya agradesco su ayuda.
  #9 (permalink)  
Antiguo 31/05/2010, 03:51
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con password y paso de datos a ptra página

Como ya te conteste, comprueba que te pase bien las variables de un fichero a otro con un simple echo $var.

Ya nos contaras.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.

Etiquetas: password
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 12:07.