Foros del Web » Programando para Internet » PHP »

seleccionar un dato de un campo

Estas en el tema de seleccionar un dato de un campo en el foro de PHP en Foros del Web. hola a todos, tengo el siguiente codigo: Código PHP:   <?php  include ( "c.php" ); $usu = $_POST [ 'name' ]; $pass = $_POST [ 'pass' ...
  #1 (permalink)  
Antiguo 15/04/2009, 17:02
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Sonrisa seleccionar un dato de un campo

hola a todos, tengo el siguiente codigo:

Código PHP:
 <?php include ("c.php");
$usu=$_POST['name'];
$pass=$_POST['pass'];
echo 
"postusu".$usu ;
echo 
"postpass".$pass;
if (
$pass==NULL|$usu=NULL) {
echo 
"Algun campo vacío.";
}else{
$resultado=mysql_query("SELECT * FROM u WHERE u= '$usu' ");
$meta=mysql_fetch_array($resultado);
if(
$meta['c'] != $pass) {
echo 
"Login incorrecto";
echo 
"datac".$meta['c'];
}else{
echo 
"metac:".$meta['c'];
setcookie("usu",'.$usu.'time() + 1200,"/");
echo 
"Has sido logueado correctamente ".$usu." y puedes acceder a <a href=../index.php>inicio</a>.";
}
}
include (
"abajo.php");?>
el problema es que aunque $usu sea juan , y en la tabla u, en el campo u este juan, $meta['c'], no contiene la contraseña que esta en esa misma tabla, esa misma fila, la variable no da ningun valor.

saludos
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
  #2 (permalink)  
Antiguo 15/04/2009, 18:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: seleccionar un dato de un campo

Verifica todo el contenido del registro:

Código php:
Ver original
  1. echo '<pre>';
  2. var_dump($meta);
  3. echo '</pre>';
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/04/2009, 19:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 25
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: seleccionar un dato de un campo

Creo que tu problema pasa porque primero haces la consulta en base al usuario, osea, traes todos los resultados que tienen el nombre "juan", en este punto, tal ves tengas mas de 1 campo que el nombre sea juan.

Ahora cuando procesás los resultados.

Código PHP:
$meta=mysql_fetch_array($resultado); 
Solo pasas a la variable, el valor del primer resultado traido, en caso de haber 3 registros traidos, solo toma el primero, por lo que, no conicide que sea el mismo registro que necesitás. Si lo que planteo es el caso, probaría dos cosas, que aunque no sean el verdadero caso, tal vez te ayuden.

1-
Código PHP:
$resultado=mysql_query("SELECT * FROM u WHERE u= '$usu' "); 
Lo cambiaría por:

Código PHP:
$resultado=mysql_query("SELECT * FROM u WHERE (u= '$usu') and (c='$pass' )"); 
De esta manera, solo te traería un único resultado, ya que se validás usuario y contraseña, al momento de ingresarlos comprobás eso. Además, si tuvieras 800 juan en la base de datos, con la anterior consulta te los traería todos, en mi caso, solo los juan que la contraseña corresponda a la ingresada.

2 -
Código PHP:
$meta=mysql_fetch_array($resultado); 
Lo cambiaría por

Código PHP:
while($meta=mysql_fetch_array($resultado))
{
     
//validacion

De esta manera, recorrés todos los resultados traidos, y no solo el primero, y los resultados se guardan en un array, Si validás que solo haya un usuario ingresado, y no permitís que ingrese otro, con lo primero alcanzaría. Donde dice "//validacion" iría lo que sigue en tu código con los "if"

Última edición por mauri19877; 15/04/2009 a las 19:07 Razón: faltó parentesis
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 13:51.