Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/07/2005, 08:32
Avatar de aristotelisco
aristotelisco
 
Fecha de Ingreso: marzo-2005
Ubicación: Oxnard CA USA
Mensajes: 151
Antigüedad: 19 años, 1 mes
Puntos: 0
Código

Muy bien Tomás, aquí está el código, no lo revisé y no estoy seguro de que funcione bien, pero creo que la idea queda clara y cualquier modificación requerida se la podrás hacer con facilidad.

Datos.php

Código:
<?php 
/*
	**JAR**
	Con PHP, Obtiene los valores del usuario desde la Base de Datos y los muestra en una tabla
	HTML con la opcion de sobreescribir el e-mail.
	
	Con JavaScript, Valida que los campos Password contengan un valor y que los campos de 
	NuevoPassword 1 y 2 sean iguales.
*/
session_start(); 
require_once('conexion.php'); 
if(isset($_SESSION['codigoUsuario']) && intval($_SESSION['codigoUsuario'])>0) 
{
	$sql = "Select * From usuarios Where codigo = ".intval($_SESSION["codigoUsuario"])." ";
	$result = mysql_query($sql) or die(mysql_error()); 	
	$row = mysql_fetch_array($result,MYSQL_ASSOC);
}
?>

<html>
<head>
<title>Page</title>
<script language="javascript" type="text/javascript">
validarForm()
{
var error;
error = 0; // No hay error
	if ((document.all.Password.value == "") || (document.all.NuevoPassword1.value == "") ||(document.all.NuevoPassword2.value == ""))
		{
		error = 1; // Hay error y no mandamos el form
		alert ("Debes escribir un valor en los passwords"); 
		}
		
	if ( document.all.NuevoPassword1.value != document.all.NuevoPassword2.value)	
		{
			error = 1; // Error porque los nuevos passwords no son igual
			alert ("Los valores del nuevo password deben de ser iguales"); 
		}
	if (error = 0)	
		{
			document.all.form1.submit();
		}
}
</script>

</head>
<body>
<form action="procesaformulario.php" method="post" name="form1" id="form1">
<table width="80%"  border="1" align="center">
  <tr>
    <td>Nombre</td>
    <td><?php echo $row["nombre"]." ".$row["apellido"]?></td>
  </tr>
  
  <tr>
    <td>E-Mail</td>
    <td><input name="email" type="text" value="<?php echo $row["email"]?>"></td>
  </tr>
  <tr>
    <td>Password</td>
    <td><input name="Password" type="password" value=""></td>
  </tr>
  <tr>
    <td>Nuevo Password</td>
    <td><input name="NuevoPassword1" type="password" value=""></td>
  </tr>
  <tr>
    <td>Repetir Nuevo Password</td>
    <td><input name="NuevoPassword2" type="password" value=""></td>
  </tr>
  <tr>
    <td colspan="2"><div align="center">
      <input name="btnSubmit" type="button" value="Aceptar" onClick="validarForm();">
    </div></td>
  </tr>
</table>
</form>
</body>

</html>

Y es procesado por

ProcesaFormulario.php

Código:
<?php 
session_start(); 
require_once('conexion.php'); 
if(isset($_SESSION['codigoUsuario']) && intval($_SESSION['codigoUsuario'])>0) 
{
	$pass = md5($_POST["Password"]); // Almaceno el MD5 de Password porque así está almacenado en la tabla
	$npass = md5($_POST["NuevoPassword1"]); // Solo trabajamos con NuevoPassword1. NuevoPassword2 fué solo para verificar que el usuario no cometía errores tipográficos.
	
	// Verificamos que el usuario sea quien dice ser.
	$sql = "Select password From usuarios Where codigo = ".intval($_SESSION['codigoUsuario'])." ";
	$res = mysql_query($sql);
	$row = mysql_fetch_array($res,MYSQL_ASSOC);
	
	if ($row["password"] == $pass) // Verificamos que los passwords coincidan
	{
		$sql = "Update usuarios Set mail = '".$_POST["email"]."', password = '".$npass."' Where codigo = ".intval($_SESSION["codigoUsuario"])."  and password = '".$pass."' ";
		$result = mysql_query($sql) or die(mysql_error()); 	
		if (mysql_affected_rows() == 1)
		{
			echo "Datos Actualizados";
		}
		else
		{
			echo "Ocurrió algún problema";
		}
	}	
	else
	{
	echo "El Password no coincide.";
	}

}
?>
Ojalá sirva de algo.
__________________
Atte:
Alex Reyes

www.alexreyes.net