form invio mail con foto o logo

searedone

Utente Attivo
11 Giu 2010
508
0
0
form invio mail con foto o logo
Ciao a tutti,
ho creato un form con relativo cod php , ma non capisco come mai mi invia tutti i dati ma non il file con il solito metodo sfoglia documento ecc ecc .. il file lo mette ma quando invia e ricevo la mail c'è tutto tranne il file in allegato .. vi posto lo script e il form .

chi mi aiuta a capire cosa manca ?!?! ...

Form:

<form action="FormToEmail.php" method="post" enctype="multipart/form-data" name="inviaci_il_tuo_curriculum_di_chirurgia_gratuitamente">
<p>
<label for="Nome"></label>

<label for="Nome">Nome</label>
<input type="text" name="Nome" id="Nome" />
</p>
<p>
<label for="Cognome">Cognome</label>
<input type="text" name="Cognome" id="Cognome" />
</p>
<p>
<label for="Specializzazione">Specializzazione</label>
<input type="text" name="Specializzazione" id="Specializzazione" />
</p>
<p>
<label for="E-mail">E-mail</label>
<input type="text" name="E-mail" id="E-mail" />
</p>
<p>
<label for="Telefono">Telefono</label>
<input type="text" name="Telefono" id="Telefono" />
</p>
<p>
<label for="Sito internet">Sito internet</label>
<input type="text" name="Sito internet" id="Sito internet" />
</p>
<p>
<label for="Citta'">Citta'</label>
<input type="text" name="Citta'" id="Citta'" />
</p>
<p>
<label for="Via">Via</label>
<input type="text" name="Via" id="Via" />
</p>
<p>
<label for="Cap">Cap</label>
<input type="text" name="Cap" id="Cap" />
</p>
<p>
<label for="Descrizione Operazioni">Descrizione OPerazioni</label>
<textarea name="Descrizione Operazioni" id="Descrizione Operazioni" cols="45" rows="5"></textarea>
</p>
<p>
<label for="Curriculum">Curriculum</label>
<textarea name="Curriculum" id="Curriculum" cols="45" rows="5"></textarea>
</p>
<p>
<label for="Visite specialistiche effettuate">Visite specialistiche effettuate</label>
<input type="text" name="Visite specialistiche effettuate" id="Visite specialistiche effettuate" />
</p>
<p>
<label for="Autorizzo i dati per la Privacy">Autorizzo i dati per la Privacy</label>
<select name="Autorizzo i dati per la Privacy" id="Autorizzo i dati per la Privacy">
<option>si</option>
<option>no</option>
</select>
</p>
<h2>Nota: Se non si autorizzano i dati per la privacy non è possibile essere inserite nei portali</h2>
<hr />
<p>
<label for="Autorizzo il ricevimento di news letter">Autorizzo il ricevimento di news letter</label>
<select name="Autorizzo il ricevimento di news letter" id="Autorizzo il ricevimento di news letter">
<option>si</option>
<option>no</option>
</select>
</p>
<p>
<label for="Foto / Logo">Foto / Logo</label>
<input type="file" name="Foto / Logo" id="Foto / Logo" />
</p>
<p>
<input type="hidden" name="hiddenField" id="hiddenField" />
</p>
<p>Invia
<input type="submit" name="Invia" id="Invia" value="Submit" />

</p>
</form>

Pagina php:


<?php

$my_email = "[email protected]";

/*

Enter the continue link to offer the user after the form is sent. If you do not change this, your visitor will be given a continue link to your homepage.

If you do change it, remove the "/" symbol below and replace with the name of the page to link to, eg: "mypage.htm" or "http://www.elsewhere.com/page.htm"

*/

$continue = "http://www.miosito.com";

/*

Step 3:

Save this file (FormToEmail.php) and upload it together with your webpage containing the form to your webspace. IMPORTANT - The file name is case sensitive! You must save it exactly as it is named above! Do not put this script in your cgi-bin directory (folder) it may not work from there.

THAT'S IT, FINISHED!

You do not need to make any changes below this line.

*/

$errors = array();

// Remove $_COOKIE elements from $_REQUEST.

if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}}

// Check all fields for an email header.

function recursive_array_check_header($element_value)
{

global $set;

if(!is_array($element_value)){if(preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc/i",$element_value)){$set = 1;}}
else
{

foreach($element_value as $value){if($set){break;} recursive_array_check_header($value);}

}

}

recursive_array_check_header($_REQUEST);

if($set){$errors[] = "You cannot send an email header";}

unset($set);

// Validate email field.

if(isset($_REQUEST['email']) && !empty($_REQUEST['email']))
{

if(preg_match("/(%0A|%0D|\n+|\r+|/i",$_REQUEST['email'])){$errors[] = "Email address may not contain a new line or a colon";}

$_REQUEST['email'] = trim($_REQUEST['email']);

if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Email address is invalid";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Email address is invalid";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Email address is invalid";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Email address is invalid";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Email address is invalid"; break;}}}}}}

}

// Check referrer is from same site.

if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";}

// Check for a blank form.

function recursive_array_check_blank($element_value)
{

global $set;

if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}}
else
{

foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);}

}

}

