Stampare div uno sotto l'altro come nei forum

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
ciao
si, se vuoi che sia letto come html5.
quasi tutti i tag di html4 vanno bene anche con html5, con l'esclisione di qualcuno es <frame>
 
cioa
no non servono più.
scusa ma ho fatto un erroretto mi sono dimenticato di togliere l'apice
<!DOCTYPE html>

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

No, la mail non deve essere obbligatoria, semplicemente se il campo è vuoto deve arrivarmi con la mia mail.

Però ne vale la pena? anche se arrivano con scritto Apache, cambia qualcosa?
 
ciao
il controllo c'è
PHP:
<?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

http://gruppoalveo.altervista.org/successi.php
 
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.

ora guardo
 
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.

ora guardo
Appunto, se quelli obbligatori sono vuoti, non parte
 
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

PHP:
$messaggioS = str_replace("\n","",$messaggioS);
  
$messaggioS = nl2br($messaggioS);
 
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
PHP:
$mess_da_ins=$nome."|".$citta."|".$email."|".$messaggio."\n";

relativamente alla modifica del file devi stare attento a non introdurre \n es.
mettiamo che tu voglia correggere la riga
sabato 10 novembre 2012 - 15:11:48 GMT+0100 (CET)|Benessere|Ciao,come va?|Piero|Bologna|xxx@mm.vv|::1|
in modo che a video il "come va?" venga su un'altra riga non devi correggere in
sabato 10 novembre 2012 - 15:11:48 GMT+0100 (CET)|Benessere|Ciao,
come va?|Piero|Bologna|xxx@mm.vv|::1|
facendo così introduci un \n, ma proprio scrivere <br> o <br /> cioè
sabato 10 novembre 2012 - 15:11:48 GMT+0100 (CET)|Benessere|Ciao,<br>come va?|Piero|Bologna|xxx@mm.vv|::1|

p.s.
domanda come mai la stringa termina con | ? non dovrebbe esserci
 
Quella barretta dopo l'ip non è niente era in locale, ho lasciato solo $messaggioS = nl2br($messaggioS);


sballano i box e nel file messaggi.html stampa questo

sabato 10 novembre 2012 - 17:38:37 GMT+0100 (CET)|Ottimo|Sto benissimo,<br />
<br />
provalo anche tu!|Piero|Bologna||95.224.174.122|<img src="http://gruppoalveo.altervista.org/ip_flags/flags/IT.gif" width="16" height="12" alt="Italy" title="Italy" />
 
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&agrave ".$riga['citta']. " - ".$riga['email']."<br />";
		echo nl2br($riga['citta']);//senza preuccuparsi del /n di fine record
		echo "</div>";
	}
}
//...
?>
ancora più semplice l'inserimento
PHP:
<?php
//......
	$nome=$_POST['nome'];
    $citta=$_POST['citta'];
    $email=$_POST['email'];
    $mess=$_POST['messaggio'];
	$query="(INSERT INTO tabella_messaggi(data, nome, citta, email, messaggio) VALUES('$data',$none','$citta','$email','$mess')";
	mysql_query($query);
	//.....
?>
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
 

Discussioni simili