• User Attivo

    @massimux said:

    impossibile che funzioni 🙂
    una cosa che devi imparare è la logica, se non hai quella non andrai da nessuna parte 🙂 devi 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
    :smile5: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
    ...:?:?


  • Moderatore

    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


  • User Attivo

    @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]

    :smile5:

    ORRORE di sintassi che nn riesco a trovare⭕o❌x❌x⭕o


  • Moderatore

    html e php vanno divisi a meno che non utilizzi print ed echo
    esempi
    [php]
    <? echo"<html>"; ?>
    [/php]
    oppure
    [php]
    <?
    //codice
    ?>
    <html>
    <? //codice ?>
    [/php]


  • User Attivo

    @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 41⭕o:o


  • Moderatore

    echo "I tuoi messaggi";
    .. // connessione al db


  • User Attivo

    @massimux said:

    echo "I tuoi messaggi";
    .. // connessione al db

    Che 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....


  • Moderatore

    [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]


  • Moderatore

    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 🙂


  • User Attivo

    @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 scritta

    Errore query database: Unknown column 'marcus' in 'where clause'

    marcus sarebbe il nik che ho usato per fare il login


  • Moderatore

    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 🙂


  • User Attivo

    @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 scritta

    Errore query database: Unknown column 'marcus' in 'where clause'

    nel ciclo while..manca qualcosa...:?:? nome_ricevente?


  • Moderatore

    mi copi ed incolli la tua pagina? grazie!!!


  • User Attivo

    @massimux said:

    mi copi ed incolli la tua pagina? grazie!!!

    [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 inviante</b></div>
    </td>
    <td>
    <div align="center"><b>Nome ricevente</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
    //seleziono dalla tabella messaggi i 4 campi da visualizzare
    $strsql="SELECT nome_ricevente,nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_ricevente=$_SESSION[destinatario] ORDER BY data";

    $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'];
    $str_ricevente = $riga['destinatario'];
    echo "<tr><td>$str_nome</td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td><td>$str_ricevente</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]


  • Moderatore

    [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 inviante</b></div>
    </td>
    <td>
    <div align="center"><b>Nome ricevente</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_ricevente,nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_ricevente=".$_SESSION['nome']." ORDER BY data";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //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'];
    $str_ricevente = $riga['nome_ricevente'];
    echo "<tr><td>$str_nome</td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td><td>$str_ricevente</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]

    controlla bene quando modifichi qualcosa va modificata da entrambe le parti.... parlo delle query 🙂

    dimmi se ora va


  • User Attivo

    @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>
    <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 inviante</b></div>
    </td>
    <td>
    <div align="center"><b>Nome ricevente</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_ricevente,nome_inviante,oggetto,messaggio,data FROM messaggi WHERE nome_ricevente=".$_SESSION['nome']." ORDER BY data";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //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'];
    $str_ricevente = $riga['nome_ricevente'];
    echo "<tr><td>$str_nome</td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td><td>$str_ricevente</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]

    controlla bene quando modifichi qualcosa va modificata da entrambe le parti.... parlo delle query 🙂

    dimmi se ora va
    no e sempre lo stesso messaggio...:(
    Errore query database: Unknown column 'marcus' in 'where clause'

    marcus asarebbe il nik con cui fatto il login

    ❌x❌x


  • Bannato User Attivo

    nome_ricevente='".$_SESSION['nome']."'

    le stringhe vanno messe tra apici altrimenti diventano un oggetto mysql.


  • User Attivo

    @saro78 said:

    nome_ricevente='".$_SESSION['nome']."'

    le stringhe vanno messe tra apici altrimenti diventano un oggetto mysql.

    Grazie saro78 ..ora funziona...nessun errore grande..siete fantastici su questo forum...in pokissimo tempo sto apprendendo tantissimo etutto ciò grazie a voi..e a massimux in particolare:wink3:


  • User Attivo

    @carlitos1982 said:

    Grazie saro78 ..ora funziona...nessun errore grande..siete fantastici su questo forum...in pokissimo tempo sto apprendendo tantissimo etutto ciò grazie a voi..e a massimux in particolare:wink3:

    praticamente ora ci sarebbe da fare una modifica...mi spiego...la pagina invio.php (che sarebbe il form per l invio dei messaggi)
    [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]
    prevede che io per spedire il messaggio all utente desiderato debba inserire manualmente il nome del destinatario nel seguente campo
    [PHP]<p>Destinatario</p>
    <p><input type="text" name="destinatario" value=""</p> [/PHP]
    ora voglio fare la seguente cosa... facendo un esempio..io o un altro utente del sito decide di mandare un messaggio ad un altro utente semplicemente andando sulla pagin del suo profilo..quindi inserire un link nella pagina di ogni utente "INVIA MESSAGGIO".....cio però deve esser pssibile senza che io scriva manualmente nel campo destinatario il nome dell utente a cui voglio mandare il messaggio....
    Ho pensato di fare una cosa simile....
    Io ad ogni utente iscritto una volta che esegue il login faccio si che venga rimandato sulla pagina PANNELLODICONTROLLO.PHP che nel corpo della pagina prevede già di suo i seguente link
    logout.php per effettuare il logout
    leggimessaggi.php che permette di leggere i messaggi ricevuti
    inviamessaggio.php che permette di mandare un messaggio ad un utente...con la pecca però di di dovere scrivere ne campo destinatario il nome a cui si vuole mandare il messaggio...
    Sarebbe iil caso di creare una pagina listaiscritti con tutti gli iscritti e da li poi
    dare modo di mandare il messaggio a chi si vuole...giusto?


  • Moderatore

    si, si può fare anche così 🙂

    ps. grazie Saro dimenticavo gli apici

    tanto poi basta modificare, velocemente, inviamessaggio.php e abbiamo risolto 🙂

    allora invece di chiedere tu scripta e posta 🙂