recursive_array_check_blank($_REQUEST);

if(!$set){$errors[] = "You cannot send a blank form";}

unset($set);

// Display any errors and exit if errors exist.

if(count($errors)){foreach($errors as $value){print "$value<br>";} exit;}

if(!defined("PHP_EOL")){define("PHP_EOL", strtoupper(substr(PHP_OS,0,3) == "WIN") ? "\r\n" : "\n");}

// Build message.

function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");}

$message = build_message($_REQUEST);

$message = $message . PHP_EOL.PHP_EOL."-- ".PHP_EOL."";

$message = stripslashes($message);

$subject = "FormToEmail Comments";

$headers = "From: " . $_REQUEST['email'];

mail($my_email,$subject,$message,$headers);

?>


Qualcuno mi sa dire cosa manca per allegare anche file e o foto !??!?!?

grazie mille
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
nessuno riesce a capire che devo aggiungere ..

Please nessuno riesce a capire che cosa devo aggiungere per allegare il file ...

le sto provando tutte ma non riesco a capire ... c'è qualche genio di php che puo' aiutarmi ad aggiungere questa benedetta stringa che mi allega il file ..... :)


Grazie a tutti
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
!?!? ho guardato letto e scaricato anche il file

!?!? ho guardato letto e scaricato anche il file , ma dopo varie prove e risprove mi sa che non funziona ...

e anche scrivendo quello che c'è sullla pagina di atterraggio che mi hai dato , non funziona...

Mi sapresti dare un'altra dritta dato che mi hanno detto che sei un drago in php !?!?


Grazie in anticipo
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per inviare allegati la cosa migliore e piu comoda è usare la classe maillephp.
non mi ricordo mai il link qui su mrwm anche se ormai credo che sia l'ennesima volta che la consiglio.


p.s.
qui devo dare ragione a alex usate i tag per formattera i codici
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Gia' scaricato .. Ma impossibile da capire come funziona ...

Ma e' possibile che nn si possa aggiungere solo qualche riga di codice a quello che ho postato !?
$

Oppure qualcuno sa anche solo uno script tipo il mio che esegua solo l'invio di file al mio indirizzo email, nel caso potrei prima far inviare il form di testo e in un secondo momento
Il file ...

Spero che qualche genio di php possa aiutarmi .. Help
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
guarda al link
http://it.php.net/manual/en/function.mail.php
poi scorri sugli esempi sino a quello akam 28-May-2008 01:55
poi come ho già detto fai prima con la classe (che è anche più sicura).
scusa: non avevo letto: hai scaricato la classe e non hai capito come funzia? se è così (abbi un po' di pazienza) o io o eliox (vedi articolo) ti diamo le indicazioni
 
Ultima modifica:

searedone

Utente Attivo
11 Giu 2010
508
0
0
togo ... magari poteste spiegarmi .. sarebbe davvero un piacere...

In ogni caso questo è lo script che mi hai detto di akam... ma ad esempio dove devo metterla ui la mia mail ??!?!?


Anche perchè suppongo che devo creare il solito form , in action mettere il file php e lui invia quando processa, ma non penso che funzioni senza settare la mail ...

help se potete ..

PHP:
<?php
$to      = $_POST['to']; 
$email   = $_POST['email']; 
$name    = $_POST['name'];
$subject = $_POST['subject']; 
$comment = $_POST['message'];

$To          = strip_tags($to);
$TextMessage =strip_tags(nl2br($comment),"<br>");
$HTMLMessage =nl2br($comment);
$FromName    =strip_tags($name);
$FromEmail   =strip_tags($email);
$Subject     =strip_tags($subject);

$boundary1   =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
$boundary2   =rand(0,9)."-".rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);

 
for($i=0; $i < count($_FILES['youfile']['name']); $i++){
if(is_uploaded_file($_FILES['fileatt']['tmp_name'][$i]) && 
   !empty($_FILES['fileatt']['size'][$i]) && 
   !empty($_FILES['fileatt']['name'][$i])){
     
$attach      ='yes';
$end         ='';

   $handle      =fopen($_FILES['fileatt']['tmp_name'][$i], 'rb'); 
   $f_contents  =fread($handle, $_FILES['fileatt']['size'][$i]); 
   $attachment[]=chunk_split(base64_encode($f_contents));
   fclose($handle); 

$ftype[]       =$_FILES['fileatt']['type'][$i];
$fname[]       =$_FILES['fileatt']['name'][$i];
}
}

