Foros del Web » Programando para Internet » PHP »

Ayuda con PHP y MySQL

Estas en el tema de Ayuda con PHP y MySQL en el foro de PHP en Foros del Web. Hola, nose si esta bien que pida una ayuda sobre esto aki.. va.. mas que ayuda es una peticion ya que no entiendo mucho en ...
  #1 (permalink)  
Antiguo 25/03/2007, 13:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años
Puntos: 0
Ayuda con PHP y MySQL

Hola, nose si esta bien que pida una ayuda sobre esto aki.. va.. mas que ayuda es una peticion ya que no entiendo mucho en el tema

Lo que necesitaria seria un php o dos nose cuantos tendria que usar.. para que al buscar un usuario me devuelva la contraseña

la base de datos es esta

Código:
create table cuentas ( 
login VARCHAR(50), 
passwd VARCHAR(32) 
);
Y si es posible, hacerlo seguro..

Eso nada mas.. Gracias

Lee este tema==> IMPORTANTE... La ortografía.

Última edición por BrujoNic; 25/03/2007 a las 16:55
  #2 (permalink)  
Antiguo 25/03/2007, 15:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años
Puntos: 2
Re: Ayuda con PHP y MySQL

Hombre, lo mejor seria dos archivos, uno con los datos de la conexion, y otro que aga la consulta, supongo que el de datos de conexion lo tendras hecho por eso no lo voy a poner, en caso de que no sepas como ponerlo dimelo y yo te ayudo, yo creo, que tu lo que quieres, es hacer un formulario, y tu pones el nombre de un usuario, y quieres que te devuelva la contraseña, pues en este caso tendremos dos archivos, Formulario.php y Contraseña.php

Formulario.php :

Código:
<html>
<head>
<title>Formulario</title>
</head>
<body>
<form action="Contraseña.php" method="POST">
<input type="text" name="Nombre" />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
y este el codigo de Contraseña.php:

Código:
<?php
$Consulta = "SELECT passwd FROM cuentas WHERE login = '$_POST[Nombre]'";
$Seleccionar = mysql_query($Consulta, $Variable-de-conexion);
$Mostrar = mysql_fetch_array($Seleccionar);
echo $Mostrar['passwd']; 
/* No te olvides de poner tu variable de conexion, y si no lo has puesto, un include a tu archivo de configuracion de conexion, si no entiendes lo que es esto, dimelo y te lo explico */
?>
Esto funcionaria siempre que no alla ningun usuario con un mismo nombre, y recuerda el comentario que te puse en el archivo Contraseña.php, ahh por cierto no he comprobado si funciona, pero creo que todo esta correcto.
Si tienes problemas avisa.

Un saludo
  #3 (permalink)  
Antiguo 25/03/2007, 16:56
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Ayuda con PHP y MySQL

Movido desde BD a PHP.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 25/03/2007, 17:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con PHP y MySQL

Muchas gracias..

Una ultima cosita te pido, en caso de que el usuario q se busca no este tendria que dar algun error.. o decir "No se encontro password para el usuario tanto: "

si no es mucho pedir me gustaria que me lo facilites :)

y tambien si no es mucho pedir.. que en el input no se puedan poner caracteres tales como ' o * ... Eso nada mas...

Muchisimas gracias :)
  #5 (permalink)  
Antiguo 26/03/2007, 03:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 33
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda con PHP y MySQL

Para mostrar mensaje si no existe el usuario es sencillo; en el código que ya te escribió Francisco01, después de $Mostrar = mysql_fetch_array($Seleccionar); tienes que añadir lo siguiente:

