Foros del Web » Programando para Internet » PHP »

Cambio contraseña php

Estas en el tema de Cambio contraseña php en el foro de PHP en Foros del Web. Hola , estoy intentando hacer un formulario de cambio de contraseña. En mi base de datos tengo un campo que se llama "user" y la ...
  #1 (permalink)  
Antiguo 22/04/2009, 16:45
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Cambio contraseña php

Hola , estoy intentando hacer un formulario de cambio de contraseña.

En mi base de datos tengo un campo que se llama "user" y la tabla se llama "pass"

Lo que quiero hacer es sencillo, un formulario con 1 campo y un botón, en el campo nos pedirá poner la contraseña nueva, se le da al botón y se actualiza en la base de datos.

A simple vista parece sencillo, puesto que es un solo campo, y solo una tabla, el código que tengo es este :

Código PHP:
<?

session_start
();

require(
"login.php");

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Modificación coche</title>

</head>



<body>

          

        <?         

        

include("bd.php");



$bd mysql_connect($dominio$usuario$password);

    if (!
$bd

    {

          echo 
"Error, no puede encontrarse a la base de datos";

        exit;

    }



mysql_select_db($base);

                                    

        
$contrasena $_POST[contrasena]; 
        
        

        
$msg "";

        
$ins_doc "update pass set user = '".$contrasena."' where codigo = '".$_GET["id"]."'";

        
$res_ins_doc mysql_query($ins_doc);        

        
$msg .= "..contraseña modificada en la BD.<BR>";

    

echo 
$msg;



echo 
"<a href='menu.php'>Menu</a>";



    

?>



        



</body>

</html>

Alguien sabe que me puede estar fallando ? un abrazo
  #2 (permalink)  
Antiguo 22/04/2009, 16:47
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Respuesta: Cambio contraseña php

$ins_doc = "update pass set user = '".$contrasena."' where codigo = '".$_GET["id"]."'";..

me podrias decir los nombres de los campos de tu tabla por favor?
  #3 (permalink)  
Antiguo 22/04/2009, 16:49
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Cita:
Iniciado por f0n Ver Mensaje
$ins_doc = "update pass set user = '".$contrasena."' where codigo = '".$_GET["id"]."'";..

me podrias decir los nombres de los campos de tu tabla por favor?
Que rapidez :P

mi base de datos se llama : mydb

luego tenemos la tabla : user

y por ultimo dentro de user tenemos : codigo login y pass, y el que quiero cambiar es pass
  #4 (permalink)  
Antiguo 22/04/2009, 16:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Cambio contraseña php

Pon la siguiente linea asi:

$res_ins_doc = mysql_query($ins_doc) or die(mysql_error());
  #5 (permalink)  
Antiguo 22/04/2009, 16:53
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Cita:
Iniciado por Ronruby Ver Mensaje
Pon la siguiente linea asi:

$res_ins_doc = mysql_query($ins_doc) or die(mysql_error());


Table 'mydb.pass' doesn't exist
  #6 (permalink)  
Antiguo 22/04/2009, 16:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Cambio contraseña php

El mensaje de error es claro, la tabla "pass" no existe, verifica si realmente así se llama la tabla.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/04/2009, 16:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 105
Antigüedad: 15 años
Puntos: 0
Respuesta: Cambio contraseña php

//obtener los datos vienen de un form en modo ''post''
$npass=$_POST['nombredelcamponuevopassword'];
//nose como lo controlaras tu pero yo cuando un usuarios se logea creo una cookie con el //nombre del usuario dentro tambien puedes enviarlo por post
$usuario=$_COOKIE['user_name'];
//sql
$sql = "UPDATE user SET pass='$npass' WHERE login='$usuario'";

if(mysql_query($sql)){
echo "Password cambiado";

}else{
echo "Datos introducidos erroneamente";

}
//espero que te ayude
  #8 (permalink)  
Antiguo 22/04/2009, 17:01
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Respuesta: Cambio contraseña php

exacto la sintaxis de UPDATE es

UPDATE tabla SET campo = 'valor'
  #9 (permalink)  
Antiguo 22/04/2009, 17:07
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Algo hago mal, me dice que si se cambia, pero no me cambia nada :P
  #10 (permalink)  
Antiguo 22/04/2009, 17:18
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Cambio contraseña php

Muestra el codigo como lo tienes ahora.

EDIT:
Ah, tampoco tienes que usar comillas simples cuando es un valor entero:

SELECT * FROM tabla WHERE id = '1' //mal
SELECT * FROM tabla WHERE id = 1 //bien
  #11 (permalink)  
Antiguo 22/04/2009, 17:21
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Cita:
Iniciado por Ronruby Ver Mensaje
Muestra el codigo como lo tienes ahora.
Código PHP:
<? 

session_start
(); 

require(
"login.php"); 

?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 

<title>Modificación coche</title> 

</head> 



<body> 

           

        <?          

         

include("bd.php"); 



$bd mysql_connect($dominio$usuario$password); 

    if (!
$bd)  

    { 

          echo 
"Error, no puede encontrarse a la base de datos"

        exit; 

    } 



mysql_select_db($base); 

                                     

    
         
         
//obtener los datos vienen de un form en modo ''post''
$npass=$_POST['pass'];
//nose como lo controlaras tu pero yo cuando un usuarios se logea creo una cookie con el //nombre del usuario dentro tambien puedes enviarlo por post
$usuario=$_COOKIE['user_name'];
//sql
$sql "UPDATE user SET pass='$npass' WHERE login='$usuario'";

if(
mysql_query($sql)){
echo 
"Password cambiado";

}else{
echo 
"Datos introducidos erroneamente";

}
//espero que te ayude

       
     

echo $msg



echo 
"<a href='menu.php'>Menu</a>"



     

?> 

<? 

$res_ins_doc 
mysql_query($ins_doc) or die(mysql_error());  

?> 




</body> 

</html>
  #12 (permalink)  
Antiguo 22/04/2009, 17:25
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Cambio contraseña php

Cita:
$sql = "UPDATE user SET pass='$npass' WHERE login='$usuario'";
Segun tu consulta, tu tabla se llama user, tu campo contraseña se llama pass,y editas el usuario cuyo login sea igual al nombre de usuario guardado en la cookie?

Es esto correcto? Si es asi, prueba con el or die(mysql_error()) a ver si la consulta se ejecuta satisfactoriamente. Si lo hace, trata haciendo un var_dump() de tus variables ANTES de usarlas en la consulta para ver que valor traen.
  #13 (permalink)  
Antiguo 22/04/2009, 17:31
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Cita:
Iniciado por Ronruby Ver Mensaje
Segun tu consulta, tu tabla se llama user, tu campo contraseña se llama pass,y editas el usuario cuyo login sea igual al nombre de usuario guardado en la cookie?

Es esto correcto? Si es asi, prueba con el or die(mysql_error()) a ver si la consulta se ejecuta satisfactoriamente. Si lo hace, trata haciendo un var_dump() de tus variables ANTES de usarlas en la consulta para ver que valor traen.
mi tabla se llama user, el campo contraseña : pass , hasta ahi todo bien, lo de la cookie, no se muy bien lo que e hecho.

me esta dando problemas esto, y no se porque, no deberia ser tan dificil, puesto que solo hay una base de datos, y solo una contraseña.

Es hacer un formulario, que cambie los datos de una tabla de la bd, tu tienes algo similar ya hecho ?
  #14 (permalink)  
Antiguo 22/04/2009, 17:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Cambio contraseña php

Cita:
Iniciado por esunestudio Ver Mensaje
mi tabla se llama user, el campo contraseña : pass , hasta ahi todo bien, lo de la cookie, no se muy bien lo que e hecho.

me esta dando problemas esto, y no se porque, no deberia ser tan dificil, puesto que solo hay una base de datos, y solo una contraseña.

Es hacer un formulario, que cambie los datos de una tabla de la bd, tu tienes algo similar ya hecho ?
Trata haciendo un var_dump() de tu COOKIE a ver que valor retorna. El problema puede estar ahi.

Aun si te paso algun codigo que haya creado antes, estariamos en las mismas porque tendrias que ajustarlo a la estructura de tu aplicacion, y a la larga .. es mas trabajo.

He aqui un tutorial excelente sobre como crear un script de login:
http://www.roscripts.com/PHP_login_script-143.html
Esta en ingles.
  #15 (permalink)  
Antiguo 22/04/2009, 17:44
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Cita:
Iniciado por Ronruby Ver Mensaje
Trata haciendo un var_dump() de tu COOKIE a ver que valor retorna. El problema puede estar ahi.

Aun si te paso algun codigo que haya creado antes, estariamos en las mismas porque tendrias que ajustarlo a la estructura de tu aplicacion, y a la larga .. es mas trabajo.

He aqui un tutorial excelente sobre como crear un script de login:
http://www.roscripts.com/PHP_login_script-143.html
Esta en ingles.

Realmente, esto va en una pagina independiente, no tiene nada que ver con el resto del código, así que si tienes algo ya hecho me puede servir, así podría estudiarlo
  #16 (permalink)  
Antiguo 23/04/2009, 02:29
 
Fecha de Ingreso: marzo-2009
Mensajes: 105
Antigüedad: 15 años
Puntos: 0
Respuesta: Cambio contraseña php

haz un echo de la variable $usuario,haber si alli esta el problema.

Puedes postear el form de cambiar pass?


*te dejo un ejemplo de login.


<?php
//necesarip para poder trabajar con una base de datos
include ("datos_bd.php");

//recibimos variables
$usuario=$_POST['usuario'];
$pass=$_POST['password'];

//mramos si esta en blanco
if($usuario=="" or $pass==""){

echo "Algunc ampo en blanco";

}else{
//sino miramos si esta registrado
$sql=mysql_query("SELECT usuario,password FROM usuarios WHERE usuario = '$usuario'");

//si esta el usuario en la bd obtenemos los datos y los metemos en un array
$datos=mysql_fetch_array($sql);

//comprobaremos que el password es correcto
if($usuario==$datos['usuario'] and $pass==$datos['password']) {

//esta registrado creamos las cookies de sesion
setcookie("usuario",$usuario,time()+3600);
setcookie("logeado","si",time()+3600);


}else{

//sino esta registrado
echo "No esta registrado";
}


}








?>
  #17 (permalink)  
Antiguo 23/04/2009, 05:06
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Cambio contraseña php

Actualizo como lo tengo hasta ahora :

El formulario :

Código PHP:
<HTML>
<HEAD>
<TITLE>Actualizar1.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>
<?
//Conexion con la base
mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar 
mysql_select_db("mydb"); 

echo 
'<FORM METHOD="POST" ACTION="actualizar2.php">Nombre<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select user From pass Order By nombre";
$result=mysql_query($sSQL);

echo 
'<select name="nombre">';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option>'.$row["nombre"];}
?>
</select>
<br>
contraseña<br>
<INPUT TYPE="TEXT" NAME="contraseña"><br>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>

</BODY>
</HTML>

y el otro archivo :

Código PHP:
<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar 
mysql_select_db("mydb"); 

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update user Set pass='$pass' Where nombre='$nombre'";
mysql_query($sSQL);
?>

<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>

</BODY>
</HTML>

Y sigue sin funcionarme, que estres
  #18 (permalink)  
Antiguo 23/04/2009, 09:37
 
Fecha de Ingreso: marzo-2009
Mensajes: 105
Antigüedad: 15 años
Puntos: 0
Respuesta: Cambio contraseña php

prueba esto :


formulario.php :

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>
<form method="post" action="cambiar_pass-php">
<br>usuario<br>
<INPUT TYPE="TEXT" NAME="usuario">
<br>contraseña<br>
<INPUT TYPE="TEXT" NAME="contraseña"><br>
<INPUT TYPE="SUBMIT" value="Cambiar Pass">
</FORM>
</div>
</BODY>
</HTML>

cambiar_pass.php :



<?php
//Conexion con la base
mysql_connect("localhost","root","");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("mydb");

//obtenemos el nombre y el password el usuario que hemos enviado pro post

$nombre=$_POST['usuario'];
$pass=$_POST['contraseña'];

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Update user Set pass='$pass' Where nombre='$nombre'";
if(mysql_query($sSQL)){

//pass cambiado

}else{

//error
}




?>

PD: Te recomiendo que empiezes a mirar como funcionan las sesiones o las cookies,ya que en este mini-facil-script el usuario tiene que meter su nombre de usuario,ademas si mete otro nombre de usuario que no es el suyo tambien se cambiara el pass.
Como se logean los usuarios??

Última edición por bertoR; 23/04/2009 a las 09:40 Razón: :P
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 14:17.