Foros del Web » Programando para Internet » PHP »

Problemas con paso de variables

Estas en el tema de Problemas con paso de variables en el foro de PHP en Foros del Web. Hola amigos del foro, antes que nada les comento que soy nuevo en el foro,esta es mi primera participacion, y bueno, tambien soy novato en ...
  #1 (permalink)  
Antiguo 22/10/2012, 17:51
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta Problemas con paso de variables

Hola amigos del foro, antes que nada les comento que soy nuevo en el foro,esta es mi primera participacion, y bueno, tambien soy novato en el lenguaje php.
pues bien, les planteo mi problema:

estoy tratando de hacer un formulario de ingreso por contraseña, creo mi primer formulario en html(login1.php) en el cual se pide el nombre de usuario y contraseña, y en otro formulario(login2.php) se valida los datos de una base de datos, para dar el acceso o negarlo.
resulta que al hacer la validacion en el segundo formulario, me valida bien el campo "login" pero no me valida el campo de "clave", le indico que me muestre el valor devuelto por post con un echo, y no me muestra nada, como si no me estubiera entregando ningun valor con el metodo post, ya busque mil maneras de corregirlo pero no encuentro solucion, lo raro es que el campo login si me lo valida bien, ojala y pudieran orientarme, ya que como mencione al principio soy novato y me falta mucha experiencia.
mil gracias de antemano por la ayuda.
les dejo el codigo de los 2 form.


login1.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ingreso al sisitema </title>
</head>

<body>
<script language="javascript">
function validar(form){

if(document.form.login.value.length < 1){ //si el largo nombre es menor a 1 caracter
alert("¡¡ DEBE INGRESAR NOMBRE DE USUARIO !!"); //mensaje a la pantalla
document.form.login.focus(); //el puntero del mouse queda en usuario
return 0; //devolvemos un cero para dejar de validar
}

if(document.form.clave.value.length < 1){ //si el largo nombre es menor a 1 caracter
alert("¡¡ DEBE INGRESAR LA CONTRASEÑA !!"); //mensaje a la pantalla
document.form.clave.focus(); //el puntero del mouse queda en usuario
return 0; //devolvemos un cero para dejar de validar

}else{

document.form.submit();
}
}
</script>

</head>
<body>

<form action="login2.php" method="post"name="form" id="form">
<b><font size ="6" color="#0000FF">LOGIN DE USUARIO</font><b>
<TABLE BORDER=0>
<TR>
<TD> USUARIO: </TD>
<td><input type= "text" name="login" size=30></td>
</TR>
<TD> CONTRASEÑA : </TD>
<td><input type= "password" name="clave" size=30></td>
</TR>
<tr>
<td colspan="2"><div align=" center">

<input name="ingresa" value="INGRESAR" type="button" onClick="validar(this.form)"><br>

</form>

</body>

-----------------------------------------------------------------------------------------------


login2.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bienvenido al sisitema</title>
</head>

<body>
<?php


$con = mysql_connect('localhost','root','') //Realiza la conexion al servidor
or die("OCURRIO UN ERROR AL INTENTAR CONECTAR CON EL SERVIDOR");
mysql_select_db("teleco",$con) //Conecta a la base de datos
or die("OCURRIO UN ERROR AL CONECTAR A LA BASE DE DATOS");


$res=mysql_query("select * from usuarios where usuario='".$_POST[login]."'",$con);
$row=mysql_fetch_row($res);
if(!$row)
{
mysql_close($con);
echo '<center> LO SENTIMOS, EL USUARIO:<B>'." ".$_POST[login]." ".'</b> NO EXISTE !!<BR>';
echo $_post[login];
ECHO 'VOLVER A LA PAGINA PRINCIPAL <a href="login1.php">AHORA</a></center>';
die();


}

$clavebd=$row[3];


echo "clave de base de datos".$clavebd;// esta variable si me devuelve valor
$clavein=$_post[clave];
echo "clave ingredasada". $_clavein; // esta variable no me devuelve nada