/***************************************************************
 Creating Email: Headers, BODY
 1- HTML Email WIthout Attachment!! <<-------- H T M L ---------
 ***************************************************************/
#---->Headers Part
$Headers     =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="$boundary1"
AKAM;

#---->BODY Part
$Body        =<<<AKAM
MIME-Version: 1.0
Content-Type: multipart/alternative;
    boundary="$boundary1"

This is a multi-part message in MIME format.

--$boundary1
Content-Type: text/plain;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary1
Content-Type: text/html;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary1--
AKAM;

/***************************************************************
 2- HTML Email WIth Multiple Attachment <<----- Attachment ------
 ***************************************************************/
 
if($attach=='yes') {

$attachments='';
$Headers     =<<<AKAM
From: $FromName <$FromEmail>
Reply-To: $FromEmail
MIME-Version: 1.0
Content-Type: multipart/mixed;
    boundary="$boundary1"
AKAM;

for($j=0;$j<count($ftype); $j++){
$attachments.=<<<ATTA
--$boundary1
Content-Type: $ftype[$j];
    name="$fname[$i]"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
    filename="$fname[$j]"

$attachment[$j]

ATTA;
}

$Body        =<<<AKAM
This is a multi-part message in MIME format.

--$boundary1
Content-Type: multipart/alternative;
    boundary="$boundary2"

--$boundary2
Content-Type: text/plain;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$TextMessage
--$boundary2
Content-Type: text/html;
    charset="windows-1256"
Content-Transfer-Encoding: quoted-printable

$HTMLMessage

--$boundary2--

$attachments
--$boundary1--
AKAM;
}

/***************************************************************
 Sending Email
 ***************************************************************/
$ok=mail($To, $Subject, $Body, $Headers);
echo $ok?"<h1> Mail Sent</h1>":"<h1> Mail not SEND</h1>";
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
è logico che devi crearti il form, con action ad una latra pagina o alla stessa se tutto in una.
dato che il form (credo) si trova su un tuo siro l'email devi inviarltela, quindi al posto di

$to = $_POST['to'];

scrivi

$to = "mi_indirizzo@mio_dominio.it";
comunque, ribadisco, butta via e usa phpmailler, abbi pazienza che domani te la spiego
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
@ borgo italia.

grazie mille per le numerose risposte, se puoi' spiegarmi anche come funzione phpmailer ti sarei grato mi interessa molto.

O appena guardato il link di alessandro, ma non capisco alcune cose e non riesco ad installarlo ...

