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 30-09-10, 18:16   #76 (permalink)
User Newbie
 
Data di registrazione: Sep 2010
Messaggi: 3
Si lo avevo gia fatto ma niente..
ippocampo77 non in linea   Rispondi citando
Vecchio 01-10-10, 10:10   #77 (permalink)
User Newbie
 
Data di registrazione: Sep 2010
Messaggi: 3
Niente io ho fatto altre prove ma non mi arrivano le email anche se non da nesun errore.....
ippocampo77 non in linea   Rispondi citando
Vecchio 02-10-10, 14:44   #78 (permalink)
User
 
Data di registrazione: Nov 2009
Messaggi: 23
Salve,

avrei un errore nel mio modulo email, funziona tutto ok. Tranne che per una cosa: nella mail (es. gmail) appare "\r\n" al posto dell'a capo e riga vuota. Perchè?

Il codice che utilizzo è:

Codice PHP:
<?php
//la funzione date("H:i:s", mktime(date("H"),date("i, s, m, d, Y"))) restituisce l'ora locale
$ora=date("H:i:s"mktime(date("H"),date("i, s, m, d, Y")));

$data =(date("d-m-y"));

if(
get_magic_quotes_gpc()){
    
$ora=stripslashes($ora);
    
$data=stripslashes($data);
    
$nome=stripslashes($nome);
    
$email=stripslashes($email);
    
$sitoweb=stripslashes($sitoweb);            
    
$messaggio=stripslashes($messaggio);
}    
    
$ora=mysql_real_escape_string($ora);
    
$data=mysql_real_escape_string($data);
    
$nome=mysql_real_escape_string($nome);
    
$email=mysql_real_escape_string($email);
    
$sitoweb=mysql_real_escape_string($sitoweb);            
    
$messaggio=mysql_real_escape_string($messaggio);

if(
$sitoweb=="Nessun sito web inserito"){
    
$sitoweb="(hai scelto di non inserire un sito web)";
}


$messaggioutente="Congratulazioni: sergiopinna.it ha ricevuto correttamente il suo messaggio!"."<br />"."La presente è una copia del messaggio pervenutaci."."<br />"."<small>"."(email di risposta automatica: *non* è necessario rispondere)"."</small>"."<br /><br />";
$messaggioutente=$messaggioutente."I dati da lei inseriti sono:"."<br />";
$messaggioutente=$messaggioutente."<span style=\"font-weight:bold;\">il giorno</span>: ".$data."<br />";
$messaggioutente=$messaggioutente."<span style=\"font-weight:bold;\">alle</span>: ".$ora."<br />";
$messaggioutente=$messaggioutente."<span style=\"font-weight:bold;\">si è presentata come</span>: ".$nome."<br />";
$messaggioutente=$messaggioutente."<span style=\"font-weight:bold;\">inserendo l'indirizzo email</span>: ".$email."<br />";
$messaggioutente=$messaggioutente."<span style=\"font-weight:bold;\">ed il sito web</span>: ".$sitoweb."<br />";
$messaggioutente=$messaggioutente."<span style=\"font-weight:bold;\">il testo del suo messaggio è stato</span>: ".$messaggio;


$headers=array();
$headers[]='MIME-Version: 1.0';
$headers[]='Content-type: text/html; charset=UTF-8';
$headers[]='Content-Transfer-Encoding: 7bit';
$headers[]='From: '$nome;

if(!empty(
$ora)&&!empty($data)&&!empty($nome)&&!empty($email)&&!empty($sitoweb)&&!empty($messaggio)){
    
mail($email"sergiopinna.it ha ricevuto il tuo messaggio"$messaggioutentejoin("\r\n"$headers));
}

header"location:  contacts.php?okmessaggio=true"); 
exit(
0); 
?>
e come output ho:
ora: 23:41:04
data: 28-09-10
nome: Mario Rossi
email: mariorossi@mariorossi.it
sito web: Nessun sito web inserito
messaggio: Grande Sergio!!! Hai fatto un gran bel sito internet!!\r\nA presto\r\nMario
Come vedete appare \r\n: perchè?
sergejp non in linea   Rispondi citando
Vecchio 18-12-10, 13:02   #79 (permalink)
User
 
L'avatar di Gnaz2104
 
