Foros del Web » Programando para Internet » PHP »

¿En que me estoy equivocando?

Estas en el tema de ¿En que me estoy equivocando? en el foro de PHP en Foros del Web. A ver, tengo este código para hacer identificación de usuario, y no se porque no me compara con la BD, el usuario si pero la ...
  #1 (permalink)  
Antiguo 02/01/2011, 16:25
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
¿En que me estoy equivocando?

A ver, tengo este código para hacer identificación de usuario, y no se porque no me compara con la BD, el usuario si pero la contraseña no, no se porque sera, la contraseña esta con MD5, esto es lo que tengo escrito.

Código PHP:

$elemento4
=$_POST['elemento1'];
$pmd5($elemento4);

mysql_select_db($bd_base$con);
$resultado2mysql_query("SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ",$con);
$row mysql_fetch_assoc($resultado2); 
$resultado22 $row['Contra']; 
la cosa es que resultado22 siempre es '' porque he probado a poner echo para verlo y siempre es asi... no se que mas cambiar porque lo mismo para el usuario me funciona
  #2 (permalink)  
Antiguo 02/01/2011, 18:12
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: ¿En que me estoy equivocando?

Hola.

Prueba imprimiendo tu consulta para ver si se esta generando lo que en realidad quieres.

Código PHP:
Ver original
  1. echo("SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ";
eso antes de tu query.

Suerte,
  #3 (permalink)  
Antiguo 03/01/2011, 05:06
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Si pongo echo a eso me sale Source id #5, probe a poner también a poner echo al row y ahi ya empieza a no mostrarseseme nada.

Debo cambiar lo del mysql_fetch_assoc por algun otro tipo?
  #4 (permalink)  
Antiguo 03/01/2011, 07:01
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: ¿En que me estoy equivocando?

Para saber si hace bien la consulta prueba a poner un die();
Código PHP:
$resultado2mysql_query("SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ",$con) or die(mysql_error()); 
A ver si así te dice si hay algun error en la consulta.

Y respondiendo a si debes cambiar el mysql_fetch_assoc por otro tipo, no hace falta. Hay gente que utiliza mysql_fetch_row, pero eso va a gustos. El problema no viene de ahí (creo).
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #5 (permalink)  
Antiguo 03/01/2011, 07:33
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

He probado con eso, pero no, el problema no viene de ahí... he probado con eso mostrarlo todo y sigue saliéndome en resultado2 (sourece id #5) y con el resto no me sale nada...

Debería cambiar algo del php.ini? aunque no creo porque el resto de comprobaciones me salen bien...

Si queréis os dejo todo el código al que afecta esta parte...
  #6 (permalink)  
Antiguo 03/01/2011, 07:44
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: ¿En que me estoy equivocando?

Hola,
mysql_fetch_assoc y mysql_fetch_array son iguales practicamente, ese no es el problema.

yo te recomendaria verificar las variables q estas pasando, quizas en algun punto algo se te este modificando.

porque no haces algo como esto?


Código PHP:


$elemento4
="AQUI COLOCA UN VALOR";
$pmd5($elemento4);

mysql_select_db($bd_base$con);

$resultado2mysql_query("SELECT Contra FROM LA_TABLA_ESCRITA WHERE (Contra='$p') ",$con);

$row mysql_fetch_assoc($resultado2); 
$resultado22 $row['Contra'];  


print_r($resultado22); 
cambia los textos: "AQUI COLOCA UN VALOR" por el valor q este en tu base de datos y el nombre de la tabla quitale la variable, colocalo textual...

Asegurate tambien que en la tabla de la base de datos, en el campo contra, tengas guardada la contraseña ENCRIPTADA...

quizas con eso resuelvas. Pega el grito si no t sirve mi respuesta...
  #7 (permalink)  
Antiguo 03/01/2011, 08:24
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Sigo con el mismo problema... he probado a quitar las comillas de los where y si que me hace la consulpa pero me aparece la pagina en blanco y solo esto...

Unknown column '04b7173089e68fbdb87fd15f16ee2565' in 'where clause'

lo d las primras comillas he comparadeo y si es la contraseña codificada, el problema es que si meto las comillas en el where estoy con las de antes
  #8 (permalink)  
Antiguo 03/01/2011, 08:26
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: ¿En que me estoy equivocando?

Cita:
Iniciado por Oracles Ver Mensaje
He probado con eso, pero no, el problema no viene de ahí... he probado con eso mostrarlo todo y sigue saliéndome en resultado2 (sourece id #5) y con el resto no me sale nada...

Debería cambiar algo del php.ini? aunque no creo porque el resto de comprobaciones me salen bien...

Si queréis os dejo todo el código al que afecta esta parte...
Manda un echo de la consulta no del query
Código PHP:
Ver original
  1. echo("SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ";
eso claro que te va das un resource
  #9 (permalink)  
Antiguo 03/01/2011, 08:30
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Luego me he dado cuenta que en el mysql_error() puse ;; y al quitar una esto es lo que me sale... cuando esta todo bien, he añadido al where que la contraseña corresponda a ese nick y m sale esto...

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (Nick ='Oracles' AND Contra= '04b7173089e68fbdb87fd15f16ee2565')' at line 1

Y si la pongo erronea aposta me sale el mismo error pero con la otra contraseña codificada

Última edición por Oracles; 03/01/2011 a las 08:41
  #10 (permalink)  
Antiguo 03/01/2011, 10:43
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: ¿En que me estoy equivocando?

Antes ponías:
Código PHP:
Ver original
  1. $resultado2= mysql_query("SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ",$con);

¿Está en algún sitio definida la variable "$db_tabla"?
  #11 (permalink)  
Antiguo 03/01/2011, 10:51
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: ¿En que me estoy equivocando?

Saludos

Haz lo que te indica lair, Solo que el tiene un error de sintaxys y ejecútalo en el phpmyadmin

Código PHP:
Ver original
  1. $elemento4=$_POST['elemento1'];
  2. $p= md5($elemento4);
  3. mysql_select_db($bd_base, $con);
  4. $consulta="SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ";
  5. echo $consulta;
  6. $resultado2= mysql_query($consulta,$con) or die (mysql_error());
  7. $row = mysql_fetch_assoc($resultado2);
  8. $resultado22 = $row['Contra'];
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #12 (permalink)  
Antiguo 03/01/2011, 10:51
 
Fecha de Ingreso: enero-2005
Ubicación: Salta - Argentina
Mensajes: 322
Antigüedad: 19 años, 3 meses
Puntos: 7
Respuesta: ¿En que me estoy equivocando?

Como se llama la tabla de tu base de datos y el campo donde tienes guardada la contraseña? me parece que el error lo tienes por alli...
  #13 (permalink)  
Antiguo 03/01/2011, 14:50
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

No se si el error viene de ahi... el campo donde esta guardado es contra, antes era Pass pero lo cambie por si pass era una palabra reservada, y la tabla es Usuarios, y si que esta definida porque gasto el mismo nombre para la consulta del nombre de usuario y funciona... hice copiar pegar y cambie los nombres a los que correspondían... los nombres los he revisado mil veces... estan correctos...

He probado lo de...
Código PHP:


$consulta
="SELECT Contra FROM $bd_tabla WHERE (Contra='$p') ";

echo 
$consulta;

$resultado2mysql_query($consulta,$con) or die (mysql_error());

$row mysql_fetch_assoc($resultado2);

$resultado22 $row['Contra']; 
y sigo con las mismas... en la contraseña me sale lo mismo de siempre, nada...
  #14 (permalink)  
Antiguo 03/01/2011, 14:55
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: ¿En que me estoy equivocando?

pregunta sencilla, imprimiste tu consulta en el navegador y la pegaste en tu cliente mysql y te dio resultados?? ya que si no te dio error el mysql_error() y no te da resultados sencillamente es porque no esta encontrando coincidencias en la busqueda, has un echo de la variable donde tienes tu consulta y pegalo en el cliente a ver, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #15 (permalink)  
Antiguo 03/01/2011, 15:32
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Lo hago en el navegador que es lo que me interesa, y quiero eso que coincida para autentificarlos y si es igual que lo acepte, es así como lo tengo con lo de usuario y me funciona.
  #16 (permalink)  
Antiguo 04/01/2011, 03:29
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: ¿En que me estoy equivocando?

Sé que puede parecer algo tonto, pero estás seguro que la columna se llama 'Contra'? (con mayúsculas inclusive)

Prueba a hacer manualmente una consulta que sabes que te va a retornar algo:

Código PHP:
$consulta="SELECT * FROM tu_tabla WHERE id=''lo_que_sea";

$resultado2mysql_query($consulta,$con) or die (mysql_error()); 

$row mysql_fetch_assoc($resultado2);

print_r($row); 
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #17 (permalink)  
Antiguo 04/01/2011, 04:06
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Con ese ultimo código por el print_r no me muestra nada pero nada de nada, solo la pantalla en blanco... Y si pongo un echo o print a secas no me sale nada... como si no hubiese nada... me sale en blanco...

Y si estoy mas que seguro que es Contra así escrito... aquí lo podéis mirar...

Código:
http://img152.imageshack.us/i/mirad.png/
Yo ya no se que mas hacer, lo he releído todo mil veces, y esta todo como debería... no se porque no me hace la consulta ya me estoy volviendo loco...
  #18 (permalink)  
Antiguo 04/01/2011, 04:33
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años
Puntos: 26
Respuesta: ¿En que me estoy equivocando?

Solo para asegurarme que no sea un fallo tonto y nada más... tienes hecha la conexión (es decir el $con=mysql_connect("*****", "*****","*****");?

el print_r no imprime nada? ni siquiera te dice que el array esta vacío?

Si directamente haces una consulta que sabes que te tendria que devolver algo y no te devuelve nada, y además el mysql_error() no te devuelve error a ver si es por la conexion, si no no se me ocurre nada más.

Mira el link a ver si te ayuda a comprobar la conexion: http://www.webestilo.com/php/php07b.phtml
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #19 (permalink)  
Antiguo 04/01/2011, 04:56
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Se que la conexión no es porque gasto esos mismos datos para rescatar el Nick que como ves esta en la misma tabla y están las 2 consultas en la misma pagina...

Y exacto no me me sale absolutamente nada que es lo que me extraña...
  #20 (permalink)  
Antiguo 04/01/2011, 09:36
 
Fecha de Ingreso: septiembre-2008
Ubicación: Valencia
Mensajes: 160
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: ¿En que me estoy equivocando?

Tranquilos ya arreglado... probe a reiniciar todas las tablas y vi que desde no me dejaba luego añadir usuarios... mire el otro config del 2 donde tenia que mirar y en ese no habia cambiado el Pass por Contra, lo cambie y ya me añade campos, luego lo que hice fue duplicarlo todo y ya esta. No se si es porque cuando lo guarde era pass o que pero antes con pass tampoco me iba pero solucionado, gracias por la ayuda.

Etiquetas: Ninguno
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 15:29.