Foros del Web » Programando para Internet » PHP »

bueno o mi php esta mal o yo no me ligo con esto de las variables

Estas en el tema de bueno o mi php esta mal o yo no me ligo con esto de las variables en el foro de PHP en Foros del Web. Alguien me dice si falta declarar variables aqui?, es que esto me da un error culito..... Código PHP: Undefined index :  password in c : program fileseasyphp1 - 7wwwpruebassessiones ...
  #1 (permalink)  
Antiguo 18/12/2003, 17:28
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 15 años, 10 meses
Puntos: 6
bueno o mi php esta mal o yo no me ligo con esto de las variables

Alguien me dice si falta declarar variables aqui?, es que esto me da un error culito.....

Código PHP:
Undefined indexpassword in c:program fileseasyphp1-7wwwpruebassessiones.php on line 11 

y aqui ta el codigo...toy harto de ver ese error en cada cosa que hago

Código PHP:
//Incluimos coneccion
include("Connections/oConPruebas.php");
//Variables
$usuario  $_POST['usuario'];
$password $_POST['password'];
//Query a la Base de Datos
       
mysql_select_db("registro");
      
$sql mysql_query ("SELECT usuario FROM usuarios WHERE usuario ='".$_POST['usuario']."'",$oConPruebas) or die (mysql_error()); 
      
$row mysql_fetch_array($sql);
      
//Comparamos
if (isset($_POST['Submit'])):
      if(
$_POST['usuario'] == $row['usuario'] && $_POST['password'] == $row['password']):
                  
//Creamos session
                   
session_register($_POST['usuario']);
                
$idsession_id();
                
header("Location:sessiones.php?id=".$id);
                echo 
"Su Sessión Id es " .$id;
          else:
                  echo 
"Su datos no coinciden";
         endif;
endif; 
Saludos
__________________
www.dataautos.com
  #2 (permalink)  
Antiguo 18/12/2003, 18:00
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Bien, ese mensaje te lo da cuando cargas la pagina sin ser consecuencia del envio del formulario. Antes de darle al submit no existe el $_POST.

Casi lo haces bien. Tendrias que meter todo lo que supone el manejo de $_POST dentro del if:
Código PHP:

include("Connections/oConPruebas.php");


if (isset(
$_POST['Submit'])):

//Variables

$usuario  $_POST['usuario'];

$password $_POST['password'];

//Query a la Base de Datos

       
mysql_select_db("registro");

      
$sql mysql_query ("SELECT usuario FROM usuarios WHERE usuario ='".$_POST['usuario']."'",$oConPruebas) or die (mysql_error()); 

      
$row mysql_fetch_array($sql);

      
//Comparamos

      
if($_POST['usuario'] == $row['usuario'] && $_POST['password'] == $row['password']):

                  
//Creamos session

                   
session_register($_POST['usuario']);


//el resto de tu codigo 
Asi te aseguras de solo acceder a las variables POST cuando se ha enviado el formulario.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 18/12/2003, 18:24
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 15 años, 10 meses
Puntos: 6
josemi, pues sigue igual, lo unico es que cambia el numero de la linea en el error, e hice unos cambios pero sigue saliendo el mismo error:
Código PHP:
NoticeUndefined indexpassword in c:program fileseasyphp1-7wwwpruebassessiones.php on line 13 
mira el codigo
Código PHP:
//Incluimos coneccion
include("Connections/oConPruebas.php");
if (isset(
$_POST['Submit'])):
//Variables
$usuario  $_POST['usuario'];
$password $_POST['password'];
//Query a la Base de Datos
       
mysql_select_db("registro");
      
$sql mysql_query ("SELECT usuario FROM usuarios WHERE usuario ='".$usuario."'",$oConPruebas) or die (mysql_error()); 
      
$row mysql_fetch_array($sql);
      
//Comparamos
      
if($usuario == $row['usuario'] && $password == $row['password']):
                  
//Creamos session
                   
session_register($usuario);
                
$idsession_id();
                
header("Location:sessiones.php?id=".$id);
                echo 
"Su Sessión Id es " .$id;
          else:
                  echo 
"Su datos no coinciden";
         endif;
endif; 
__________________
www.dataautos.com

Última edición por asinox; 18/12/2003 a las 18:30
  #4 (permalink)  
Antiguo 19/12/2003, 02:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Entonces es:

O que los campos no se llaman asi en el formulario

O que el method del form no es POST

O que no has introducido un valor en el formulario (para lo que puedes hacer:
Código PHP:
$usuario  = isset($_POST['usuario'])?$_POST['usuario']:'';
$password = isset($_POST['password'])?$_POST['password']:''

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 19/12/2003, 07:16
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 15 años, 10 meses
Puntos: 6
tambien lo intente de esa forma manito y sigue igual
__________________
www.dataautos.com
  #6 (permalink)  
Antiguo 19/12/2003, 07:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Para darme de cabezazos . Me ofusque con el array $_POST. Pero realmente el que falla es el array $row (hubiese ayudado que marcaras cual es la linea del error). Por lo que veo ahora la linea es:
Código PHP:
if($usuario == $row['usuario'] && $password == $row['password']): 
Bien, $row contiene el array con los campos devueltos por la consulta SQL:
Código PHP:
$sql mysql_query ("SELECT usuario FROM usuarios WHERE usuario ='".$usuario."'",$oConPruebas
¿Que campos de la base de datos estas devolviendo? Solo uno: usuario. Lo correcto seria:
Código PHP:
$sql mysql_query ("SELECT usuario, password FROM usuarios WHERE usuario ='".$usuario."'",$oConPruebas
Asi ya existiria el indice 'password' en $row.


Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 19/12/2003, 07:50
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 15 años, 10 meses
Puntos: 6
si manito eso era jejej gracias...
__________________
www.dataautos.com
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 11:58.