Vai al contenuto

modulo invio mail con allegato


bronca

Messaggi raccomandati

Originally posted by bronca

Ciao a tutti,

devo fare un modulo che mi permetta di inviare da una pagina web ad una mail specifica

un modulo con:

EMAIL MITTENTE

DESCRIZIONE FILE

ALLEGATO

in php possibilmente

sapete darmi consigli?

Raffaele

Ciao! Per un semplice feedback form in php, dai un'occhiata qui:

http://www.italiamac.it/forum/viewtopic.ph...light=email+php

Sconsiglio di utilizzare un form che spedisca email con attachment - molti host le bloccano ed è un mezzo casino far riconoscere correttamente il file a tutte le combinazioni di OS / Mail reader presenti. Piuttosto farei un form con possibilità di upload, che spedisca come mail il link al file uploadato anzichè il file stesso... magari più tardi provo a mettere qualcosa assieme :shock:

:D :P

Link al commento
Condividi su altri siti

dovrebbe anche dire che server ha e con quale società di H, perchè per fare upload files agli utenti, su alcuni server, è necessario settare una cartella specifica. Non vorrei dire sciocchezzuole :shock: ma mi pare che su Aruba, per esempio, tale cartella sia la public e se si usa uno script che permette upload su altra cartella la cosa non funzia.

:D

Link al commento
Condividi su altri siti

Originally posted by creattivo

dovrebbe anche dire che server ha e con quale società di H, perchè per fare upload files agli utenti, su alcuni server, è necessario settare una cartella specifica. Non vorrei dire sciocchezzuole :D ma mi pare che su Aruba, per esempio, tale cartella sia la public e se si usa uno script che permette upload su altra cartella la cosa non funzia.

:P

Hai ragione pure te :cry:

Ma se mi si chiede uno script in php, io presumo che php sia installato - e per la cartella di upload, no problem, per fortuna hanno inventato le variabili in php: io setto $cartella_di_upload all'inizio dello script, cambio il valore a seconda dell'host e del mio tree di directory, e sono a posto :cry:

:P :shock:

Link al commento
Condividi su altri siti

Originally posted by Ce

Hai ragione pure te :P

Ma se mi si chiede uno script in php, io presumo che php sia installato - e per la cartella di upload, no problem, per fortuna hanno inventato le variabili in php: io setto $cartella_di_upload all'inizio dello script, cambio il valore a seconda dell'host e del mio tree di directory, e sono a posto :cry:

:D:shock:

Si si, ovvio.

Era giusto per chiarire. Sai per non avere una cosa del tipo "usa questo script", quello lo mette paro paro sul server e 30 secondi dopo torna «Non funziona!!». :cry:

So' precisino.

Me lo dice sempre anche la mia amica Nella. :P

Link al commento
Condividi su altri siti

l'hosting è stato preso da Neamedia http://www.neamedia.com/

mi sarebbe utilissimo anche il sistema che dici te,

per non saprei come mandare la mail con l'indirizzo

me ne intendo molto poco di php, e nel sito che sto faccendo è l'unica cosa che mi serve!

C'è qualche script già pronto in giro?

Link al commento
Condividi su altri siti

Eccoci! Scriptino messo assieme in fretta e furia ma dovrebbe funzionare abbastanza bene.

Tutti i file sono disponibili qui: http://longu.net/misc/upload/

I file sono

upload.html > il form di invio dati e file (variabile da modificare: la dimensione massima del file uploadato)

upload.php > lo script che effettua l'upload e spedisce l'email all'amministratore del sito (diverse variabili da modificare, tutte commentate)

upload.css > il foglio di stile per il form e lo script

uploads > la cartella che conterrà i file uploadati (deve essere scrivibile)

Il form upload.html è abbastanza semplice, unica variabile la dimensione massima del file uploadato:

<html>

<head>

<title>File upload</title>

<link rel="stylesheet" href="upload.css" type="text/css" />

</head>

<body>



<h1>Invia un file</h1>





Tutti i campi sono obbligatori.</p>



<form enctype="multipart/form-data" action="upload.php" method="post">

    <h2>Nome:</h2> 

    <input name="name" type="text" /> 

    <h2>Email:</h2> 

    <input name="email" type="text" /> 

    


    <h2>Commento:</h2> 

    <textarea name="message" rows="20" cols="40"></textarea> 

    <input type="hidden" name="MAX_FILE_SIZE" value="100000000">

    <h2>File da inviare:</h2> 

    <input name="userfile" type="file">

    <input type="submit" value="Send File">

</form>



</body>

</html>

Lo script upload.php è più complicato, ci sono diverse variabili da modificare (cfr. il file sul mio sito per esempi "reali"):

<html>

<head>

    <title>File upload</title>

    <link rel="stylesheet" href="upload.css" type="text/css" />

</head>



<body>



<h1>Sto salvando...</h1>



<?php



// -- FASE 1 - FILE UPLOAD --



$userfile = $HTTP_POST_FILES['userfile']['tmp_name'];

$userfile_name = $HTTP_POST_FILES['userfile']['name'];

$userfile_size = $HTTP_POST_FILES['userfile']['size'];

$userfile_type = $HTTP_POST_FILES['userfile']['type'];

$userfile_error = $HTTP_POST_FILES['userfile']['error'];



// VARIABILE DA MODIFICARE

$upfile = '/path/to/uploads/'.$userfile_name;



if (is_uploaded_file($userfile)) 

{

if (!move_uploaded_file($userfile, $upfile))

{

echo 'Errore: impossibile spostare il file nella directory di destinazione.';

exit;

}

} 

else 

{

echo 'Errore: upload impossibile. Nome del file: '.$userfile_name;

exit;

}

echo '

Upload completato!</p>';



// -- FASE 2 - INVIO MESSAGGIO --



// prendo le variabili dal form 

$name=$HTTP_POST_VARS['name']; 

$email=$HTTP_POST_VARS['email']; 

$message=$HTTP_POST_VARS['message'];

// VARIABILE DA MODIFICARE

// aggiungo l'indirizzo a cui spedire la mail

$to='admin@sito.net';

// VARIABILE DA MODIFICARE

// il subject della mail

$subject='File upload dal sito sito.net';

// VARIABILE DA MODIFICARE

// il path per l'URL dell'attachment (no trailing slash)

$path='http://sito.net/uploads';

// formatto il testo eliminando le slashes se presenti - es. D'Amico e non D/'Amico come farebbe php 

$name= StripSlashes($name); 

$message= StripSlashes($message); 

// vedo che tutti i campi siano riempiti, altrimenti errore 

if 

( 

    !$name || 

    !$email || 

    !$message 

) 

{ 

echo 'Errore di invio messaggio di conferma: non tutti i campi sono stati completati.';

exit; 

} 

// VARIABILE DA MODIFICARE (con cautela)

// se tutti i campi sono a posto, formatto il corpo del messaggio

$mailcontent = '[Messaggio automatizzato dal sito]'

 ."n"

 ."n"

 .'Mittente: '.$name."n"

 ."n"

 .'Email: '.$email."n"

 ."n"

 .'Messaggio: '.$message."n"

 ."n"

 .'File inviato: '.$path.'/'.$userfile_name."n";

// e poi spedisco l'email e ringrazio

mail($to, $subject, $mailcontent, "From: $email"); 

echo '

Email inviata a '.$to.'. Grazie!</p>';

?>



</body>

</html>

:D:ciao:

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...