- Home
- Categorie
- Coding e Sistemistica
- Coding
- Dare la possibilità agli utenti registrati di mandarsi dei messaggi
-
giusto
la tabella te la dettai all'epoca ma a quanto ho capito sarebbe meglio utilizzare al posto degli id i nomi quindi :
crea una tabella messaggi con nome_inviante, nome_ricevente, oggetto, messaggio, data
nome_inviante deve essere un varchar(255) not null
nome_ricevente deve essere un varchar(255) not null
oggetto deve essere un varchar(255) not null
messaggio deve essere text not null
date deve essere un campo datetimee poi fai nella pagina inviomessaggio.php il solito controllo se sei loggato
ed il form di invio
attendo te....
PS. non sono cose grandi questa è logica
potremmo fare 8000 aggiusti a questo codice... ma preferisco farteli fare dopo e farti imparare prima la base
dai dai
-
@massimux said:
giusto
la tabella te la dettai all'epoca ma a quanto ho capito sarebbe meglio utilizzare al posto degli id i nomi quindi :
crea una tabella messaggi con nome_inviante, nome_ricevente, oggetto, messaggio, data
nome_inviante deve essere un varchar(255) not null
nome_ricevente deve essere un varchar(255) not null
oggetto deve essere un varchar(255) not null
messaggio deve essere text not null
date deve essere un campo datetimee poi fai nella pagina inviomessaggio.php il solito controllo se sei loggato
ed il form di invio
attendo te....
PS. non sono cose grandi questa è logica
potremmo fare 8000 aggiusti a questo codice... ma preferisco farteli fare dopo e farti imparare prima la base
dai dai
Ok...grazie:)Allora Antonio ecco subito la pagina inviamessaggio.php che ho fatto..
[PHP]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pannello di controllo utente</title>
</head><body>
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?><?
//facciamo una stampata a video!
echo "Ciao " . $_SESSION[nome] . "Scrivi il messaggio che vuoi inviare";} else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?><form method="post" action="invio.php">
<textarea name="messaggio"></textarea>
<input type="submit" value="Invia messaggio">
</form>
[/PHP]
non manca nulla spero....ora bisogna creare la pagina invio.php??:)Ps.Antonio mi sono permesso di creare anche una pagina di logout.php
[PHP]
<?phpsession_start();
session_unset();
session_destroy();header("Location:index.htm") ;
exit;
?>[/PHP]
che funziona...:)ho inserito il link all interno della pagina pannellodicontrollo.php
-
[php]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pannello di controllo utente</title>
</head><body>
<?
//facciamo una stampata a video!
echo "Ciao " . $_SESSION[nome] . "Scrivi il messaggio che vuoi inviare";
?>
<form method="post" action="invio.php">
<textarea name="messaggio"></textarea>
<input type="submit" value="Invia messaggio">
</form>
<?
} else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/php]il form è incompleto... ci manca oggetto e destinatario
aggiusta il mio codice
-
@massimux said:
[php]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pannello di controllo utente</title>
</head><body>
<?
//facciamo una stampata a video!
echo "Ciao " . $_SESSION[nome] . "Scrivi il messaggio che vuoi inviare";
?>
<form method="post" action="invio.php">
<p>Destinatario</p>
<p><input type="text" name="destinatario" value=""</p>
<p>Oggetto</p>
<p><input type="text" name="oggetto" value="" size="20"</p>
<textarea name="messaggio"></textarea>
<input type="submit" value="Invia messaggio">
</form>
<?
} else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/php]il form è incompleto... ci manca oggetto e destinatario
aggiusta il mio codice
Fatto...credo:)
-
passa a creare invio.php
- controllo login
- recupero variabili post
- inserimento in database del messaggio
- ritorno alla pagina leggimessaggi.php
e stavolta mettici tutto l'impegno perchè a questo punto dovresti riuscirci... non mi deludere
-
@massimux said:
passa a creare invio.php
- controllo login
- recupero variabili post
- inserimento in database del messaggio
- ritorno alla pagina leggimessaggi.php
e stavolta mettici tutto l'impegno perchè a questo punto dovresti riuscirci... non mi deludere
Ecco la pagina invio.php
[PHP]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?>
<?//recupero i valori dal form precedente
$cdestinatario = $_POST['destinatario'];
$coggetto = $_POST['oggetto'];
$cmessaggio = $_POST['messaggio'];//mi connetto al database
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono la tabella
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO messaggi (nome_inviante,oggetto,messaggio) VALUES ('$cdestinatario','$coggetto','$cmessaggio')";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "Messaggio inviato";
header("Location: leggimessaggi.php");
?>
[/PHP]
Antonio nn va:(praticamente mi da un errore di sintassiParse error: syntax error, unexpected $end in /membri/italiawebchat/invio.php on line 28
-
@carlitos1982 said:
Ecco la pagina invio.php
[PHP]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?>
<?//recupero i valori dal form precedente
$cdestinatario = $_POST['destinatario'];
$coggetto = $_POST['oggetto'];
$cmessaggio = $_POST['messaggio'];//mi connetto al database
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono la tabella
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO messaggi (nome_inviante,oggetto,messaggio) VALUES ('$cdestinatario','$coggetto','$cmessaggio')";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "Messaggio inviato";
header("Location: leggimessaggi.php");
?>
[/PHP]
Antonio nn va:(praticamente mi da un errore di sintassiParse error: syntax error, unexpected $end in /membri/italiawebchat/invio.php on line 28
Ok risolto..era una parentesi maledetta
x
Funziona si....ma nn forse come dovrebbe:?:?????...cioè la cosa piu chiara che mi fa questo form e recupere il messaggio e scriverlo nel database nel campo messaggi...gli altri 2 campi che mi hai fatto aggiungere nel form destinatario e oggetto nn ho capito cosa servono e cosa dovrebbe scrivere un eventuale utente nei campi oggetto e destinatario..piu che altro il ca,mpo destinatario non mi e chiaro......e nn ho capito cosa servono i campi nome_inviante ,nome_ricevente,oggetto, :?:?:?:?
Mi sto di nuovo confondendo le ideex:x
-
impossibile che funzioni
una cosa che devi imparare è la logica, se non hai quella non andrai da nessuna partedevi ragionare....
[php]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...//recupero i valori dal form precedente
$cdestinatario = $_POST['destinatario'];
$coggetto = $_POST['oggetto'];
$cmessaggio = $_POST['messaggio'];
$cmittente = $_SESSION['nome'];//mi connetto al database
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono la tabella
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO messaggi (nome_inviante,nome_destinatario,oggetto,messaggio,date) VALUES ('$mittente','$cdestinatario','$coggetto','$cmessaggio',NOW())";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "Messaggio inviato";
header("Location: leggimessaggi.php");
}
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/php]quando apri una parentesi graffa { và sempre chiusa finita l'istruzione altrimenti sarà sempre un'errore di sintassi
la funzione NOW() che vedi nell'insert serve ad assegnare data ed orario senza utilizzare i soliti comandi date(); di php
penso che ora sia più chiara anche la tabella come vedrai il mittente è l'utente che invia il messaggio mentre il ricevente è il "DESTINATARIO" l'oggetto come in tutte le messaggistiche è una piccola anteprima del testo del messaggio.
ed ora prova un leggimessaggi... questo sarà abbastanza complicato
-
@massimux said:
impossibile che funzioni
una cosa che devi imparare è la logica, se non hai quella non andrai da nessuna partedevi ragionare....
[php]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...//recupero i valori dal form precedente
$cdestinatario = $_POST['destinatario'];
$coggetto = $_POST['oggetto'];
$cmessaggio = $_POST['messaggio'];
$cmittente = $_SESSION['nome'];//mi connetto al database
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono la tabella
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO messaggi (nome_inviante,nome_destinatario,oggetto,messaggio,date) VALUES ('$mittente','$cdestinatario','$coggetto','$cmessaggio',NOW())";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "Messaggio inviato";
header("Location: leggimessaggi.php");
}
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/php]quando apri una parentesi graffa { và sempre chiusa finita l'istruzione altrimenti sarà sempre un'errore di sintassi
la funzione NOW() che vedi nell'insert serve ad assegnare data ed orario senza utilizzare i soliti comandi date(); di php
penso che ora sia più chiara anche la tabella come vedrai il mittente è l'utente che invia il messaggio mentre il ricevente è il "DESTINATARIO" l'oggetto come in tutte le messaggistiche è una piccola anteprima del testo del messaggio.
ed ora prova un leggimessaggi... questo sarà abbastanza complicato
Antonio nel campo nome_inviante non viene scritto il nome di chi invia il messaggio....:?rimane vuota...mi scrive solo nei campi oggetto,data,e messaggio...O_o
Vabe...nel frattempo cerco di immaginare la pagina leggimessaggi.php
credo debba essere fatta cosi'....
1)controllo se l utente che riceve il messaggio è loggato
2)Mostrare a video i campi presenti nella tabella messaggi
3)rendere la pagina leggimessaggi univoca per ogni utente
...:?:?
-
la variabile è $cmittente e non mittente.... sorry
per leggimessaggi.php non ti auterò fino a quando tu stesso non capirai
io ti leggerò e ogni tanto dirò qualcosa
devi muovere il tuo primo passo
-
@massimux said:
la variabile è $cmittente e non mittente.... sorry
per leggimessaggi.php non ti auterò fino a quando tu stesso non capirai
io ti leggerò e ogni tanto dirò qualcosa
devi muovere il tuo primo passo
Ecco il mio primo passo...:) leggimessaggi.php[PHP]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si... ?><? // creo la tabella
<html>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
<tr>
<td colspan="4">
<div align="center"><font color="#0000FF"><b>Lettura dei messaggi ricevuti</b></font></div>
</td>
</tr>
<tr>
<td>
<div align="center"><b>Nome</b></div>
</td>
<td>
<div align="center"><b>Oggetto</b></div>
</td>
<td>
<div align="center"><b>Messaggio</b></div>
</td>
<td>
<div align="center"><b>Data</b></div>
</td>
//mi connetto al datase
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono il database
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT (nome_inviante,oggetto,messaggio,data) FROM messaggi";$rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "I tuoi messaggi";
.. // connessione al db
//faccio un ciclo while
while ($riga = mysql_fetch_array($rs)) {
$str_nome = $riga['nome_inviante'];
$str_oggetto= $riga['oggetto'];
$str_messaggio = $riga['messaggio'];
$str_data = $riga['data'];
echo "<tr><td>$str_nome</td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td>";
}
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>[/PHP]
ORRORE di sintassi che nn riesco a trovare
o
x
x
o
-
html e php vanno divisi a meno che non utilizzi print ed echo
esempi
[php]
<? echo"<html>"; ?>
[/php]
oppure
[php]
<?
//codice
?>
<html>
<? //codice ?>
[/php]
-
@massimux said:
html e php vanno divisi a meno che non utilizzi print ed echo
esempi
[php]
<? echo"<html>"; ?>
[/php]
oppure
[php]
<?
//codice
?>
<html>
<? //codice ?>
[/php]
ok..ho capito....stava alla riga 10 l errore...ecco
[PHP]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si... ?> [/PHP][PHP]
<html>
<head>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
<tr>
<td colspan="4">
<div align="center"><font color="#0000FF"><b>Lettura dei messaggi ricevuti</b></font></div>
</td>
</tr>
<tr>
<td>
<div align="center"><b>Nome</b></div>
</td>
<td>
<div align="center"><b>Oggetto</b></div>
</td>
<td>
<div align="center"><b>Messaggio</b></div>
</td>
<td>
<div align="center"><b>Data</b></div>
</td>
//mi connetto al datase
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono il database
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT (nome_inviante,oggetto,messaggio,data) FROM messaggi";$rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "I tuoi messaggi";
.. // connessione al db
//faccio un ciclo while
while ($riga = mysql_fetch_array($rs)) {
$str_nome = $riga['nome_inviante'];
$str_oggetto= $riga['oggetto'];
$str_messaggio = $riga['messaggio'];
$str_data = $riga['data'];
echo "<tr><td>$str_nome</td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td>";
}
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/PHP]
tanto per cambiare....
Parse error: syntax error, unexpected '.' in /membri/italiawebchat/leggimessaggi.php on line 41o:o
-
echo "I tuoi messaggi";
.. // connessione al db
-
@massimux said:
echo "I tuoi messaggi";
.. // connessione al dbChe orrori stupidi che faccio
o
x:x a posto holto i 2 puntini.. ma ne
è uscito un altro...Parse error: syntax error, unexpected T_ELSE in /membri/italiawebchat/leggimessaggi.php on line 48
x
o:o sto facendo mille cambiamenti ma nulla....
-
[PHP]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?>
<html>
<head>
<body>
<table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
<tr>
<td colspan="4">
<div align="center"><font color="#0000FF"><b>Lettura dei messaggi ricevuti</b></font></div>
</td>
</tr>
<tr>
<td>
<div align="center"><b>Nome</b></div>
</td>
<td>
<div align="center"><b>Oggetto</b></div>
</td>
<td>
<div align="center"><b>Messaggio</b></div>
</td>
<td>
<div align="center"><b>Data</b></div>
</td>
<?
//mi connetto al datase
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono il database
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT (nome_inviante,oggetto,messaggio,data) FROM messaggi";$rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "I tuoi messaggi";
// connessione al db
//faccio un ciclo while
while ($riga = mysql_fetch_array($rs)) {
$str_nome = $riga['nome_inviante'];
$str_oggetto= $riga['oggetto'];
$str_messaggio = $riga['messaggio'];
$str_data = $riga['data'];
echo "<tr><td>$str_nome</td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td>";
}//qui chiudi il while
}//qui chiudi l'IF
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/PHP]
-
questa è una cosa che ti dico io
[php]
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_destinatario = $_SESSION[nome] ORDER BY data";
[/php]utilizza questa query
-
@massimux said:
questa è una cosa che ti dico io
[php]
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_destinatario = $_SESSION[nome] ORDER BY data";
[/php]utilizza questa query
Grazie Antonio....ora mi e chiaro anche il campo nome_destinatario...praticamente li va il nome di chi invia il messaggio..recuperato con la variabile dis essione $_SESSION[nome] grazie:)Ora succede ciò ti spiego....effettuo il login e dentro nella pagina pannellodicontrollo.html da li' se clikko su leggi i miei messaggi
mi esce laseguente scrittaErrore query database: Unknown column 'marcus' in 'where clause'
marcus sarebbe il nik che ho usato per fare il login
-
cavolo che errore che ho fatto...
scusami....
[PHP]
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT nome_destinatario,nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_destinatario=$_SESSION[nome] ORDER BY data";
[/php]il campo nome_destinatario ti dice solo per chi è il messaggio tutto qui
-
@massimux said:
cavolo che errore che ho fatto...
scusami....
[PHP]
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT nome_destinatario,nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_destinatario=$_SESSION[nome] ORDER BY data";
[/php]il campo nome_destinatario ti dice solo per chi è il messaggio tutto qui
[php]
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT nome_ricevente,nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_ricevente=$_SESSION[nome] ORDER BY data";
[/PHP]
al posto di nome_destinatario ho messo nome_ricevente perche sulla mia tabella ho nome_ricevente come campo....ma nulla mi da sempre quella scrittaErrore query database: Unknown column 'marcus' in 'where clause'
nel ciclo while..manca qualcosa...:?:? nome_ricevente?