Data di registrazione: Nov 2010
Ubicazione: Como
Messaggi: 32
Invia un messaggio tramite Skype a Gnaz2104
Salve ragazzi,

Rimetto in vita questo thread perchè avrei bisogno del vostro aiuto\supporto per la creazione di un form per l'invio di e-mail direttamente dal mio sito internet.

Ho letto più volte questa discussione e implementato il codice suggerito nel 1° post, ma non riesco a venir comunque a capo del problema.

Sul mio sito, che per questioni di regolamento mi sa che non posso linkarvi (anche se sto effettuando i test in una cartella a se stante prima di metterli direttamente nelle pagine html che mi interessano) ho provato diverse soluzioni ma nessuna ha dato frutti.

Provo a spiegarvi in maniera chiara i miei procedimenti sperando che voi, sicuramente più pratici in materie, riusciate a darmi una mano.

Tutti i tentativi hanno una base comune: Un file .html in cui inserisco il form fra i tag body e in un div che ne da la forma, e un file .php dove metto direttamente il codice php suggerito. Entrambi i file sono nella stessa root.

Test 1:

Form nel file html
Quote:
<div id="formposta">
<form method="post" action="send.php" name="modulo">
Nome e cognome:
<input type="text" name="nome" size="30">
Indirizzo e-mail:
<input type="text" name="email" size="30">

Testo del messaggio:
<textarea rows="10" cols="30" name="messaggio">
</textarea>
<input type="submit" value="Invia">
<input type="reset" value="Cancella">
</form>
</div>
File php associato: send.php, contenuto:
Quote:
<?PHP
// Processo di recupero dei dati
$nome = $_POST['nome'];
$email = $_POST['email'];
$messaggio = nl2br($_POST['messaggio']);
// Processo di controllo [Opzionale]
if ($nome == null)
{
print "Errore: &egrave; necessario compilare il campo 'Nome e cognome'";
}
else
{
if ($email == null)
{
print "Errore: &egrave; necessario compilare il campo 'Indirizzo e-mail'";
}
else
{
if ($messaggio == null)
{
print "Errore: &egrave; necessario compilare il campo 'Messaggio'";
}
else
{
// Processo di configurazione dell'email
// [Destinatario, mittente, ecc]
$mail_to = "lamiamail";
$mail_from = $email;
$mail_subject = "Contatto dal sito web da parte di $nome";
$mail_body = "<p><font color=#000000>$messaggio</font></p>";
// Intestazioni HTML
$mail_in_html = "MIME-Version: 1.0";
$mail_in_html .= "Content-type: text/html; charset=iso-8859-1";
$mail_in_html .= "From: <$mail_from>";
// Processo di invio
if (mail($mail_to, $mail_subject, $mail_body, $mail_in_html))
{
print "Email inviata con successo!";
}
else
{
print "Errore";
}
}
}
}
?>
Dopo avermi dato l'errore per l'invio della mail mi esce questa stringa:
ErrorePHP Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\WebSites\miosito.com\mytest\send.php on line 36