Código PHP:
if (count($Mostrar) > 0) {
echo 
$Mostrar['passwd'];
} else {
echo 
"No existe el usuario introducido";

Lo que hace ese pequeño código es contar el array devuelto de la base de datos; si es mayor que 0, es que tiene resultados, es decir, que el usuario se encontró y se ha almacenado la password en el array. Por el contrario, si no se obtuvieron resultados, el count del array valdrá 0 o false, con lo que mostrará el mensaje en pantalla.

Para controlar el tema de los caracteres especiales lo puedes hacer con javascript en tiempo real, o bien, en PHP ya que andas con él, controlando la cadena antes de hacer la consulta. Por ejemplo:

Código PHP:
function comprobarCaracteres() {
$resultado true;
for(
$i 0$i strlen($_POST['nombre']); $i++) {
if ((
$_POST['nombre'][$i] == "'") || ($_POST['nombre'][$i] == "*")) {
$resultado false;
}
}
return 
$resultado;

En la parte del if, añade tantas condiciones como caracteres quieras controlar. Luego, lo único que necesitas es llamar a la función antes de hacer las líneas de Francisco01:

Código PHP:
if (comprobarCaracteres()) {
# Líneas de Francisco01 para hacer la consulta
} else {
echo 
"Se introdujeron caracteres especiales en el nombre, pruebe de nuevo";

Espero haberte servido de ayuda.
  #6 (permalink)  
Antiguo 26/03/2007, 07:41
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Ayuda con PHP y MySQL

Aper, una ultima recomendacion al respecto, deberias guardar las contraseñas de los usuarios encriptadas, hay diversas funciones que te provee php para hacerlo, te sugiero que leas un poco del tema, Saludos y Suerte
__________________
->Aprender es un proceso que incluye el error..
  #7 (permalink)  
Antiguo 26/03/2007, 07:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con PHP y MySQL

Muchas Gracias por su ayuda... les agradezco mucho.
  #8 (permalink)  
Antiguo 26/03/2007, 08:49
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con PHP y MySQL

Hola, ahora tengo otro problemita.. me sale este error ponga lo que ponga a buscar:

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
En la linea 52 y en esa linea tengo esto:

Código:
$Seleccionar = mysql_query($Consulta, $Coneccion);
La variable de coneccion es:


Código:
$Coneccion = mysql_connect("localhost", "usuario", "password");
Les agradeceria que me dieran una ultima ayuda.. Gracias por todo
  #9 (permalink)  
Antiguo 26/03/2007, 09:31
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con PHP y MySQL

Solucionado el problema ese, busque por ahi y encontre que antes de mostrar la consulta tenia que poner un @

Pero ahora tengo otro problemita

nose si en algun lugar del php tendria que poner el nombre de la base de datos o no.. por que yo nose donde ponerla... Otra cosa las consultas son de usuarios de mail osea lo que se buscaria es [email protected]

en la base de datos esta, pero cuando la busco exactamente igual me dice que el usuario no existe, aqui les pongo todo el codigo aver si es que hay algun error, mil disculpas.

Código:
<?php
function comprobarCaracteres() { 
$resultado = true; 
for($i = 0; $i < strlen($_POST['nombre']); $i++) { 
if (($_POST['nombre'][$i] == "'") || ($_POST['nombre'][$i] == "*")) { 
$resultado = false; 
} 
} 
return $resultado; 
}  

if (comprobarCaracteres()) { 
$Coneccion = mysql_connect("localhost", "admin", "password") or die ("no se ha podido conectar a la base de datos");
$Consulta = "SELECT passwd FROM cuentas WHERE login = '$_POST[Nombre]'";
$Seleccionar = mysql_query($Consulta, $Coneccion);
$Mostrar = @mysql_fetch_array($Seleccionar);
if (count($Mostrar) > 0) { 
echo $Mostrar['passwd']; 
} else { 
echo "No existe el mail introducido"; 
}
} else { 
echo "Se introdujeron caracteres no autorizados en el mail, pruebe de nuevo, Gracias..."; 
} 
?>
Ah, no me funciono tambien lo de los caracteres ' y *
  #10 (permalink)  
Antiguo 26/03/2007, 14:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 33
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Ayuda con PHP y MySQL

Bueno, así es la forma correcta del script completo. No te acostumbres a usar @ delante de las funciones; eso sirve para no escupir los errores en pantalla, y a veces, te puede estar fallando algo, y no saber qué, puesto que no lo muestra. Te faltaba seleccionar la base de datos; ponle el nombre correcto en la línea oportuna:

Código PHP:
<?php

    
function comprobarCaracteres() {
        
$resultado true;
        for(
$i 0$i strlen($_POST['nombre']); $i++) {
            if ((
$_POST['nombre'][$i] == "'") || ($_POST['nombre'][$i] == "*")) {
                
$resultado false;
            }
        }
        return 
$resultado;
    }

    if (
comprobarCaracteres()) {
        
$conexion mysql_connect("localhost""admin""password") or die ("no se ha podido conectar a la base de datos");
        
mysql_select_db("basedatos"$conexion);
        
$consulta "SELECT passwd FROM cuentas WHERE login = '$_POST[Nombre]'";
        
$resultado mysql_query($consulta$conexion);
        
$fila mysql_fetch_array($resultado);
        if (
count($fila) > 0) {
            echo 
$fila['passwd'];
        } else {
            echo 
"No existe el mail introducido";
        }
    } else {
        echo 
"Se introdujeron caracteres no autorizados en el mail, pruebe de nuevo, Gracias...";
    }

?>
  #11 (permalink)  
Antiguo 27/03/2007, 07:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 103
Antigüedad: 17 años
Puntos: 0
Re: Ayuda con PHP y MySQL

Muchas gracias por todo, la verdad que me anda muy bien.. solo tengo dos problemitas :P

no funciona la funcion para cuando pones ' o * y tampoco funciona cuando el mail que introduce no se encuentra.. tiene que dar un texto diciendo que no se encontro, bueno ami no me aparece nada :S

de todas formas Gracias por todo
  #12 (permalink)  
Antiguo 27/03/2007, 08:20
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Ayuda con PHP y MySQL

La funcion no funciona para cuando pones ' o * justamente por que la funcion evaula eso, si quieres evitarlo modifica la condicion
Código PHP:
if (($_POST['nombre'][$i] == "'") || ($_POST['nombre'][$i] == "*")) 
//Prueba reemplazando esto:
Código PHP:
$resultado mysql_query($consulta$conexion); 
        
$fila mysql_fetch_array($resultado); 
        if (
count($fila) > 0) { 
            echo 
$fila['passwd']; 
        } else { 
            echo 
"No existe el mail introducido"
        } 
//reemplazalo por esto
$resultado mysql_query($consulta$conexion);
$c=mysql_affected_rows(); 
$fila=mysql_fetch_array($resultado); 
        if (
$c) { 
            echo 
$fila['passwd']; 
        } else { 
            echo 
"No existe el mail introducido"
        } 
Saludos.
__________________
->Aprender es un proceso que incluye el error..
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 19:31.