Ciao a tutti, ho creato una newsletter in PHP che, per evitare di far andare il server in time out, effettua un redirect sulla pagina ogni N indirizzi email e continua da dove ha lasciato.
Ho questo codice che verifica se nella form di invio email è stato inserito un allegato e lo aggiunge nelle intestazioni del messaggio:
[PHP]if (is_uploaded_file($allegato){
// Apro e leggo il file allegato
$file = fopen($allegato,'rb');
$data = fread($file, filesize($allegato));
fclose($file);
      // Adatto il file al formato MIME base64 usando base64_encode 
      $data = chunk_split(base64_encode($data)); 
     
      // Genero il "separatore" 
      // Serve per dividere, appunto, le varie parti del messaggio. 
      // Nel nostro caso separerà la parte testuale dall'allegato 
      $semi_rand = md5(time()); 
      $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
      $intestazioni= "From:".$mittente; 
      // Aggiungo le intestazioni necessarie per l'allegato 
      $intestazioni .= "\nMIME-Version: 1.0\n"; 
      $intestazioni .= "Content-Type: multipart/mixed;\n"; 
      $intestazioni .= " boundary=\"{$mime_boundary}\""; 
   /* // costruiamo le intestazioni specifiche per il formato HTML 
      $intestazioni .= "X-Mailer: PHP/" . phpversion();*/ 
    // Definisco il tipo di messaggio (MIME/multi-part) 
      $msg .= "This is a multi-part message in MIME format.\n\n"; 
 
    // Metto il separatore 
      $msg .= "--{$mime_boundary}\n"; 
 
    // Questa è la parte "testuale" del messaggio 
      $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; 
      $msg .= "Content-Transfer-Encoding: 7bit\n\n"; 
      $msg .= stripslashes($testo) . "\n\n"; 
    // Metto il separatore 
      $msg .= "--{$mime_boundary}\n"; 
 
    // Aggiungo l'allegato al messaggio 
      $msg .= "Content-Disposition: attachment;\n"; 
      $msg .= " filename=\"{$allegato_name}\"\n"; 
      $msg .= "Content-Transfer-Encoding: base64\n\n"; 
      $msg .= $data . "\n\n"; 
 
    // chiudo con il separatore 
      $msg .= "--{$mime_boundary}--\n";  [/PHP]
Dove $allegato è inizializzata così
[PHP]if(isset($_FILES['allegato']['tmp_name'])){
$allegato = $_FILES['allegato']['tmp_name'];
$allegato_type = $_FILES['allegato']['type'];
$allegato_name = $_FILES['allegato']['name'];
}  [/PHP]
Ma nel secondo redirect della pagina, $_FILES['allegato']['tmp_name'] è vuoto e mi restituisce errore e dal secondo invio non manda più l'allegato.
Sapreste aiutarmi per caso?
Grazie 