Test 2: ( suggeimento di ludus in prima pagina)Form nell'html:
Quote:
<form method="post" action="send2.php">
<input type="hidden" name="require" value="email,nome_e_cognome">
<input type="hidden" name="contenitore" value="info@danieleimperi.it">
<input type="hidden" name="invia_Dati" value="REMOTE_HOST,HTTP_USER_AGENT">
</form>
File php associato send2.php:
Quote:
<?
##############################
if (!ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobals, $_SESSION);
}
foreach ($superglobals as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
##############################
/*
formail completo, è possibile aggiungere qualunque campo
è sufficiente inserire le due pagine in un punto qualunque
del proprio dominio.
by linkbruttocane
*/

//INIZIO PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/************************************************** **************************************/
// Il parametro $delay indica i secondi di ritardo impiegati
// a riportare l'utente all'home page dopo che abbia
// compilato correttamente il modulo

$delay = "3";

// Il parametro $url indica la pagina alla quale si viene
// rimandati una volta compilato correttamente il modulo
// io ho messo una homepage, ma potrebbe essere qualunque altra pagina

$url = "miositolink";

// Il parametro $provenienza indica le possibili provenienze dei dati: indicare
// il proprio dominio nella forma mostrata dall'esempio

$provenienza = array ('miosito','miosito');

// Il parametro $esclusioni vi permette di NON consentire
// messaggi da un indirizzo mail specificato
// sia appartenente ad un dominio, ovvero
// 'tutte le mail che appartengono ad un dominio'
// od anche a singoli account

$esclusioni = array ('*@quellochetipare.com', 'nomechetipare@dominio.com', 'altro@dominio.com');


//FINE PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/************************************************** **************************************/

$versione_form = "stabile";

function print_error($reason,$type = 0) {
global $versione_form;
build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
if ($type == "missing") {
?>

<body bgcolor='#ffffff'>
<p align='center'><font face='Verdana, Arial' color='#000000' size='2'>Il modulo non è
stato inviato per le seguenti ragioni</font></p>

<p align='center'><font face='Verdana, Arial' size='2' color='#000000'>
<?
echo $reason."\n";
?>
</font>
<p align='center'><font face='Verdana, Arial' size='2' color='#000000'>Premere indietro
nel browser e riprovare.</font></p><?
} else { // every other error
?>
Il modulo non è stato inviato per le seguenti ragioni:<p align='center'>
<?
}
echo "

\n";

exit;
}


function check_banlist($esclusioni, $email) {
if (count($esclusioni)) {
$allow = true;
foreach($esclusioni as $banned) {
$temp = explode("@", $banned);
if ($temp[0] == "*") {
$temp2 = explode("@", $email);
if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
$allow = false;
} else {
if (trim(strtolower($email)) == trim(strtolower($banned)))
$allow = false;
}
}
}
if (!$allow) {
print_error("Stai usando un indirizzo email escluso.");
}
}


function check_referer($provenienza) {
if (count($provenienza)) {
$found = false;
$temp = explode("/",getenv("HTTP_REFERER"));
$referer = $temp[2];
for ($x=0; $x < count($provenienza); $x++) {
if (eregi ($provenienza[$x], $referer)) {
$found = true;
}
}
if (!getenv("HTTP_REFERER"))
$found = false;
if (!$found){
print_error("Provieni da un dominio non autorizzato.");
error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
}
return $found;
} else {
return true; //
}
}
if ($provenienza)
check_referer($provenienza);

if ($esclusioni)
check_banlist($esclusioni, $email);


function parse_form($array) {
// build reserved keyword array
$reserved_keys[] = "required";
$reserved_keys[] = "redirect";
$reserved_keys[] = "email";
$reserved_keys[] = "require";
$reserved_keys[] = "contenitore";
$reserved_keys[] = "titolo";
$reserved_keys[] = "bgcolor";
$reserved_keys[] = "text_color";
$reserved_keys[] = "link_color";
$reserved_keys[] = "vlink_color";
$reserved_keys[] = "alink_color";
$reserved_keys[] = "title";
$reserved_keys[] = "missing_fields_redirect";
$reserved_keys[] = "invia_Dati";
if (count($array)) {
while (list($key, $val) = each($array)) {

$reserved_violation = 0;
for ($ri=0; $ri<count($reserved_keys); $ri++) {
if ($key == $reserved_keys[$ri]) {
$reserved_violation = 1;
}
}

if ($reserved_violation != 1) {
if (is_array($val)) {
for ($z=0;$z<count($val);$z++) {
$content .= "$key: $val[$z]\n";
}
} else {
$content .= "$key: $val\n";
}
}
}
}
return $content;
}


function mail_it($content, $titolo, $email, $contenitore) {
mail($contenitore, $titolo, $content, "From: $email\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
}


function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
if ($style_sheet)
echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
if ($title)
echo "<title>$title</title>\n";
if (!$bgcolor)
$bgcolor = "#ffffff";
if (!$text_color)
$text_color = "#80000";
if (!$link_color)
$link_color = "#0066cc";
if (!$vlink_color)
$vlink_color = "#0066cc";
if (!$alink_color)
$alink_color = "#cc3300";
if ($background)
$background = "background=\"$background\"";
echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
}

$contenitore_finale = split(',',$contenitore);
for ($i=0;$i<count($contenitore_finale);$i++) {
$contenitore_to_test = trim($contenitore_finale[$i]);
if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$", $contenitore_to_test)) {
print_error("Occorre un indirizzo email valido per continuare ($contenitore_to_test) ");
}
}


