Muy cierto cluster soy muy impulsivo... no sabes cuanto, en mas de una ocasión me he metido en lios por eso.
Bueno ahora mi aporte para la comunidad, he terminado y pulido el codigo lo máximo que mis conocimientos abarcan y bueno lo dejo aqui por si interesa para las FAQ's o para cualquier usuario que localize este hilo.
Sirve para subir archivos al servidor y ademas cuando termina de subirlos envia mails con la ruta del archivo a el webmaster y al usuario.
para pasar el nombre del usuario yo la cojo de los foros phpBB, pero tu puedes montartelo como quieras
le he puesto explicaciones y todo
Código PHP:
<?php
//////////////////////////////
// VARIABLES DEL FORMULARIO //
//////////////////////////////
$userfile=$_FILES['userfile']['tmp_name'];
$userfile_name=$_FILES['userfile']['name'];
$userfile_size=$_FILES['userfile']['size'];
$userfile_type=$_FILES['userfile']['type'];
$userfile_error=$_FILES['userfile']['error'];
$usuario=$_POST['usuario'];
$email=$_POST['email'];
///////////////////////////////////
// VARIABLES DEL ENVIO DE EMAILS //
///////////////////////////////////
// DESTINATARIO 1: EL WEBMASTER EN ESTE CASO
$destinatario = '[email protected]';
$asunto = 'Nuevos datos subidos!! Revisalos ya!!';
$contenidoemail = 'El usuario: '.$usuario."\n"
.'Con esta direccion de email: '.$email."\n"
.'Ha subido este archivo para revisión: http://www.tuweb.com/ruta_a_el/archivo/'.$userfile_name."\n";
$remitente = 'From: tu nombre o nombre de tu web';
// DESTINATARIO 2: EL USUARIO QUE HA ENVIADO EL ARCHIVO
// Es una buena manera de dejarle claro que el archivo se ha subido correctamente
$destinatario2 = ''.$email.'';
$asunto2 = 'Archivo recibido correctamente';
$contenidoemail2 = 'Hola '.$usuario."!!\n"
.'bla bla: '.$email."\n"
.'El archivo ha sido enviado correctamente, muchas gracias por tu colaboracion: http://www.tuweb.com/ruta_a_el/archivo/'.$userfile_name."\n";
$remitente2 = 'From: tu nombre o nombre de tu web';
////////////////////////////////////////////////////////////////////////////
// COMPROBAMOS QUE EL USUARIO HA RELLENADO TODOS LOS DATOS DEL FORMULARIO //
////////////////////////////////////////////////////////////////////////////
// AQUI PASA EL USUARIO
if (!$usuario)
{
echo "".$usuario." No has introducido el nombre de usuario.<br />";
echo "Por favor vuelve atras y rellena todas las casillas.";
exit;
}
// AQUI PASA LA DIRECCION DE EMAIL
if (!$email)
{
echo "".$usuario." No has introducido el email.<br />";
echo "Por favor vuelve atras y rellena todas las casillas.";
exit;
}
// AQUI PASA EL ARCHIVO
if (!$userfile)
{
echo "".$usuario." No has seleccionado ningún archivo.<br />";
echo "Por favor vuelve atras y rellena todas las casillas.";
exit;
}
// AQUI COMPRUEBA VARIAS CUESTIONES
if ($userfile_error > 0)
{
echo 'Problema: ';
switch ($userfile_error)
{
case 1: echo 'El archivo excede el: upload_max_filesize'; break;
case 2: echo 'El archivo excede el: max_file_size'; break;
case 3: echo 'El arcivo no se ha subido al completo'; break;
case 4: echo 'No file uploaded'; break;
}
exit;
}
//////////////////////////////////////////////////
// COMPROBAMOS QUE LOS TIPOS MIME SON CORRECTOS //
//////////////////////////////////////////////////
$userfile_type_aceptados=array('application/rar','application/zip');
if (!in_array($userfile_type,$userfile_type_aceptados))
{
echo 'El archivo no tiene el formato adecuado (zip o rar).';
echo 'Recuerda que debe ser un archivo comprimido en uno de esos dos formatos.';
exit;
}
/////////////////////////////////////////////////////////
// AHORA MOVEMOS EL ARCHIVO A LA UBICACION QUE QUIERAS //
// RECUERDA QUE SON RUTAS ABSOLUTAS //
/////////////////////////////////////////////////////////
$upfile = '/home/tu/ruta/absoluta/a/la/carpeta/que/quieras/'.$userfile_name;
// COMPROBAMOS QUE NO SE INTENTA SUBIR DOS VECES EL MISMO ARCHIVO
if (file_exists($upfile))
{
echo 'El archivo ya existe en el servidor';
echo 'no puedes subir el mismo arhivo 2 veces';
exit;
}
// COMPROBAMOS QUE SE HA MOVIDO CORRECTAMENTE AÑADIDO PARA LA VERSION 4.0.3 de php
if (is_uploaded_file($userfile))
{
if (!move_uploaded_file($userfile, $upfile))
{
echo 'Problema: No se ha podido mover el archivo a el directorio de destino';
exit;
}
}
else
{
unlink($upfile);
echo 'Problema: Posible ataque en el upload del Archivo: '.$userfile_name;
exit;
}
///////////////////////////////////////////////////
// AHORA ENVIAMOS LOS EMAILS A SUS DESTINATARIOS //
///////////////////////////////////////////////////
if (!mail($destinatario, $asunto, $contenidoemail, $remitente) || !mail($destinatario2, $asunto2, $contenidoemail2, $remitente2))
{
echo "Ha fallado el envio del email";
}
echo "Los datos se han enviado correctamente y se te ha enviado el email";
?>
Que os parece?? ¿esta bien?