Hola te dejo este cogigo fuente, este codigo fuente esta un poco enrrevesado, pero te puede servir de referencia:
Código PHP:
<?PHP
//Código creado por: Aitor Martin
//Código creado para: http://www.aitormartin.com
//Fecha: jun-2009
//Actualizado por:
//Actualizado:
//Descripción:
?>
<?php
require_once('admin/inc_menu_seguridad.php'); //Script que restringe el acceso...
?>
<?php
function borrar_sesiones () //funcion para borrar las var tipo $_SESSION...
{
unset ( $_SESSION["fecha"] );
unset ( $_SESSION["titulo"] );
unset ( $_SESSION["comentario"] );
unset ( $_SESSION["file_name"] );
unset ( $_SESSION["procesar"] );
}
?>
<?php
$trabajo = "qrp/img/"; //Ruta de las imagenes.
if(isset($_POST['enviar']))
{
//pasamos las var $POST a var $_SESSION
$_SESSION["fecha"] = $_POST['date']; //La fecha pasada
$_SESSION["titulo"] = $_POST['titulo']; //titulo post
$_SESSION["comentario"] = nl2br(htmlentities($_POST['coment'])); //post
$file_name_p = $_FILES['file1']['name']; //el nombre del fichero
$file_ext_p = strrchr($_FILES['file1']['name'],'.'); //extension del fichero
$file_tipe_p = $_FILES['file1']['type']; //la extension del fichero
$file_size_p = $_FILES['file1']['size']; //el tamaño del fichero
$file_temp_p = $_FILES['file1']['tmp_name']; //el nombre temporal
//Comprueba que hemos rellenado correctamente todos los campos.
if ( empty($_POST['date']) || empty($_POST['titulo']) || empty($_POST['coment']) )
{
$_SESSION["error"] = "0001"; //Si no esta correctamente rellenado pasamos el error
echo "<script>window.location.href='index.php?id=1022'</script>"; //recargamos la pagina para borrarlos
exit; //datos pasados por $POST
}
else
{
if ($file_name_p != "")
{
$renovar = true;
}
echo $_POST['img_eliminar']." - ".$_SESSION["file_name"];
if (($_POST['img_eliminar'] == "eliminar") or (($renovar == true) and ($_SESSION["file_name"] != $file_name_p))) //si vamos a eliminar una imagen...
{
$fichero_a_borrar = $_SESSION["file_name"];
if ($fichero_a_borrar != "") //Si realmente tenemos que borrar un fichero...
{
$ruta_del_fichero_a_borrar = $trabajo.$fichero_a_borrar;//Ubicacion del ficheroa a borrar.
if (file_exists("$ruta_del_fichero_a_borrar")) //Miramos si el fichero a borrar esiste.
{
unlink("$ruta_del_fichero_a_borrar"); //Si esiste lo borra...
}
}
}
//subimos la imagen al servidor...
if (($file_name_p != "") and ($file_size_p > 0)) //Comprobamos si bamos a subir algo...
{ //Si bamos a subir algo miramos que var del nombre del fichero
//contenga texto y que ocupe mas de 0 kb...
if ((strpos($file_tipe_p, "gif") || strpos($file_tipe_p, "jpeg") || strpos($file_tipe_p, "png")) && ($file_size_p < 1500000))
{
//Con este if miramos que el fichero a subir sea de un formato
//valido y que ocupe menos de 1mb
if (is_uploaded_file($file_temp_p)) //Si hemos subido un fichero...
{
//acontinuacion generamos un nombre aleatorio.
//Comprobamos que no exista un fichero con el mismo nombre
//en la DB. Si exixte generamos
//otro nombre aleatorios hasta encontrar
//un nombre adecuado.
$link = conectarse();
$unico = false;
do {
$name_rand = rand(0000000000,9999999999);
$name_img = $name_rand.$file_ext_p;
$sql = "select * from qrp_life WHERE img LIKE '$name_img'";
$query = mysql_query($sql) or die ("SQL Error SQL!!!");;
while ($row = mysql_fetch_object($query))
{
if ($row->img != $name_img)
{
$unico = false;
}
else
{
$unico = true;
}
}
} while ($unico == true);
mysql_close($link); //Cerramos consulta
copy($file_temp_p, $trabajo.$name_img); //Copia de el fichero de la carpeta temporal
//a nuestra carpeta de trabajo.
if (file_exists($trabajo.$name_img)) //Comprobamos si se ha copia corectamente el fichero
{ //Si se ha copiado correctamente continua el prog.
} //Si no se ha copia muestra un error regresa
else //al formulario...
{
$_SESSION["error"] = "0007"; //indica que ha surgido un error y pasamos el error
$_SESSION["procesar"] = "no"; //Como ha ocurrido un error no procesamos los datos
echo "<script>window.location.href='index.php?id=1022'</script>";//recargamos la pagina para borrarlo var post
exit;
}
}
else
{
$_SESSION["error"] = "0007"; //indica que ha surgido un error y pasamos el error
$_SESSION["procesar"] = "no"; //Como ha ocurrido un error no procesamos los datos
echo "<script>window.location.href='index.php?id=1022'</script>";//recargamos la pagina para borrarlo var post
exit;
}
}
else
{
$_SESSION["error"] = "0006"; //indica que ha surgido un error y pasamos el error
$_SESSION["procesar"] = "no"; //Como ha ocurrido un error no procesamos los datos
echo "<script>window.location.href='index.php?id=1022'</script>";//recargamos la pagina para borrarlo var post
exit;
}
}
else
{
if (($file_name_p == "") and ($file_size_p > 0)) //Si el fichero esta corrupto...
{
$_SESSION["error"] = "0005"; //indica que ha surgido un error y pasamos el error
$_SESSION["procesar"] = "no"; //Como ha ocurrido un error no procesamos los datos
echo "<script>window.location.href='index.php?id=1022'</script>";//recargamos la pagina para borrarlo var post
exit;
}
}
if ($file_name_p == "")
{
$name_img = $_SESSION["file_name"];
}
if ($_POST['img_eliminar'] == "eliminar")
{
$name_img = "";
}
$_SESSION["file_name"] = $name_img; //Pasamos a una var el nombre de la imagen subida.
$_SESSION["procesar"] = "ok"; //Al no dar errores procesamos los datos...
echo "<script>window.location.href='index.php?id=1022'</script>"; //recargamos la pagina para borrarlos
exit; //datos pasados por $POST
}
}
?>
<?php
if ( $_SESSION["procesar"] == "ok" ) //Si procesar es ok pocesamos los datos,
//y los añadimos la DB
{
$link = conectarse();
$sql = "UPDATE qrp_life SET fecha = '".$_SESSION["fecha"]."', titulo = '".$_SESSION["titulo"]."', contenido = '".$_SESSION["comentario"]."', img = '".$_SESSION["file_name"]."' WHERE id LIKE '".$_SESSION["id_actualizar"]."' LIMIT 1";
mysql_query($sql);
borrar_sesiones();
unset ( $_SESSION["id_actualizar"] );
$_SESSION["add_ok"] = "0000"; //Pasamos la notificación que los datos se han modificado ok
echo "<script>window.location.href='index.php?id=1020'</script>"; //recargamos la pagina de actualizar.
exit;
}
if ( $_SESSION["procesar"] == "ok" ) //Si no procesamos los datos borramos las session
{
borrar_sesiones();
}
?>
<?php
//Control de errores...
if( $_SESSION["error"] == "0001" )
{
echo "<script>window.onload = function() { alert(\"".traducir('0001')."\");} </script>";
unset ($_SESSION["error"] );
}
elseif ($_SESSION["error"] == "0005")
{
echo "<script>window.onload = function() { alert(\"".traducir('0005')."\");} </script>";
unset ($_SESSION["error"] );
}
elseif ($_SESSION["error"] == "0006")
{
echo "<script>window.onload = function() { alert(\"".traducir('0006')."\");} </script>";
unset ($_SESSION["error"] );
}
elseif ($_SESSION["error"] == "0007")
{
echo "<script>window.onload = function() { alert(\"".traducir('0007')."\");} </script>";
unset ($_SESSION["error"] );
}
?>
<?php
//Lemos los datos del correspondientes al id a actualizar
$link = conectarse();
$sql = "select * from qrp_life WHERE id LIKE '".$_SESSION["id_actualizar"]."'";
$query = mysql_query($sql);
mysql_close($link);
while ($row = mysql_fetch_object($query))
{
$fecha_p = $row->fecha;
$titulo_p = $row->titulo;
$comentario_p = html_entity_decode($row->contenido);
$img_p = $row->img;
}
$_SESSION["file_name"] = $img_p; //Pasaomos los datos de la img auna session.
if($img_p != "") //Si no contiene img mostramos "nopic.png"
{
$img_actual = $trabajo.$img_p;
}
else
{
$img_actual = $trabajo."nopic.png";
}
if (file_exists($img_actual)) //Si no existe la img mostramos "nopic.png"
{
}
else
{
$img_actual = $trabajo."nopic.png";
}
?>
<div id= "qrp_add">
<h3>Actualizar Post 2</h3>
<form name="form" action="index.php?id=1022" method="POST" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1500000" />
* Fecha:
<br />
<input name="date" type="text" id="date" value="<?php echo $fecha_p; ?>" size="16">
<br />
* Titulo:
<br />
<input type="text" name="titulo" value="<?php echo $titulo_p; ?>" size="87">
<br />
* Texto:
<br />
<textarea name="coment" cols="100" rows="15"><?php echo $comentario_p; ?></textarea>
<br />
<br />
Imagen actual:
<br />
<br />
<img src="<?php echo "$img_actual"; ?>">
<br />
<?php echo "$img_p"; ?>
<br />
<br />
Sustituir imagen:
<br />
<br />
<input type="file" name="file1">
<br />
<br />
Eliminar la imagen:
<input name="img_eliminar" type="checkbox" value="eliminar" />
<br />
<br />
<input name="enviar" type="submit" id="enviar" value="Enviar">
</form>
</div>