if ($required)
$require = $required;

if ($require) {

$require = ereg_replace( " +", "", $require);
$required = split(",",$require);
for ($i=0;$i<count($required);$i++) {
$string = trim($required[$i]);

if((!(${$string})) || (!(${$string}))) {

if ($missing_fields_redirect) {
header ("Location: $missing_fields_redirect");
exit;
}
$require;
$missing_field_list .= "Non trovato: $required[$i]
\n";
}
}

if ($missing_field_list)
print_error($missing_field_list,"missing");
}


if (($email) || ($EMAIL)) {
$email = trim($email);
if ($EMAIL)
$email = trim($EMAIL);
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
print_error("il suo indirizzo email non è valido");
}
$EMAIL = $email;
}






$content = parse_form($HTTP_POST_VARS);




if ($invia_Dati) {
$invia_Dati = ereg_replace( " +", "", $invia_Dati);
$splitta_Dati = split(",",$invia_Dati);
$content .= "\n------ variabili utente ------\n";
for ($i=0;$i<count($splitta_Dati);$i++) {
$string = trim($splitta_Dati[$i]);
if ($splitta_Dati[$i] == "REMOTE_HOST")
$content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
else if ($splitta_Dati[$i] == "REMOTE_USER")
$content .= "REMOTE USER: ". $REMOTE_USER."\n";
else if ($splitta_Dati[$i] == "REMOTE_ADDR")
$content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
else if ($splitta_Dati[$i] == "HTTP_USER_AGENT")
$content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
}
}


if (!$titolo)
$titolo = "DanieleImperi.it - Contatti dal sito";

mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);


if ($redirect) {
header ("Location: $redirect");
exit;
} else {
print "<body background='img/bg3.gif' bgcolor='#ffffff' style='margin:20'>

<table width='70%' height='247' align='center' cellpadding='10' cellspacing='0' bgcolor='#FFFFFF'>
<tr>
<td valign='top'>
<table width='100%' height='247' border='1' bordercolor='#cccccc' bgcolor='#FFFFFF' cellpadding='4' cellspacing='0'>
<tr>
<td><div align='center'><font face='Verdana, Arial, Helvetica, sans-serif'>
Grazie per avermi contattato!</font></div>
<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif'>Sarete
contattati

appena possibile all'indirizzo da voi inserito

$email</font></div>

<div align='center'>



<font color='#999999' size='2' face='Verdana, Arial, Helvetica, sans-serif'>...Ritorno
automatico alla Home page in corso.... </font></div></td>
<meta http-equiv='refresh' content='$delay; url=$url'>
</tr>
</table>
</td>
</tr>
</table>

</body>
";
echo "

\n";

exit;
}

// <---------- fine ----------> //
?>
Qui non sono riuscito nemmeno ad inserire l'indirizzo e-mail a quale inviare il messaggio, inoltre la pagina html mi compare totalmente bianca e non si vede nulla.

Test 3 (form suggerito da claudioweb)

Form nell'html:
Quote:
<form name="form1" id="form1" method="post" action="mail.php">
Nome</p><input type="text" name="nome" />
</p>Cognome</p><input type="text" name="cognome" />
</p>Email</p><input type="text" name="email" />
</p>Contenuto</p><textarea name="contenuto" cols="50" rows="10"></textarea>
</p><input name="Invia" type="submit" value="Invia" />
</p>
</form>
codice nel file mail.php
Quote:
<?php
// ************Inizio Configurazione***************
//Indirizzo emai a cui inviare i msg
$mailto = "mail a cui inviare";
//Oggetto della mail
$subject = "email dal sito miosito";
//Pagina da mostrare dopo l'invio
$redirect = "urlmiosito";
// ************Fine Configurazione****************


