Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 29-12-09, 20:48   #1 (permalink)
User Newbie
 
Data di registrazione: Dec 2009
Messaggi: 5
Upload di foto in pagina web

Salve, sto' disegnando un sito internet ed ho questo problema: Ho un form dove l'utente si iscrive, inserisce i suoi dati e le sue foto in un form e alla fine le invia. Tutto bene fino a quando inserisce i dati, il problema sorge quando deve inserire le foto; non so come fare uno script che permetta di fare l' upload delle foto e di mandarle alla mia mail insieme ai dati. Premetto che non sono esperto in PHP, mi limito a modificare i vari script che trovo in giro ...Sarei grato se qualcuno mi possa spiegare (o mandare uno script ) per inserire al mio form le foto. Grazie in anticipo.
osafado non in linea   Rispondi citando
Vecchio 04-01-10, 18:29   #2 (permalink)
User
 
L'avatar di linus
 
Data di registrazione: Apr 2005
Ubicazione: Bergamo
Messaggi: 125
Il form di invio deve contenere
Codice HTML:
<form method="post" action="send.php" enctype="multipart/form-data">

<!-- Vari campi  -->

Immagine  <input class="camp" name="file_send" type="file" />

<input type="submit" value="  Invio  " />
</form>
Mentre la pagina send.php
Codice PHP:
$Reply upload($dir "directory_file_ricevuti/"$tipo FALSE$dim FALSE$debug FALSE);
$code_reply "\r\n<p>$Reply</p>";
echo 
$code_reply
La funzione upload richiamata è questa:
Codice PHP:
/**
  * Funzione per effettuare l'upload
  */
function upload($dir "directory_file_ricevuti/"$tipo FALSE$dim FALSE$debug FALSE)
{
   
//Impostare la path assoluta del proprio sito
   
$source_dir "/var/www/site/home/......etc";
   if(!
is_uploaded_file($_FILES['file_send']['tmp_name']))
   {
       
$echo "Nessun file selezionato da inviare al server";
       
#exit();
   
}

   if(
is_uploaded_file($_FILES['file_send']['tmp_name'])){

     
//Funzione di debug
     
if($debug != FALSE){
        
print_r($_FILES);
     }

     
//Controllo che il file non esista nella destinazione
     
if (is_file($source_dir.$dir.$_FILES['file_send']['name'])){
       
$echo "Esiste gi&agrave; un file con lo stesso nome!<br />
                Rinominarlo e tentare nuovamente!"
;
       
#exit();
     
}

     
//Controllo il tipo di file se ne ho definito uno o più obbligatori
     
if($tipo != FALSE) {
       if(
is_array($tipo)) {
         if(!
in_array($_FILES['file_send']['type'],$tipo)) {
            
$echo "Tipo file non consentito";
            
#exit();
         
}
       } else {
         if(
$_FILES['file_send']['type'] != $tipo) {
            
$echo "Tipo file non consentito";
            
#exit();
         
}
       }
     }
  
    
//Controllo che le dimensioni non superino il massimo consentito
    
if($dim != FALSE) {
      
$dimz $dim 1024000;   
      if(
$_FILES['file_send']['size'] > $dimz) {
        
$echo "Il file che si sta cercando di inviare &egrave; troppo grande!<br />
              la dimensione massime consentita &egrave; di " 
$dim " megabyte";
        
#exit();      
      
}
    }
  
    
//Controllo che la directory di destinazione sia server writable
    
if(!is_writable($source_dir.$dir)) {
       
$echo "Non si dispone dei permessi necessari!<br />
                Contattare l'amministratore del sistema e far settare i permessi della directory <i>" 
$dir "</i> a 0777";
       
#exit();      
    
}
  
    
//Passati tutti i controlli posso inviare il file al server!
    
if(move_uploaded_file($_FILES['file_send']['tmp_name'], $source_dir.$dir.$_FILES['file_send']['name'])) {
       
$echo "Il file &egrave; stato inviato correttamente al server!";
    }
   }
   return(
$echo);

Tutto qui
linus non in linea   Rispondi citando
Vecchio 04-01-10, 21:15   #3 (permalink)
User Newbie
 
Data di registrazione: Dec 2009
Messaggi: 5
Grazie Linus, a vedere così sembra uno script ben fatto e completo, però quello che serve a me è uno script per mandare più files di foto come allegato, che arrivino alla mia e-mail e per quello che ho potuto vedere non sono ruscito a capire se lo script serve per mandare e-mail con allegati multipli.
Di seguito inserisco uno script che stò cercando di modificare, tutto funziona solo non so come aggiungere altri allegati allo stesso script (con questo ne manda solo uno...). Se qualcuno può aiutarmi sarei molto grato..

<?php
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$oggetto = $_POST['oggetto'];
$messaggio = "
nombre: $nombre \n
apellido: $apellido \n
apodo: $apodo \n
edad: $edad \n
dia: $dia \n
mes: $mes \n
mittente: $mittente \n
profesion: $profesion \n
estado: $estado \n
hijos: $hijos \n
num: $num \n
mujer: $numhembra \n
varon: $numvaron \n
estatura: $estatura \n
peso: $peso \n
cabellos: $cabellos \n
ojos: $ojos \n
descripciones: $descripciones \n ";


// Valorizzo le variabili relative all'allegato
$allegato = $_FILES['allegato']['tmp_name'];
$allegato_type = $_FILES['allegato']['type'];
$allegato_name = $_FILES['allegato']['name'];



// Creo 2 variabili che riempirò più avanti...
$headers = "From: " . $mittente;
$msg = "";

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...

if (is_uploaded_file($allegato2))
{

// 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";

// Aggiungo le intestazioni necessarie per l'allegato
$headers .= "\nMIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n";
$headers .= " boundary=\"{$mime_boundary}\"";

// 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/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 7bit\n\n";
$msg .= $messaggio . "\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";
}
else
{
$msg = $messaggio;
}

// Invio la mail
if (mail($destinatario, $oggetto, $msg, $headers))
{
echo "<p>Mail inviata con successo!</p>";
}
else
{
echo "<p>Errore!</p>";
}
?>
osafado non in linea   Rispondi citando
Rispondi
Tags: , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:21.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.