Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/03/2006, 16:39
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Upload de datos y aviso mediante email.

Hola,

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";
?>
Y el formulario este:
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_ipPAGE_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>
Podeis probarlo aqui: http://www.mindpanic.com/colabora/subir-tracks.php

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.

Última edición por MindPaniC; 24/03/2006 a las 19:38