Bene, io direi che ora è tutto a posto, devo sistemare qualche misura delle immagini con questo nuovo !DOCTYPE,
penso abbiamo finito, se vuoi controllare, i js sono disinstallati
Un'ultima cosa poi, ho visto che quando invio il form con il campo mail vuoto, la mail mi arriva, ma al posto del mittente (visto che non c'è), cioè io, c'è scritto Apache, dovrebbe invece arrivarmi DA: con la mia mail; questo invece funziona se il campo mail è pieno $headers1S .= "From:$suoemailS\r\n";
PHP:
$headersS = "MIME-Version: 1.0\r\n";
$headersS .= "content-type: text/html; charset=iso-8859-1\r\n";
$headersS .= "X-Mailer: PHP\n";
$headersS .= "From:Alberti.Alveo<mail@gmail.com>\r\n";
$headers1S = "MIME-Version: 1.0\r\n";
$headers1S .= "content-type: text/html; charset=iso-8859-1\r\n";
$headers1S .= "X-Mailer: PHP\n";
$headers1S .= "From:$suoemailS\r\n";
//Successo del Cliente a me
$aS = "Me<mail@gmail.com>";
$oggettoS = "Successo del Cliente"; //Le mail vanno formattate con HTML
$messaggioMailS = "<html>
...
//Invio della mail
mail($aS,$oggettoS,$messaggioMailS,$headers1S);
ciao
intendi in $headers1S .= "From:$suoemailS\r\n"; se $suoemailS? se è così bisogna soprattutto verificare i controlli, se $suoemailS è vuota (qunidi non sai chi è il mittente e non puoi rispondergli) l'email non dovrebbe partire e dare l'alert che l'indirizzo email è obbligatorio.
verifico
ciao
intendi in $headers1S .= "From:$suoemailS\r\n"; se $suoemailS? se è così bisogna soprattutto verificare i controlli, se $suoemailS è vuota (qunidi non sai chi è il mittente e non puoi rispondergli) l'email non dovrebbe partire e dare l'alert che l'indirizzo email è obbligatorio.
verifico
<?php
//.....
if(!filter_var($suoemailS, FILTER_VALIDATE_EMAIL)){
$errori.="indirizzo email non corretto o non inserito<br>";
}else{
$_SESSION['suoemailS'] = $_POST['suoemailS'];
}
//.....
?>
hai messo l'invio dell'email fuori dall'if($errori==""){.....} ?
i controlli non dovrebbero servire solo per verificare il messaggio da visualizzare, ma che tutti i dati richiesti siano giusti.
ti conviene inserire tutto l'ambaradan dell'invio
PHP:
<?php
//......
else {
file_put_contents('messaggi.html', $mess_da_ins);
}
//QUI.........................................
$headersS = "MIME-Version: 1.0\r\n";
$headersS .= "content-type: text/html; charset=iso-8859-1\r\n";
$headersS .= "X-Mailer: PHP\n";
$headersS .= "From:Alberti.Alveo<mail@gmail.com>\r\n";
$headers1S = "MIME-Version: 1.0\r\n";
$headers1S .= "content-type: text/html; charset=iso-8859-1\r\n";
$headers1S .= "X-Mailer: PHP\n";
$headers1S .= "From:$suoemailS\r\n";
//Successo del Cliente a me
$aS = "Me<mail@gmail.com>";
$oggettoS = "Successo del Cliente"; //Le mail vanno formattate con HTML
$messaggioMailS = "<html>";//immagino che qui tu abbia dell'altro
//...
//Invio della mail
mail($aS,$oggettoS,$messaggioMailS,$headers1S);
session_destroy();
echo "<meta http-equiv='REFRESH' content='0; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
//......
?>
poi può succedere che per motivi di linea o server l'email non venga inviata, quindi ti conviene sostituire
mail($aS,$oggettoS,$messaggioMailS,$headers1S);
con
PHP:
<?php
//...
//Invio della mail
if(mail($aS,$oggettoS,$messaggioMailS,$headers1S)){//invio e verifica
session_destroy();
echo "email inviata con successo";//potresti usare per il div la stessa classe dell'alert
}else{
echo "c'è stato un errore di trasmissione, riprova più tardi";//potresti usare per il div la stessa classe dell'alert
}
//e modificare il tempo di attesa da zero a tre per visualizzare il messaggio di avviso
echo "<meta http-equiv='REFRESH' content='3; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
//......
?>
Aspetta un attimo, qui stiamo complicando, così com'è funziona perfettamente, l'unico capriccio era che mi arriva con scritto Apache, ma forse va bene anche così, dopotutto arriva a me quel tipo di mail.
Puoi provare il form e vedrai che escono gli alert php se i campi obbligatori sono vuoti
ciao
secondo me sarebbe meglio che se i campi non sono tutti correttamente inviati l'email non parta anche perche potrebbero mandarti un messaggio vuoto o mittente sconosciuto allora come fai a ricontattare che eventualmete ti ha scritto? comunque è una tua scelta.
ciao
secondo me sarebbe meglio che se i campi non sono tutti correttamente inviati l'email non parta anche perche potrebbero mandarti un messaggio vuoto o mittente sconosciuto allora come fai a ricontattare che eventualmete ti ha scritto? comunque è una tua scelta.
Borgo Italia, scusa se ti disturbo ancora, ma ho notato un problema: quando entro nel file messaggi.html trovo stampato ciò che era scritto nei post, es.
sabato 10 novembre 2012 - 15:11:48 GMT+0100 (CET)|Benessere|Ciao,<br />
<br />
come va?|Piero|Bologna|xxx@mm.vv|::1|
a video ovviamente è stampato giusto, se però modifico qualche parola in questo file e lo salvo, poi a video si ripresentano i famosi box doppi o tripli.
Se invece nel form scrivo in linea senza andare a capo col tasto Invio, posso modificare il file messaggi.html che non fa sballare niente
come controlli ho questi, li devo per forza tenere entrambi altrimenti si moltiplicano i box se premo Invio
ciao
il problema è che interpreta \n come fine della riga quindi se lo trova a metà messaggio per php è un fine riga.
prova una cosa
usa solo l'istruzione
PHP:
$messaggioS = nl2br($messaggioS);
questa istruzione trasforma tutti i \n in <br> quindi "dovrebbe" eliminare il problema.
se guardi la parte di script che inserisce (a parte le variabili che sono state modificate) vedi che comunque il \n di fine riga viene inserito
ciao
ho dato un occhio, ma mi risulta un po' ostico sistemare.
proprio non riesci a passare a mysql? ti toglieresti un sacco di grane e acquisteresti facilità per leggere/inserire/eliminare/uppare/cercare.
ti faccio un esempio guarda quello che ti avevo postato al #15 e vedi sotto con con che facilità si risolve (non ho usato i tuoi dati, ma è lo stesso)
PHP:
<?php
require_once "connessione.php"; //un file con i dati di connessione al db
$query="SELECT * FROM tabella_messaggi ORDER BY data LIMIT 20";
$risultato=mysql_query($query);
if(mysql_num_rows($risultato == 0){
echo echo "<div class=\"me\">non ci sono messaggi</div>";
}else{
while($riga=mysql_fetch_array($risultato)){
echo "<div class=\"me\">";
echo $riga['nome']. " - città ".$riga['citta']. " - ".$riga['email']."<br />";
echo nl2br($riga['citta']);//senza preuccuparsi del /n di fine record
echo "</div>";
}
}
//...
?>
senza contare che la tabella stessa diventa archivio di tutti i messaggi che ti inviano e/o inserire una paginazione dei messaggi
(io ho messo LIMIT 20) ma si può fare in modo che si possano vedere 20 messaggi alla volta (dall'ultimo al primo).
p.s.
non so che server locale tu utilizzi per vedere le pag php, ma molto probabilmente ha il db mysql abbinato.
comunque sono qui per darti una mano