Foros del Web » Programando para Internet » PHP »

Qué error ven aquí? (URGENTISIMO)

Estas en el tema de Qué error ven aquí? (URGENTISIMO) en el foro de PHP en Foros del Web. Intento comparar dos variables en un if Una variable, es un GET de un formulario - Código PHP: $_GET [ username ]  Otra variable, es ...
  #1 (permalink)  
Antiguo 12/03/2007, 05:23
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Qué error ven aquí? (URGENTISIMO)

Intento comparar dos variables en un if

Una variable, es un GET de un formulario -
Código PHP:
$_GET[username
Otra variable, es el resultado de una consulta MySQL -
Código PHP:
$consulta mysql_query ("SELECT username FROM sfalls WHERE username = '$_GET[username]'");
$registro mysql_fecth_array($consulta);
$registro $consulta[0]; 
Ahora viene el if...
Código PHP:
if ($registro==$_GET[username])
{echo 
"Son iguales";}
else
{echo 
"No son iguales";} 
He comprobado con echo si ambas variables poseen el mismo valor, y efectivamente, así es:
Código PHP:
echo "$registro / $_GET[username]"
Ven algo mal?? Siempre me devuelve el else.

Por favor, si pueden ayudarme, solamente me quedan 2 horas para presentar el trabajo y poder presentarme a un examen final :(

Necesito vuestra ayuda, gracias!
  #2 (permalink)  
Antiguo 12/03/2007, 05:37
 
Fecha de Ingreso: junio-2002
Mensajes: 243
Antigüedad: 21 años, 10 meses
Puntos: 1
Re: Qué error ven aquí? (URGENTISIMO)

Creo q deberias poner $_GET["username"] en vez de $_GET[username]

y en ña consulta...

Código PHP:
mysql_query ("SELECT username FROM sfalls WHERE username = '".$_GET["username"]."'"); 
Salu2.
  #3 (permalink)  
Antiguo 12/03/2007, 06:16
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Nada, con comilla (') y doble (") me da error de sintaxis...

Creo que voy a catear... (44 minutos)
  #4 (permalink)  
Antiguo 12/03/2007, 06:18
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Qué error ven aquí? (URGENTISIMO)

¿Podrías poner el código entero? Es decir, ¿todo junto?

Me sorprende que los echos te den el mismo valor y que el if te diga que no son iguales.
  #5 (permalink)  
Antiguo 12/03/2007, 06:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Sí, a mi también me sorprende.

No llevo mucho tiempo programando en php, pero nunca me había pasado algo parecido :S

Aquí te dejo el código: (PD: Gracias por vuestra ayuda )

Código PHP:
<html>
<head>
</head>

<body>

<?php

include("datos_conexion.inc");
$conexion mysql_connect ($mysql_server$mysql_login$mysql_pass) or die ("Error al conectar a la base de datos.<br>Por 

favor, comuníquelo.<br><b>ERROR ID=101</b>"
);

mysql_select_db("sfalls")
or die(
"Error al seleccionar la base de datos.<br>Por favor, comuníquelo.<br><b>ERROR ID=102</b>");

$consulta mysql_query("SELECT username FROM usuarios WHERE username='$_GET[username]'");
$registro mysql_fetch_array($consulta);
$registro $registro[0];

echo 
"$registro / $_GET[username]<br><br>";

if (
$_GET['username']==$registro)
    {
    echo 
"BIEEEEN";
    } else {
    echo 
"MAAAAL";
    }

?> 



</body>

</html>
  #6 (permalink)  
Antiguo 12/03/2007, 06:34
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Qué error ven aquí? (URGENTISIMO)

Grothias, pues creo q esto si te funcionara, cambia $registro[0] por $registro['username']
Código PHP:
$consulta mysql_query("SELECT username FROM usuarios WHERE username='$_GET[username]'"); 
$registro mysql_fetch_array($consulta); 
$registro $registro['username']; 

echo 
"$registro / $_GET[username]<br><br>"

if (
$_GET['username']==$registro
    { 
    echo 
"BIEEEEN"
    } else { 
    echo 
"MAAAAL"
    } 
Salud2
__________________

  #7 (permalink)  
Antiguo 12/03/2007, 06:39
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Nada...

Sigue apareciendo lo mismo:

grothias / grothias

MAAAAL


Llevo intentándolo desde ayer noche, me he tirado hasta las 6 de la mañana investigando, y me parece increíble, que semejante tontería sin sentido, siga sin funcionar. Es que no le veo la lógica al if!!! Estoy desesperado... y creo que ya pocas esperanzas tengo... Solo quedan 19 minutos para marcharme a clase

Así tengo el código actualmente:

Código PHP:
<html>
<head>
</head>

<body>

<?php

include("datos_conexion.inc");
$conexion mysql_connect ($mysql_server$mysql_login$mysql_pass) or die ("Error al conectar a la base de datos.<br>Por 

favor, comuníquelo.<br><b>ERROR ID=101</b>"
);

mysql_select_db("sfalls")
or die(
"Error al seleccionar la base de datos.<br>Por favor, comuníquelo.<br><b>ERROR ID=102</b>");

$consulta mysql_query("SELECT username FROM usuarios WHERE username='$_GET[username]'");
$registro mysql_fetch_array($consulta);
$registro $registro['username'];

echo 
"$registro / $_GET[username]<br><br>";

if (
$_GET[username]==$registro)
    {
    echo 
"BIEEEEN";
    } else {
    echo 
"MAAAAL";
    }

?> 



</body>

</html>
Gracias por el interés.
  #8 (permalink)  
Antiguo 12/03/2007, 06:42
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Qué error ven aquí? (URGENTISIMO)

Yo lo pondría así:
Código PHP:
$consulta mysql_query("SELECT username FROM usuarios WHERE username='".$_GET['username']."'");
$registro mysql_fetch_array($consulta);
$var$registro['username'];

echo 
"$var / ".$_GET['username']."<br><br>";

if (
$_GET['username']==$var)
    {
    echo 
"BIEEEEN";
    } else {
    echo 
"MAAAAL";
    } 
  #9 (permalink)  
Antiguo 12/03/2007, 06:46
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Qué error ven aquí? (URGENTISIMO)

Bueno algo simple , si haces el select con la variable pasada por get y esta te de devuelve un registro, para q haces de nuevo una comparacion?? ya no seria necesario, no lo crees???
__________________

  #10 (permalink)  
Antiguo 12/03/2007, 06:46
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Tampoco... ahora me devuelve

Array / ivibaya

MAAAAL


Código PHP:
<?php

include("datos_conexion.inc");
$conexion mysql_connect ($mysql_server$mysql_login$mysql_pass) or die ("Error al conectar a la base de datos.<br>Por 

favor, comuníquelo.<br><b>ERROR ID=101</b>"
);

mysql_select_db("sfalls")
or die(
"Error al seleccionar la base de datos.<br>Por favor, comuníquelo.<br><b>ERROR ID=102</b>");

$consulta mysql_query("SELECT username FROM usuarios WHERE username='".$_GET['username']."'");
$registro mysql_fetch_array($consulta);
$var $registro['username'];

echo 
"$registro / ".$_GET[username]."<br><br>";

if (
$_GET['username']==$var)
    {
    echo 
"BIEEEEN";
    } else {
    echo 
"MAAAAL";
    }

?>
  #11 (permalink)  
Antiguo 12/03/2007, 06:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Cita:
Bueno algo simple , si haces el select con la variable pasada por get y esta te de devuelve un registro, para q haces de nuevo una comparacion?? ya no seria necesario, no lo crees???
Lo he hecho así para liarme menos.

Una costumbre que no debería suponer ningún problema con el if :S

EDITO: He probado a quitar la comparacion y sigue igual.
  #12 (permalink)  
Antiguo 12/03/2007, 06:50
Avatar de gerson  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 481
Antigüedad: 19 años, 2 meses
Puntos: 4
Re: Qué error ven aquí? (URGENTISIMO)

pues al parecer tienes mas de una coinsidencia en tu select por eso te voto "array"
__________________

  #13 (permalink)  
Antiguo 12/03/2007, 06:55
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

He puesto el select así por si acaso, pero tampoco:

Código PHP:
$consulta mysql_query("SELECT usuarios.username FROM usuarios WHERE usuarios.username='".$_GET['username']."'"); 
  #14 (permalink)  
Antiguo 12/03/2007, 06:56
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Qué error ven aquí? (URGENTISIMO)

Cambia esta línea:
Código PHP:
echo "$var / ".$_GET['username']."<br><br>"
  #15 (permalink)  
Antiguo 12/03/2007, 06:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Cambiada, pero lo único que he conseguido ha sido mostrar la variable $var (lo que ahora aparece:

ivibaya / ivibaya

MAAAAL
  #16 (permalink)  
Antiguo 12/03/2007, 06:59
 
Fecha de Ingreso: junio-2002
Mensajes: 243
Antigüedad: 21 años, 10 meses
Puntos: 1
Re: Qué error ven aquí? (URGENTISIMO)

Buenas en el prmer codigo q has puesto....

cuando pones esto....

Código PHP:
$consulta mysql_query ("SELECT username FROM sfalls WHERE username = '$_GET[username]'");
$registro mysql_fecth_array($consulta);
$registro $consulta[0]; 
deberías poner-lo así...

Código PHP:
$consulta mysql_query ("SELECT username FROM sfalls WHERE username = '".$_GET["username"]."'");
$registro = @mysql_fecth_array($consulta);
$registro $registro[0]; 
  #17 (permalink)  
Antiguo 12/03/2007, 07:02
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Qué error ven aquí? (URGENTISIMO)

Esto huele a configuración del PHP.

Prueba a utilizar la función var_dump para $var y para $_GET['username'] antes de la comparación a ver qué te da.
  #18 (permalink)  
Antiguo 12/03/2007, 07:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

jerkan, creo que he encontrado el fallo, aunque ahora toca buscar.

Haciendo el var_dump($var, $_GET[username]);, he conseguido averiguar lo siguiente:

string(8) "ivibaya "
string(7) "ivibaya"


Quiere decir que en uno de los nombres, aparece un espacio, y es exactamente en la variable $var...
  #19 (permalink)  
Antiguo 12/03/2007, 07:13
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Qué error ven aquí? (URGENTISIMO)

Pues ahí tienes la solución. En la base de datos tienes un espacio de más.

Me alegro haber sido de ayuda. Un saludo
  #20 (permalink)  
Antiguo 12/03/2007, 07:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

Cierto, en todos los registro de la BD aparece un espacio justo al final :S

Gracias, ahora lo veo todo más claro, investigaré un poco y me quedaré la primera hora de clase en casa, a ver que puedo conseguir.

Ahora os contaré.
  #21 (permalink)  
Antiguo 12/03/2007, 07:20
 
Fecha de Ingreso: marzo-2007
Mensajes: 129
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Qué error ven aquí? (URGENTISIMO)

MUCHISIMAS GRACIAS A TODOS, GRACIAS A VUESTRA PACIENCIA HE CONSEGUIDO ENCONTRAR EL PROBLEMA!!!

Era un fallo estúpido mío en el formulario.

¡Nunca lo habría conseguido sin ustedes!!!!!

GRACIAS, DE CORAZÓN!

Un saludo! Voy a terminar el trabajo aver si en una hora más me da time :D.

Gracias gracias gracias!^-^

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 17:08.