foreach($HTTP_POST_VARS as $key => $value) {

$message .= $key . ': ' . $value;
$message .= "\n";

}
if (@mail($mailto, $subject, $message)) {

header("Location: $redirect");
} else {
// Messaggio in caso di errore
echo('

Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie.</p>');
}
?>
In questo terzo tentativo, qualsiasi sia il modo in cui compili il form, corretto o meno, mi esce sempre la scritta: "Impossibile inviare. Torna nella pagina precedente e prova ancora, grazie."


Ora, il mio desiderio agli albori era quello di creare un form sicuro, per evitare spam ecc, ma arrivato a questo punto, dopo tutti questi tentativi, mi basterebbe solo creare un form funzionante, e che dia la conferma all'utente dell'avvenuto invio o meno con il redirect automatico ad una pagina da me scelta.

Sembrava facile, viste le molteplici proposte sui vari siti internet, tutte basate su un semplice "copia e incolla" ma non lo è stato.
Mi metto pertanto nelle vostre mani e chiedo il vostro supporto.

Scusate per la lunghezza del post, è tutto dovuto al quote dei file
Gnaz2104 non in linea   Rispondi citando
Vecchio 25-02-11, 22:53   #80 (permalink)
User
 
Data di registrazione: Jan 2007
Messaggi: 31
Uso da tempo questo form mail è funziona correttamente, ma quando mi arriva l'email, nel campo mittente appare anonymus@.....aruba.it invece dell'email della persona che mi scrive.

So che dovrei aggiungere questo codice al file mail.php
$header = “from: $nome \n”;

ma non so dove inserirlo.

Qualcuno potrebbe aiutarmi?
__________________
visita il mio sito web www.paesaggioitaliano.eu
lux78 non in linea   Rispondi citando
Vecchio 21-08-11, 14:17   #81 (permalink)
User
 
Data di registrazione: Aug 2011
Ubicazione: Roma
Messaggi: 10
salve a tutti!! ho letto un pò velocemente questo post...e volevo chiedervi se posso applicare il file mail.php al mio template:
è il flash as2,c'è un file txt dove posso modificare alcuni parametri del sito,ma nella sezione email mi ritrovo scritto
Codice:
&mail_file=mail.php&
, il file mail.php non è compreso nel template,ma aprendo il file FLA l'action layer del form ha questo codice:
Codice:
function ckform()
{
    apos = t2.htmlText.indexOf("@");
    dotpos = t2.htmlText.lastIndexOf(".");
    pos = dotpos - apos;
    if (pos > 1)
    {
        tmp = 1;
    } // end if
    if (pos < 2)
    {
        tmp = 0;
    } // end if
    trace (tmp);
    txt2.htmlText = "";
    if (t1.htmlText == "")
    {
        txt2.htmlText = "NAME IS REQUIRED.";
    }
    else if (t2.htmlText == "")
    {
        txt2.htmlText = "";
        txt2.htmlText = "E-MAIL IS REQUIRED.";
    }
    else if (tmp == 0)
    {
        txt2.htmlText = "";
        txt2.htmlText = "WRONG E-MAIL.";
    }
    else if (t3.htmlText == "")
    {
        txt2.htmlText = "";
        txt2.htmlText = "TELEPHONE IS REQUIRED.";
    }
    else if (t4.htmlText == "")
    {
        txt2.htmlText = "";
        txt2.htmlText = "MESSAGE IS REQUIRED.";
    }
    else
    {
        this.loadVariables(_root.mail_file, "POST");
    } // end else if
} // End of the function
function ckfull(textObj)
{
    TextInfo = "EXIT FULL-SCREEN MODE (ESC) TO ENTER TEXT";
    if (Stage["displayState"] == "normal")
    {
        textObj.htmlText = "";
    } // end if
    if (Stage["displayState"] == "fullScreen")
    {
        textObj.htmlText = TextInfo;
    } // end if
} // End of the function
this.onEnterFrame = function ()
{
    this.ckfull(this.txt1);
};



t1.tabIndex = 1;
t2.tabIndex = 2;
t3.tabIndex = 3;
t4.tabIndex = 4;
cosa posso fare?
kisspachyousee non in linea   Rispondi citando
Vecchio 26-01-12, 16:03   #82 (permalink)
User Newbie
 
Data di registrazione: Jan 2012
Ubicazione: torino
Messaggi: 1
Ciao a tutti sono nuovo del forum! volevo chiederti come mai il form contatto mi da problemi, mi viene detto che c'è un errore alla linea 12 ovvero


foreach($HTTP_POST_VARS as $key => $value) {

non ne capisco molto di php, e non riesco a trovare l'errore, le $subject e $object le ho lasciate così come erano...

Datemi una manooo
pa_pasqu 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.