if(!($_post[clave]==$clavebd))
{
mysql_close($con);
ECHO'<center>!!CONTRASEÑA NO VALIDA¡¡<BR>';
ECHO 'VOLVER A LA PAGINA PRINCIPAL <a href="login1.php">AHORA</a></center>';
die();

}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 22/10/2012, 18:37
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Problemas con paso de variables

¬¬ te recomiendo que te leas de nuevo un tutorial/manual basico de PHP, los indices en array y super array deben ir entre comillas (sean dobles o sencillas), si omites las comillas PHP interpretará el indice como una constante....

Código PHP:
Ver original
  1. echo $_POST[clave]; //MAL
  2. echo $_POST['clave']; //BIEN
  3. echo $_POST["clave"]; //BIEN

Y por ultimo que se me olvidaba, los super array ($_POST, $_GET,$_SESSION,$_SERVER) SIEMPRE deben ir en mayúsculas para una clara lectura y evitar problemas de compatibilidad...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 22/10/2012, 20:52
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problemas con paso de variables

Hola Nemutagk, muchas gracias por tu pronta respuesta, te comento que ya le puse las comillas y posteriormente los apostrofes, pero sigue exactamente igual, no logre ningun cambio, lo extraño es que esta parte del codigo: $res=mysql_query("select * from usuarios where usuario='".$_POST[login]."'",$con);
si se ejecuta bien ya, que si ingreso un usuario que no existe en la base de datos, me indica qu el usuario no existe, por lo tanto si esta tomando el valor devuelto por post, y al momento de validar la contraseña es cuando siempre me indica contraseña no valida aunque este correcta, alguna otra idea??
mil gracias.
  #4 (permalink)  
Antiguo 22/10/2012, 21:09
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Problemas con paso de variables

El problema de las indices en array es para evitar problemas por configuración y compatibilidad, es mejor usar el lenguaje tal cual fue desarrollado....

Tu problema probablemente venga en como estas tomando la contraseña desde la db, estas seguro que la contraseña se encuentra en el indice "3" del array?, porque no mejor usas mysql_fetch_assoc y así directamente pides la contraseña con forme al nombre de la celda en la base de datos, si aun así quieres usar tal cual lo tienes primero depura la consulta SQL haciendo un "var_dump($row)", aparte, la validación que haces usas código de mas, cuando se puede resumir considerablemente...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 22/10/2012, 21:28
 
Fecha de Ingreso: octubre-2012
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problemas con paso de variables

Hola,Gracias por tu respuesta, fijate que cree otro form solo con las instrucciones:
<?php
$usuario=$_POST['login'];
echo "usuario".$_usuario;
$clavein=$_post['clave'];
echo "clave ingredasada". $_clavein
?>
y solo me aparecen las etiquetas del echo, pero las variables no me entregan nada, lo que parece indicar que no me esta entregando nada el metodo post....
GRacias y saludos.
  #6 (permalink)  
Antiguo 23/10/2012, 09:33
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Problemas con paso de variables

Cita:
Iniciado por mariohr61 Ver Mensaje
Hola,Gracias por tu respuesta, fijate que cree otro form solo con las instrucciones:
<?php
$usuario=$_POST['login'];
echo "usuario".$_usuario;
$clavein=$_post['clave'];
echo "clave ingredasada". $_clavein
?>
y solo me aparecen las etiquetas del echo, pero las variables no me entregan nada, lo que parece indicar que no me esta entregando nada el metodo post....
GRacias y saludos.
<?php
$usuario=$_POST['login'];
echo "usuario".$usuario;
$clavein=$_post['clave'];
echo "clave ingredasada". $clavein;
?>

Prueba a quitar esas barras bajas.

Un saludo.

Última edición por Hector1985; 23/10/2012 a las 09:33 Razón: Me confundí

Etiquetas: formulario, html, mysql, paso, sql, 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 23:26.