Ps. lo script che ti ho postato funziona, solo che non capisco perchè non mi allega niente ... ;(

chissa cosa manca...

@ alessandro..

Sorry non sapevo che non si potevano postare gli script , cmq grazie anche a te..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
la classe non va installata, ma semplicemente dizzipata copiata, meglio in una cartella (io l'ho chiamata come la classe)
poi nella pagina in cui vuoi usarla devi solo richiamarla ed istanziarla:

PHP:
//.....
require_once "phpmailler/class.phpmailer.php";//richiamo la classe
$messaggio = new PHPmailer();//la instanzio poi riempio tutti i suoi parametri che mi servono
//il nome della variabile $messaggio  può essere qualsiasi es $pinco_pallo, basto poi usare quello
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
dove va' messa questa classe ?!?!? è questo che non capisco fondamentalemtene ...

Devo metterla nel mio script !?!?!

oppure devo metterla da qualche altra parte .. ?!?!

io se apro cio che ho szippato trovo 4 cartelle con scritto ..

config docs js lib ....
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
cosa hai scaricato? non c'è quella roba.
comunque la classe, che non è altro che un file php, deve essere messa in una cartella (che come detto io ho chiamto per semplicità phpmailler).
nello zip di sorgeforce dovresti trovare i seguenti file
class.phpmailer.php
class.smtp.php (che serve se usi per spedire SMTP)
e una cartella per la scelta delle lingue
language
tutti i file sopra e la cartella li metti dentro la cartella phpmailler
ora ti faccio lo zip e poi lo posto
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
ecco perchè non funzionava ...

io l'ho scaricato almeno 5 volte ma ho sempre trovato quelle 4 cartelle che ti ho detto ..

dai dai se puoi postami lo zip cosi sicuramente il tutto diventa più facile ....
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco lo zip
scaricalo e mettilo nella cartella dove hai form e dizzippalo (si forma gia la cartella phpmailler)
 

Allegati

  • phpmailler.zip
    32,4 KB · Visite: 265

searedone

Utente Attivo
11 Giu 2010
508
0
0
ok fatto .. mi ha creato una cartella phpmailer, con all'interno un'altra cartella phpmailer e i file che tu mi dicevi ....

ora che devo devo scrivere quello che mi hai postato prima dentro a class.phpmailer.php
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
dimmi cosa sbaglio se puoi ....

dimmi cosa sbaglio se puoi ,.. sto impazzendo , ormai è diventata una questione di principio ...

allora ho scaricato il file ..

e quindi ho una cartella con phpmailer/(all'interno class.phpmailer.php smtp... e language ...

a me serve solo class.phpmailer.php...

ora quindi il percorso è : phpmailer/class.phpmailer.php e quindi :

all'interno ( scusa l'ignoranza del solito script php che dovrebbe generare il tutto es tipo quello che avevo postato ho messo

include("phpmailer/class.phpmailer.php");

ma forse una cosa che non capisco è proprio questa )

andando per ordine...

carico sul server la cartella phpmailer con all'interno class.phpmailer.php , aggiungo al mio script include("phpmailer/class.phpmailer.php");

nel form creato in html , nell action =" ( metto es stefano.php )

lancio la pagina di prova si apre il form scrivo all'interno i dati invio , genera la url miosito/prova/stefano.php ma ho mi da pagina bianca o mi da erroe...

Ma in ogni caso la mail non arriva ... ;( che cavolo sbaglio ... scusami se ti rompo ma ormai è più forte di me , ho letto duemila tutor ma tutti scrivono la stessa cosa nessuno ha fatto una vera e propria guida che spiega passo passo che cavolo e dove bisogna mettere tutto .....

qual'è il passaggio errato ?!?!?!?
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
deve essere successo qualcosa: è saltato il mio post dove ti spiegavo (non lo vedo più)
intanto alcune cose, non ti conviene fare due pagine una col form e una con l'invio, ma una stessa pagina.
se hai pazienza domattina riprova a riinviare il tutto
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Saresti davvero cosi gentile ....

Magari grazie milleeeee ... Se nn e' un problema ricordati che mi serve almeno un allegato ... Poi il form eventualmente provo ad ampliarlo io con i campi che mi servono e se nn capisco ti chiedo .. Pero' l'allegato sta diventando un incubo ...

Attendo allora .. Grazie grazie grazie millleeeeee
 
Discussioni simili
Autore Titolo Forum Risposte Data
U PHP bottone per invio mail o ritorno al form PHP 15
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
paloppa [PHP] Invio mail da form dubbio PHP 17
F Form mail php errore invio PHP 5
I form invio mail HTML e CSS 1
Francesco Polese Errore form invio mail+php PHP 22
P invio mail da form con dati php PHP 7
W Estrapolare un indirizzo mail di un form durante l'invio PHP 5
I invio mail da form PHP 1
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
Il Matta Problema Form e invio mail PHP 2
B Problema form mail per invio doppio allegato PHP 1
A Problema orario invio mail per form PHP 4
S php form invio mail PHP 3
L Form con invio mail PHP 1
E Form invio e-mail con allegato PHP 51
E Form invio e-mail con allegato PHP 0
N Form invio Mail con Allegato PHP 2
C problema invio mail con form php PHP 0
T form per invio mail PHP 38
R [Flash] redirect dopo invio form mail Flash 4
P Form per invio mail PHP 27
G Invio Dati Form ad E-Mail PHP 1
P aggiunta modulo invio allegati a form mail PHP 15
S Problema invio mail da form Classic ASP 6
Z form invio mail, scelta destinatari PHP 0
S form invio mail con opzioni PHP 3
B Invio tramite form mail di più allegati PHP 0
T Invio mail da form contatti con annesso file attachment Classic ASP 1
L Problemi con invio form via mail Classic ASP 3
F script asp invio mail con dati di un form Classic ASP 3
S problemi invio dati da un form a e.mail HTML e CSS 1
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
S Invio email da form PHP 8
A [PHP] Invio automatico dati da form PHP 6
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
R [javascript]Form invio preventivo Javascript 0
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
S Problema invio form php/html PHP 3
Samuele Ronzani [PHP] Validazione e invio campi form. PHP 7
Matteo Lorenzon [PHP][WORDPRESS] Form in Wordpress, creazione PDF con dati del form ed invio tramite email WordPress 1
Marco_88 Passare un valore prima dell'invio del form Ajax 0
P PHP mailer invio form con 2 allegati. PHP 3
G Form invio multiplo da database PHP 0
C Come posso integrare il bottone "paga adesso" di paypal e un form php per invio dati? PHP 1

Discussioni simili