Mira estos son mis archivos:
Editar.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Proevomex Pro</title>
<meta name="description" content="free website template" />
<meta name="keywords" content="enter your keywords here" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/image_slide.js"></script>
</head>
<body>
<?
include ("header.php");
?>
<div id="main">
<div id="site_content">
<?php
include('include/config.php');
session_start();
if(!isset($_SESSION["usuario"])){
header('location: index.php');
exit();
}
$result = mysql_query('SELECT * FROM users WHERE nick = "' . $_SESSION['usuario'] . '"')
or die(mysql_error());
$usuario = mysql_fetch_array($result);
mysql_free_result($result);
?>
<h1>Editando Mi Perfil</h1>
<p>Mostramos los campos de formulario para que editen las cosas.</p>
<p>Fíjate especialmente en que nick y otros ya están rellenados mientras que la
contraseña por seguridad NO.</p>
<form action="guardar.php" method="post">
<b>Nick: </b>
<input type="text" name="nick" id="nick" value="<?php echo $usuario['nick']; ?>">
<br>
<b>E-mail: </b>
<input type="text" name="email" id="email" value="<?php echo $usuario['email']; ?>">
<br>
<br>
<b>Firma: </b>
<input type="text" name="rollo" id="rollo" value="<?php echo $usuario['rollo']; ?>">
<br>
<b>Contraseña: </b>
<input type="password" name="pass" id="pass" value="">
<br>
<b>Avatar: </b>
<input type="file" name="avatar" id="avatar" value="<?php echo $usuario['avatar']; ?>">
<br>
<input type="submit" value="Guardar datos">
</form>
<br />
<i>En una situación perfecta aquí debería haber dos campos de contraseña para que el usuario
la reescribiese para confirmarla.</i>
<br><br>
<a href="perfil.php">Cancelar</a>
<div id="content">
<div class="content_item">
</div><!--close footer_container-->
</body>
</html>
y este es el de guardar.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Proevomex Pro</title>
<meta name="description" content="free website template" />
<meta name="keywords" content="enter your keywords here" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/image_slide.js"></script>
</head>
<body>
<?
include ("header.php");
?>
<div id="main">
<div id="site_content">
<?php
include('include/config.php');
session_start();
if(!isset($_SESSION["usuario"])){
header('location: index.php');
exit();
}
// Recogemos el usuario en un Array($usuario)
$result = mysql_query('SELECT * FROM users WHERE nick = "' . $_SESSION['usuario'] . '"')
or die(mysql_error());
$usuario = mysql_fetch_array($result);
mysql_free_result($result);
// Ahora tenemos que recoger las variables que ha enviado el formulario
// Puedes hacerlo con el método que quieras. Yo por experiencia suelo usar
// este porque en caso de que haya fallos en el envio, protege de errores en el servidor
$nuevo_nick = empty($_POST['nick']) ? '' : $_POST['nick'];
$nuevo_email = empty($_POST['email']) ? '' : $_POST['email'];
$nuevo_rollo = empty($_POST['rollo']) ? '' : $_POST['rollo'];
$nuevo_avatar = empty($_POST['avatar']) ? '' : $_POST['avatar'];
// Traducción: comprobamos si $_POST['nick'] está vacío, si lo está ponemos una cadena
// vacia para evitar errores, si no ponemos lo que nos hayan enviado.
$nueva_password = empty($_POST['pass']) ? '' : $_POST['pass'];
if(empty($nuevo_nick)) {
echo 'Debes escribir un nick o dejar el que tenías.';
die();
}
if($nuevo_nick != $usuario['nick']) { // Si el nick ha cambiado....
mysql_query('UPDATE users SET nick = "' . $nuevo_nick . '" WHERE nick = "' . $_SESSION['usuario'] . '"')
or die(mysql_error());
echo 'El nick se ha guardado. No te olvides de actualizar $_SESSION para que ';
echo 'refleje los cambios y podamos seguir encontrando al usuario mediante su nick.<br>';
$_SESSION['usuario'] = $nuevo_nick;
}
if($nuevo_email != $usuario['email']) { // Si el email ha cambiado....
mysql_query('UPDATE users SET email = "' . $nuevo_email . '" WHERE nick = "' . $_SESSION['usuario'] . '"')
or die(mysql_error());
echo 'El Email se ha guardado ';
}
if($nuevo_rollo != $usuario['rollo']) { // Si el nick ha cambiado....
mysql_query('UPDATE users SET rollo = "' . $nuevo_rollo . '" WHERE nick = "' . $_SESSION['usuario'] . '"')
or die(mysql_error());
echo 'La firma se ha guardado.';
}
if($nuevo_avatar != $usuario['avatar'])
{
$nombre = $_FILES['avatar']['name'];
$directorio = $_SERVER['DOCUMENT_ROOT'].'soul/uploads/';
if( !is_dir( $directorio ) )
{
mkdir( $directorio, 0777 );
}
move_uploaded_file($_FILES['avatar'],$directorio.$nombre);
mysql_query('UPDATE users SET avatar = "' . $nuevo_avatar . '" WHERE nick = "' . $_SESSION['usuario'] . '"') or die(mysql_error());
echo 'El avatar se ha guardado ';
}
if(!empty($nueva_password)) {
// Si el usuario ha escrito alguna contraseña...
mysql_query('UPDATE users SET pass = "' . $nueva_password . '" WHERE nick = "' . $_SESSION['usuario'] . '"')
or die(mysql_error());
echo 'La contraseña se ha guardado correctamente.<br>';
}
?>
<br><br>
<a href="perfil.php">Volver a Mi Perfil</a>
<div id="content">
<div class="content_item">
</div><!--close footer_container-->
</body>
</html>
Espero y asi me puedas ayudar un poco mas saludos--