Stampare div uno sotto l'altro come nei forum

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Ho un form con i codici nella stessa pagina che stampa i valori inseriti nei campi, se però invio di nuovo il form con nuovi dati, invece di creare un nuovo div mi sostituisce i dati che c'erano prima nello stessso div

PHP:
//codice per nome
          ...

//codice per città
  ...

// codice per mail
   ...

//codice per messaggio
if($messaggio == "") {
echo "Ciao";
}

..........

<div class="stampaS">
<?php echo $nome ?><?php echo $citta ?><?php echo $mail ?><?php echo $messaggio ?>
</div>
img01p.png
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a guardare quest'idea (se giosti con i css sistemi meglio)
PHP:
<?php
session_start();
if(isset($_POST['invia'])){
	$mess=$_POST['messaggio'];
	if(isset($_SESSION['messaggio'])){
		$_SESSION['messaggio'] .="<div class=\"me\">$mess</div><br />";
		echo $_SESSION['messaggio'];
	}else{
		$_SESSION['messaggio']="<div class=\"me\">$mess</div><br />";
	}
	echo "<div class=\"me1\">ultimo inviato: $mess</div><br />";
}
?>
<style type="text/css">
.me{
width:80%;
left:0px;
float:left;
clear:right left;
background-color:#666666;}
.me1{
width:80%;
left:0px;
float:left;
clear:right left;
background-color:#CCCCCC;
font-weight:bold;}
.p{
width:80%;
left:0px;
float:left;
clear:right left;
}

</style>
<div class="p">
<form action="#" method="post">
    <input name="messaggio" type="text"><br />
    <input name="invia" type="submit" id="invia" value="invia">
</form>
</div>
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
prova a guardare quest'idea (se giosti con i css sistemi meglio)
PHP:
<?php
session_start();
if(isset($_POST['invia'])){
	$mess=$_POST['messaggio'];
	if(isset($_SESSION['messaggio'])){
		$_SESSION['messaggio'] .="<div class=\"me\">$mess</div><br />";
		echo $_SESSION['messaggio'];
	}else{
		$_SESSION['messaggio']="<div class=\"me\">$mess</div><br />";
	}
	echo "<div class=\"me1\">ultimo inviato: $mess</div><br />";
}
?>
<style type="text/css">
.me{
width:80%;
left:0px;
float:left;
clear:right left;
background-color:#666666;}
.me1{
width:80%;
left:0px;
float:left;
clear:right left;
background-color:#CCCCCC;
font-weight:bold;}
.p{
width:80%;
left:0px;
float:left;
clear:right left;
}

</style>
<div class="p">
<form action="#" method="post">
    <input name="messaggio" type="text"><br />
    <input name="invia" type="submit" id="invia" value="invia">
</form>
</div>

Ci vorrebbe anche un codice che crea un db in versione testo o html
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
devi lavorare con mysql.
per prima cosa devi farti una tabella per archiviare i messaggi (es)
id int(12) autoincrement primarykey
data int(15)// data inserimento messaggio meglio in timestamp
nome varchar(40)
citta varchar(40)
email varchar(60)
messaggio text//qui dipende da quanto lunghi sono i messaggi
o simile (sei tu che devi sapere cosa ricordare)
quando dai il submit fai l'insert nella tabella
e subito sotto estrai e visualizzi i dati in ordine di data di inserimento e con o senza un limit (es puoi far vedere gli ultimi 5, dipende dallo spazio disponibile che hai)

prova a buttare giù qualcosa che (con calma) ci diamo un occhio
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
devi lavorare con mysql.
per prima cosa devi farti una tabella per archiviare i messaggi (es)

o simile (sei tu che devi sapere cosa ricordare)
quando dai il submit fai l'insert nella tabella
e subito sotto estrai e visualizzi i dati in ordine di data di inserimento e con o senza un limit (es puoi far vedere gli ultimi 5, dipende dallo spazio disponibile che hai)

prova a buttare giù qualcosa che (con calma) ci diamo un occhio
Non so proprio usare il db, io ho visto codice che crea un file.html e lo usa come db, è semplice, una cosa del genere
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
prova a guardare quest'idea (se giosti con i css sistemi meglio)
PHP:
<?php
session_start();
if(isset($_POST['invia'])){
	$mess=$_POST['messaggio'];
	if(isset($_SESSION['messaggio'])){
		$_SESSION['messaggio'] .="<div class=\"me\">$mess</div><br />";
		echo $_SESSION['messaggio'];
	}else{
		$_SESSION['messaggio']="<div class=\"me\">$mess</div><br />";
	}
	echo "<div class=\"me1\">ultimo inviato: $mess</div><br />";
}
?>
<style type="text/css">
.me{
width:80%;
left:0px;
float:left;
clear:right left;
background-color:#666666;}
.me1{
width:80%;
left:0px;
float:left;
clear:right left;
background-color:#CCCCCC;
font-weight:bold;}
.p{
width:80%;
left:0px;
float:left;
clear:right left;
}

</style>
<div class="p">
<form action="#" method="post">
    <input name="messaggio" type="text"><br />
    <input name="invia" type="submit" id="invia" value="invia">
</form>
</div>
Questo codice funziona nel mio file di prova, ma non funziona nella pagina del mi form, quella che invia a se stessa, forse perché durante l'ivi o del form la pagina si aggiorna perciò azzera tutto ciò che ha stampato il tuo codice.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non dovrebbe azzerarsi, le sessioni servono propio a quello (ti sei dimenticato forse qualcosa).
comunque se hai pazienza provo a buttarti giu qualcosa con i file txt
 

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
se non sei pratico su come gestire un database ti conviene usare phpmyadmin, o altri similari, comunque fai conto che per utilizzare un db almeno io uso xaamp in locale mentre sui siti ci sono server con programmi e interfacce apposta per usare i db senza dover conoscere linguaggi quali sql etc..
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
se non sei pratico su come gestire un database ti conviene usare phpmyadmin, o altri similari, comunque fai conto che per utilizzare un db almeno io uso xaamp in locale mentre sui siti ci sono server con programmi e interfacce apposta per usare i db senza dover conoscere linguaggi quali sql etc..
In locale uso MAMP per Mac, per la mia situazione va benissimo un file di testo come DB, se vedi il mio Guestbook ha un file.html come db e mi va benissimo, solo che i codici del guestbook non riesco a metterli e farli funzionare in questa nuova pagina.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova questo, salva i messaggi in un file txt e lo mostra.
guarda però che è uno schema che devi adattare alle tue esigenze e, comunque, prima provalo può essere che mi sia scappatp qualche erroretto
PHP:
<style type="text/css">
.me{
display:block;
width:80%;
left:0px;
float:left;
clear:right;
margin-bottom:4px;
background-color:#666666;}
.me1{
width:80%;
left:0px;
float:left;
clear:right left;
}
</style>
<?php
if(file_exists('messaggi.txt')){//se serve mettere il percorso
	$righe_mess = file('messaggi.txt');//ritorna un array con le righe del file
		if(is_array($righe_mess)){
			foreach($righe_mess as $num_riga => $testo_riga){
				$testi=explode("|",$testo_riga);//in $testi[0] nome, $testi[1] citta, $testi[2] email, $testi[3] messaggio
				if($testi[0] !=""){
					echo "<div class=\"me\">";
					echo $testi[0]." citt&agrave;: ".$testi[1]." ".$testi[2]."<br />";
					echo $testi[3]."</div>";
				}
			}
		}
}
if(isset($_POST['invia'])){
    //poi ci vorranno tutti i controlli sui post
	$nome=$_POST['nome'];
	$citta=$_POST['citta'];
	$email=$_POST['email'];
	$mess=$_POST['messaggio'];
	$mess_da_ins=$nome."|".$citta."|".$email."|".$messaggio."\n";
	$mess_ultimo=5;//numero di messaggi massimo da visualizzare
	if(file_exists('messaggi.txt')){
		$righe = file('messaggi.txt');
		$quante=count($righe);
		if($quante==0){//il file messaggi.txt esiste ma è vuoto
			$inserire=$mess_da_ins;
		}elseif($quante == 1){//esiste una sola riga
			$inserire=$righe[0].$mess_da_ins;
		}elseif($quante > 1){
			if($quante < $mess_ultimo){
				$righe[$quante]=$mess_da_ins;
			}else{
				//sposto in su i messaggi (in pratica elimino il più vcchio)
				for($k= 0; $k< ($quante-1);$k++){
					$j=$k+1;
					$righe[$k]=$righe[$j];
				}
			$righe[$mess_ultimo]=$mess_da_ins;//e aggiungo l'ultimo
			}
			foreach($righe as $ch => $testo){//preparo la stringa da salvare
				$inserire.=$testo;
			}
		}
		file_put_contents('messaggi.txt', $inserire);
	}else{
		file_put_contents('messaggi.txt', $mess_da_ins);
	}
	/* ******************************
	qui tutta la parte che serve a te
	******************************* */
	echo "<meta http-equiv='Refresh' content='0; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
<div class="me1">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
    <input name="nome" type="text"><br />
	<input name="citta" type="text"><br />
	<input name="email" type="text"><br />
	<input name="messaggio" type="text"><br />
    <input name="invia" type="submit" id="invia" value="invia">
</form>
</div>
<?php
}
?>
certo con mysql sarebbe tutto molto più semplice
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
prova questo, salva i messaggi in un file txt e lo mostra.
guarda però che è uno schema che devi adattare alle tue esigenze e, comunque, prima provalo può essere che mi sia scappatp qualche erroretto
PHP:
<style type="text/css">
.me{
display:block;
width:80%;
left:0px;
float:left;
clear:right;
margin-bottom:4px;
background-color:#666666;}
.me1{
width:80%;
left:0px;
float:left;
clear:right left;
}
</style>
<?php
if(file_exists('messaggi.txt')){//se serve mettere il percorso
	$righe_mess = file('messaggi.txt');//ritorna un array con le righe del file
		if(is_array($righe_mess)){
			foreach($righe_mess as $num_riga => $testo_riga){
				$testi=explode("|",$testo_riga);//in $testi[0] nome, $testi[1] citta, $testi[2] email, $testi[3] messaggio
				if($testi[0] !=""){
					echo "<div class=\"me\">";
					echo $testi[0]." citt&agrave;: ".$testi[1]." ".$testi[2]."<br />";
					echo $testi[3]."</div>";
				}
			}
		}
}
if(isset($_POST['invia'])){
    //poi ci vorranno tutti i controlli sui post
	$nome=$_POST['nome'];
	$citta=$_POST['citta'];
	$email=$_POST['email'];
	$mess=$_POST['messaggio'];
	$mess_da_ins=$nome."|".$citta."|".$email."|".$messaggio."\n";
	$mess_ultimo=5;//numero di messaggi massimo da visualizzare
	if(file_exists('messaggi.txt')){
		$righe = file('messaggi.txt');
		$quante=count($righe);
		if($quante==0){//il file messaggi.txt esiste ma è vuoto
			$inserire=$mess_da_ins;
		}elseif($quante == 1){//esiste una sola riga
			$inserire=$righe[0].$mess_da_ins;
		}elseif($quante > 1){
			if($quante < $mess_ultimo){
				$righe[$quante]=$mess_da_ins;
			}else{
				//sposto in su i messaggi (in pratica elimino il più vcchio)
				for($k= 0; $k< ($quante-1);$k++){
					$j=$k+1;
					$righe[$k]=$righe[$j];
				}
			$righe[$mess_ultimo]=$mess_da_ins;//e aggiungo l'ultimo
			}
			foreach($righe as $ch => $testo){//preparo la stringa da salvare
				$inserire.=$testo;
			}
		}
		file_put_contents('messaggi.txt', $inserire);
	}else{
		file_put_contents('messaggi.txt', $mess_da_ins);
	}
	/* ******************************
	qui tutta la parte che serve a te
	******************************* */
	echo "<meta http-equiv='Refresh' content='0; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
<div class="me1">
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
    <input name="nome" type="text"><br />
	<input name="citta" type="text"><br />
	<input name="email" type="text"><br />
	<input name="messaggio" type="text"><br />
    <input name="invia" type="submit" id="invia" value="invia">
</form>
</div>
<?php
}
?>
certo con mysql sarebbe tutto molto più semplice

Ora lo provo, ho tentato una volta con mysql..tutti quei nomi strani, ecc.

Con questo file.html mi trovo benissimo, lo apro e cambio quello che voglio, naturalmente nel file è scritto in linea

PHP:
...

Marymiya|Surrey|[email protected]|http://www.colo-x.com/uk|India|183.83.222.248|<img class="borderBandiera" src="http://forum.mrwebmaster.it/res/ip_flags/flags/IN.gif" width="16" height="12" alt="India" title="India" />|gioved&igrave; 22 marzo 2012 - 15:37:06 GMT+0530 (India Standard Time)|Lovely webpage design.
Quinndas|London|[email protected]|http://www.outsourcepal.co.uk/outsource_full_time_virtual_assistant.html|India|183.83.222.248|<img class="borderBandiera" src="http://forum.mrwebmaster.it/res/ip_flags/flags/IN.gif" width="16" height="12" alt="India" title="India" />|gioved&igrave; 29 marzo 2012 - 13:28:43 GMT+0530 (India Standard Time)|Nice guestbook.
Andrea|Norimberga|[email protected]|http://www.hotel.info/it/verona/hotels-57604/|Germany|217.237.175.148|<img class="borderBandiera" src="http://forum.mrwebmaster.it/res/ip_flags/flags/DE.gif" width="16" height="12" alt="Germany" title="Germany" />|mercoled&igrave; 23 maggio 2012 - 09:33:41 GMT+0200|Tanti complimenti per le tue fotografie, sono davvero molto intime, in qualche modo comunicano sentimenti ed emozioni...traspare tanta nostalgia dei momenti vissuti e passati.
Mtu diesel engine||[email protected]|http://www.mtudieselengines.com|China|116.231.44.217|<img class="borderBandiera" src="http://forum.mrwebmaster.it/res/ip_flags/flags/CN.gif" width="16" height="12" alt="China" title="China" />|venerd&igrave; 29 giugno 2012 - 14:30:17 UTC+0800|Mtu diesel engine http://www.mtudieselengines.com
Alessandro||||Italy|151.54.30.149|<img class="borderBandiera" src="http://forum.mrwebmaster.it/res/ip_flags/flags/IT.gif" width="16" height="12" alt="Italy" title="Italy" />|mercoled&igrave; 29 agosto 2012 - 17:02:24 GMT+0200 (ora legale Europa occidentale)|COMPLIMENTI! La foto 47 ha un qualcosa di "magico"!
Kkk|||||::1|<img class="borderBandiera" src="http://forum.mrwebmaster.it/res/ip_flags/flags/noflag.gif" width="16" height="12" alt="noflag" title="noflag" />||jkjk

...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
Con questo file.html mi trovo benissimo, lo apro e cambio quello che voglio, naturalmente nel file è scritto in linea
non lo discuto, ma ogni utente che ti invia un messaggio stai ad aprire un file, ricopiare il messaggio....?
messo a punto il file che ti ho postato lo fa in automatico ogni qualvolta che l'utente preme il submit, quindi anche se sei andato in vacanza.
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao

non lo discuto, ma ogni utente che ti invia un messaggio stai ad aprire un file, ricopiare il messaggio....?
messo a punto il file che ti ho postato lo fa in automatico ogni qualvolta che l'utente preme il submit, quindi anche se sei andato in vacanza.
Qui hai messo una parte che mi da errore, forse sono io che non lo metto giusto, io nella pagina ho una sequenza diversa, ho questo:

PHP:
$data_localeS = $_POST['WebDate_ScrivimiS']; // Questo codice richiama la funzione che si trova in questa pagina - WebDate_ScrivimiS()  
$nomeS = stripslashes(htmlentities(ucfirst(trim($_POST['nomeS']))));
$cittaS = stripslashes(htmlentities(ucfirst(trim($_POST['cittaS'])))); 
$suoemailS = htmlentities($_POST['suoemailS']); 
$suoemailS = str_replace(" ","",$suoemailS); // Toglie gli spazi interni nella mail
$messaggioS = stripslashes(htmlentities(trim($_POST['messaggioS']))); 
$validatorS = stripslashes(htmlentities(trim($_POST['validatorS'])));

poi i controlli, nel tuo codice i controlli li hai messi prima





PHP:
...

if(isset($_POST['invia'])){ 
    //poi ci vorranno tutti i controlli sui post 
    $nome=$_POST['nome']; 
    $citta=$_POST['citta']; 
    $email=$_POST['email']; 
    $mess=$_POST['messaggio']; 
    $mess_da_ins=$nome."|".$citta."|".$email."|".$messaggio."\n"; 
    $mess_ultimo=5;//numero di messaggi massimo da visualizzare 
    if(file_exists('messaggi.txt')){ 
        $righe = file('messaggi.txt'); 
        $quante=count($righe); 
        if($quante==0){//il file messaggi.txt esiste ma è vuoto 
            $inserire=$mess_da_ins; 
        }elseif($quante == 1){//esiste una sola riga 
            $inserire=$righe[0].$mess_da_ins; 
        }elseif($quante > 1){ 
            if($quante < $mess_ultimo){ 
                $righe[$quante]=$mess_da_ins; 
            }else{ 
                //sposto in su i messaggi (in pratica elimino il più vcchio) 
                for($k= 0; $k< ($quante-1);$k++){ 
                    $j=$k+1; 
                    $righe[$k]=$righe[$j]; 
                } 
            $righe[$mess_ultimo]=$mess_da_ins;//e aggiungo l'ultimo 
            } 
            foreach($righe as $ch => $testo){//preparo la stringa da salvare 
                $inserire.=$testo; 
            } 
        } 
        file_put_contents('messaggi.txt', $inserire); 
    }else{ 
        file_put_contents('messaggi.txt', $mess_da_ins); 
    } 
    /* ****************************** 
    qui tutta la parte che serve 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
Qui hai messo una parte che mi da errore,
non è semplice capire, intanto che errore?
nel tuo codice i controlli li hai messi prima
ho messo prima il commento (poi ci vorranno...)

poi non ho capito una cosa:
quella parte di script che hai postato sono i $_POST che ti provengono dal form dell'immagine?
se si guarda che se vuoi abbinare il mio script non devi ripetere i vari $_POST e comunque mettere a posto i nomi delle variabili (io li ho messi a caso per fare un esempio)
 

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
ciao
non è semplice capire, intanto che errore?
ho messo prima il commento (poi ci vorranno...)

poi non ho capito una cosa:
quella parte di script che hai postato sono i $_POST che ti provengono dal form dell'immagine?
se si guarda che se vuoi abbinare il mio script non devi ripetere i vari $_POST e comunque mettere a posto i nomi delle variabili (io li ho messi a caso per fare un esempio)

Ora non da più errore ma non stampa, forse devo spostare i codici.

Si quei codici richiamano i campi del form dell'immagine, chiaramente i tuoi li ho sostituiti con i miei, io comunque i commenti li ho dopo quei codici con $_POST
 
Discussioni simili
Autore Titolo Forum Risposte Data
S estrarre e stampare a video un record in un div PHP 7
G Stampare valori in più div con PHP e MySQL PHP 4
I stampare una stringa echo PHP 2
F Stampare valori di un database PHP 14
A Stampare dati da form PHP 8
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
G leggere file txt e stampare con php il contenuto a video PHP 7
F stampare a video i risultati della query PHP 1
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
B Stampare una porzione della pagina PHP 0
V Come stampare su Excel tabella con rowspan e colspan Javascript 2
elpirata Stampare carattere simbolo euro PHP 10
W Stampare file PDF in varie modalità. Windows e Software 5
L pdo (stampare un valore con ritorno a funzione) PHP 0
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
P [PHP] Stampare record di diverse tabelle ma con nomi uguali PHP 6
K [PHP] Stampare tabella da database differenti. PHP 4
M Stampare con php e mysql PHP 8
L [PHP] stampare un'array di un database PHP 0
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
T PHP+MYSQL: stampare record con numero progressivo PHP 3
cristoforo58 Stampare dei valori XML in PHP PHP 0
elpirata [PHP] Stampare i valori di una variabile scritta su più righe PHP 1
K [PHP] Cancellare e Stampare tabella PHP 3
M [PHP] come stampare un Qr-code in FPDF PHP 8
M [Javascript] "Stampare" nel codice Var JS Javascript 5
N [PHP] stampare pagina html PHP 0
fulviozecchin [Java] Stampare intervallo tra due interi senza cicli Java 2
F [PHP] Stampare dati inviati tramite ajax PHP 0
elpirata [RISOLTO]Stampare giorno della settimana in tabella php PHP 6
elpirata [PHP] [RISOLTO] Stampare classe css in base al risultato della query PHP 6
Fuego2806 Stampare dati Form su immagine di sfondo con html HTML e CSS 1
Fuego2806 [PHP] Stampare dati Form su immagine di sfondo con html PHP 70
webmachine [PHP] Problema: Stampare tutte le occorrenza di una SELECT PHP 2
momeraths come stampare immagini contenute in un database PHP 7
I stampare in video i dati inseriti nel db PHP 1
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
L Stampare immagine php PHP 2
elpirata Stampare a video in echo table il risultato di una query PHP 4
Shyson Stampare lista in ordine decrescente Database 1
A Stampare senza sidebar Javascript 0
F stampare array php PHP 2
N Non stampare valori duplicati PHP 1
T Stampare maschera fronte/retro MS Access 0
C Stampare font personalizzati HTML e CSS 2
N FPDF stampare pdf automaticamente su stampante impostata PHP 0
M Stampare valore di un array PHP 1
P Stampare a video PHP 1
P Stampare '<?' in php PHP 7
D Stampare una query in una tabella MySQL 2

Discussioni simili