• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Php allegare file ad una mail

IImanuII

Nuovo utente
Autore del topic
7 Febbraio 2012
47
41
Miglior risposta
0
Salve a tutti, avrei bisogno di una mano.

Ho creato un form per inviare mail e funziona, tuttavia necessito di allegare dei file alle mail che tale form invia.

In rete ho trovato vari esempi ma nessuno funziona. Questo mi sembrava molto valido:

Perfavore, Entra oppure Registrati per vedere i Link!


Tuttavia la mail che arriva, arriva con gli allegati di 0 byte e con il nome cambiato.

In giro ho letto che dovrei utilizzare phpmailer solo che non ho ben capito come fare. Non ho capito se una volta scaricata la cartella questa vada solo caricata e poi richiamata all'interno del php oppure necessiti di una particolare installazione. Inoltre mi chiedevo se tale metodo può essere adattato al mio form oppure devo crearne uno nuovo.

Grazie
 
Riferimento: Php allegare file ad una mail

Ho provato, il form funziona tuttavia non rispetta questa parte

if (mail($destinatario, $oggetto, $msg, $headers))
{
echo "<p>Mail inviata con successo!</p>";
}else{
echo "<p>Errore!</p>";
}
?>

Cioè se non compilo il form esce comunque la scritta "mail inviata"
 
Riferimento: Php allegare file ad una mail

Quello che hai scritto tu controlla se l'email è inviata o no, non se hai compilato tutti i campi.
Puoi usare JavaScript per quello o questo php:

if($destinatario = ""){
echo "Nessun destinatario inserito!";
}

E così fai per tutte le altre varibili ;)
 
Riferimento: Php allegare file ad una mail

Grazie adesso provo :P

Ps lo devo inserire alla fine o dopo ogni variabile che voglio controllare?
 
Riferimento: Php allegare file ad una mail

Prima del controllo sull'invio dell'email, cioè prima di questo:

if (mail($destinatario, $oggetto, $msg, $headers))
{
echo "<p>Mail inviata con successo!</p>";
}else{
echo "<p>Errore!</p>";
}
?>
 
Riferimento: Php allegare file ad una mail

Nulla dice sempre mail inviata con successo T.T


//controllo sui campi
if($destinatario = ""){
echo "Nessun destinatario inserito!";
}

// Invio la mail
if (mail($destinatario, $oggetto, $msg, $headers))
{
echo "<p>Mail inviata con successo!</p>";
}else{
echo "<p>Errore!</p>";
}

?>

Se il destinatario non lo inserisco dice email inviata con successo :s... T.T

EDIT anzi non arriva la mail :o non funziona più se inserisco quel codice
 
Ultima modifica:
Riferimento: Php allegare file ad una mail

$destinatario è la variabile $_POST del form?
 
Riferimento: Php allegare file ad una mail

$destinatario è la variabile $_POST del form?

$destinatario = $_POST['emaildichiriceve'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

i campi sono questi

Con il javascript non invia più l'allegato :\
 
Ultima modifica:
Riferimento: Php allegare file ad una mail

Il codice di fossa funziona in parte perchè ho aggiunto un controllo chapta (preso da
Perfavore, Entra oppure Registrati per vedere i Link!
), ho modificato così il codice:


PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Solo che se non inserisco il destinatario, l'email non viene inviata il controllo funziona ed esce "Nessun destinatario inserito!" solo che affianco "Email inviata. Grazie.

Ritorna all'home page" perchè?

Qualcuno sa dov'è l'errore?

Intanto ho fatto il controllo tramite javascript, se qualcuno ha la soluzione tramite il lato server me la posti.
 
Ultima modifica:
Riferimento: Php allegare file ad una mail

Ti ringrazio ma ho rinunciato ed ho preso un form già bello e fatto. xD

questo
Perfavore, Entra oppure Registrati per vedere i Link!


che per le mie esigenze è perfetto. L'unica cosa è che vorrei inserire un pulsante per fare il refresh del solo captcha.
Perfavore, Entra oppure Registrati per vedere i Link!


Sto tentando ma non riesco ad vare risultati :\ mi dai una mano?

ho provato questa soluzione
Perfavore, Entra oppure Registrati per vedere i Link!


ma o sbaglio qualcosa o non va :o

Inoltre mi chiedevo se era possibile registrare e far visualizzare in qualche modo il numero di mail effettivamente inviate, nel caso limitarle.
Ad esempio nel form aggiungo un campo "mai inviate oggi" e di fianco il numero di mail che sono state inviate.
Se arriva ad es. a 100, il form all'atto dell'invio fa comparire un popup che dice "numero massimo di email raggiunto"

Una cosa del genere come si può sviluppare in php o javascript? Qualcuno mi posta un esempio?
 
Ultima modifica:
Riferimento: Php allegare file ad una mail

1) Che errore ti dà il captcha? Dove ti blocchi?

2) Certo che si può, io ti consiglio di farlo attraverso un database MySQL ;)
 
Riferimento: Php allegare file ad una mail

1) Ho risolto tutto con l'iframe postato nel topic precedente, il problema era che ffox non gestisce l'iframe ho ovviato con un css

<style type="text/css">
html, body, div, iframe { margin:0; padding:0; height:100%; }
iframe{display:block }
</style>

2) Il problema è che non so farlo :emoji_slight_frown: non è che potresti darmi la porzione di codice da utilizzare, senza che questa infici sul form? (alla fine si tratta di un'aggiunta che fa un controllo sugli invii)

Ti spiego come funziona il form (che poi è quello postato prima)

Form.html + captcha + controlli dei campi in javascript -> invia i dati a pagina php che verifica il captcha -> invia la mail

E' possibile inserire questo script di cui tu parli senza apportate enormi cambiamenti?
 
Riferimento: Php allegare file ad una mail

Sposto e rinomino poichè il problema è stato risolto ;)