Estoy creando un sistema de upload de archivos (que seran grandes, ahora estoy probando con imagenes) y que basicamente cuando termina de subir el archivo correctamente me envia un email.
Le he dado mil vueltas y una variable no pasa.... no se por que, no le encuentro el fallo.
El script es este:
Código PHP:
<?php
$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'];
$destinatario = '[email protected]';
$asunto = 'Test de upload de datos y envio de email de aviso';
$contenidoemail = 'El usuario: '.$usuario."\n"
.'Con email: '.$email."\n"
.'ha subido este archivo: http://www.mindpanic.com/datos/'.$userfile_name."\n";
$remitente = 'De: [email protected]';
if (!$usuario)
{
echo "".$usuario." No has introducido el nombre de usuario.<br />";
echo "Por favor vuelve atras y rellena todas las casillas.";
exit;
}
if (!$email)
{
echo "".$usuario." No has introducido el email.<br />";
echo "Por favor vuelve atras y rellena todas las casillas.";
exit;
}
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;
}
// otro checkeo más: tiene el archivo el tipo MIME correcto?
$userfile_type_aceptados=array('image/jpeg','image/jpg','image/gif','image/png');
if (!in_array($userfile_type,$userfile_type_aceptados))
{
echo 'Problema: El archivo no tiene el formato adecuado (jpeg, jpg, gif o png)';
exit;
}
// pon el archivo donde quieras
$upfile = '/home/mindpani/public_html/datos/'.$userfile_name;
// is_uploaded_file y move_uploaded_file añadido para la version 4.0.3 de php
if (is_uploaded_file($userfile))
{
if (!move_uploaded_file($userfile, $upfile))
{
unlink($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. Archivo: '.$userfile_name;
exit;
}
if (!mail($destinatario, $asunto, $contenidoemail, $remitente))
{
echo "Ha fallado el envio del email";
}
echo "Los datos se han enviado correctamente y se te ha enviado el email";
?>
Código PHP:
<?php $volver = "../artistas/subir-datos.php";
define('IN_PHPBB', true);
$phpbb_root_path = (dirname($_SERVER['PHP_SELF'])=="../foros/") ? './' : '../foros/'; //PATH DEL FORO RESPECTO DEL SCRIPT
if (!function_exists("init_userprefs"))
{
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
global $db, $board_config;
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
}
?>
<html>
<head>
<title>Test para subida de datos</title>
</head>
<body>
<h2>Hola <?php echo"".$userdata['username']."";?>, sigue estos pasos</h2>
<h2>ESto es un test, Introduce correctamente los datos</h2>
<form enctype='multipart/form-data' action='upload.php' method='post'>
<input type='hidden' name='usuario' value='<?php echo"".$userdata['username']."";?>'>
<input type='hidden' name='MAX_FILE_SIZE' value='41943040'>
Subir este Archivo: <input name='userfile' type='file'>
<table border='0'>
<tr>
<td>Direccion de correo electronico</td>
<td><input type='text' name='email' maxlength='30' size='30'></td>
</tr>
<tr>
<td colspan='2'><input type='submit' value='Enviar Datos'></td>
</tr>
</table>
</form>
</body>
</html>
Saludos.
Se me olvidaba el script se para en el fallo que dice que no he introducido el email.
probarlo y poner un email inexistente.