Creare un sistema di messaggi in php e mysql Parte 2

vincenzo 7 giugno 2011 49

Nell’articolo di ieri abbiamo partalo di come creare una tabella per permette ai nosti utenti di scambiarsi messaggi privati. Oggi ci occuperemo del codice vero e proprio per la gestione di questo sistema, pubblicherò e commenterò soltanto le funzioni che ho u io

Fatta questa breve introduzione all’articolo precedente, passiamo subito al codice php che dobbiamo usare per far inviare il messaggio, (io al momento ho usato il semplice php, ma si puo implementare anche con l’ajax).

Il prima funzione che presento serve per memorizzare il messaggio nella tabella
[php]
function save_message($id_sender,$id_receiver,$message)
{
$ip=$_SERVER['REMOTE_ADDR'];
$query = "INSERT INTO messaggi (‘id_sender’,'id_recevier’,'messaggio’,'ip’)
values (‘$id_sender’,'$id_recevier’,'$message’,'$ip’)";
$result = mysql_query( $query ) or die ("query errata");
if ($result) {
return 1; //messaggio salvato nel database
}else{
return 0; //messaggio non salvato nel database
}
}
[/php]

La funzione richiede come parametri l’id dell’utente che invia il messaggio, l’id dell’utente che riceve il messaggio, ed il messaggio vero e proprio. Semplicemente la funzione esegue una query, inserendo nel database il messaggio con tutti i campi richiesti, per usare tale funzione bisogna inserire in un qualsiasi punto della pagina la seguente riga.

[php]
save_message($mittente,$destinatario,$messaggio);
[/php]

Ovviamente le varibili al suo interno devo contenere i dati richiesti, altrimenti il messaggio verà salvato ma non nel modo corretto.

Seconda ed ultima funzione necessaria per una gestione semplice dei messaggi è quella per leggere ed elencare tutti i messaggi ricevuti da un utente.
Io ho usato la seguente funzione

[php]
function read_message($id_receiver)
{
$query = "SELECT id_sender,messaggio FROM messaggi WHERE id_receiver=’$id_receiver’";
$result = mysql_query( $query ) or die ("query errata");
if (!$result){
echo "L’utente: ".$id_receiver." non ha nessun messaggio\n";
}else{
$nummex = mysql_num_fields($result);
if ($nummex>1)
{
echo "L’utente: ".$id_receiver." ha ricevuto i seguenti messaggi";
}else{
echo "L’utente: ".$id_receiver." ha ricevuto il seguente messagge";
}
echo "<table border=\"1\"><tr><td>Mittente</td><td>Messaggio</td></tr>";
while ($row = mysql_fetch_row($result))
{
echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";
}
echo "</table>";
}
}
[/php]

Come prima per usare tale funzione dobbiamo inserire la seguente riga di codice in un punto qualsiasi della nostra pagina

[php]
read_message($utente);
[/php]

La variabile utente indica l’id dell’utente, o meglio l’id da cercare nel campo dei destinatari, se la query è vuota allora dice che l’utente non ha ricevuto nessun messaggio nel caso contrario elenca tutti i messaggi ricevuti dall’utente indicato. Natuarlamente la funzione come tutto il sistema puo essere migliorato aggiungengo qualche piccolo accorgimento.. :)

La prima piccola guida di php e mysql termina qua. :) se hai qualche consiglio, qualche suggerimento, un dubbio, o vuoi semplicemente ringranziare, usa i commenti.. :)

49 Comments »

  1. Vincenzo 11 giugno 2011 at 12:29 - Reply

    Ciao Vincenzo
    hai dimenticato di utilizzare in modo corretto gli indici sulla tabella.
    Con 1000 utenti e un 1000000 messaggi privati i tempi si allungheranno a dismisura se non provvedi :)

    • Vincenzo 11 giugno 2011 at 13:13 - Reply

      Non avevo pensato a questo dettaglio.. :) come mi suggerisci di aggire tu?.. :)

      • Vincenzo 11 giugno 2011 at 13:22 - Reply

        Ciao,
        la creazione degli indici dipende da come saranno strutturate le query e dal tipo di engine delle tabelle.

        Se non prevedi ricerche fulltext nei campi di testo, potresti utilizzare l’ innodb che ti permette di avere un sostanziale incremento delle prestazioni. Per quanto riguarda gli indici in se, questa quida (http://database.html.it/guide/lezione/2447/indici/) è un ottimo punto di partenza. Di base, dovrai creare un indice per ogni query che andrai ad effettuare, racchiudendo nello stesso i campi utilizzati come discriminanti per recuperare i dati. Nell’esempio in pagina, un indice sul campo ‘id_receiver’ già aiuterebbe :D

  2. Vincenzo 11 giugno 2011 at 13:29 - Reply

    Vado a vedere la pagina.. :) e provvedo con le modifiche.. :)

  3. Yuri 20 luglio 2011 at 08:28 - Reply

    Che utilità ci sarebbe nel salvare anche l’indirizzo IP? Nell’altro articol ospieghi che serve per tutelarsi da utilizzo improprio del servizio..ma se il mio utente si connette da più postazioni?!

    Ottimo lavoro comunque :)

    • Vincenzo 20 luglio 2011 at 09:13 - Reply

      Memorizzare l’ip serve a chi controlla il servizio se per esempio l’utente x offende l’utente y o comunque fa attività di spam io ho memorizzato l’indirizzo ip nel database in tal modo posso passare queste informazioni messaggio inviato, indirizzo ip alle forze dell’ordine competenti in questo caso alla polizia postale, che provvederà di conseguenza.. ;) come scritto nell’altro articolo è un modo per tutelare il tuo lavoro ed il tuo sito.. ;)

  4. Yuri 20 luglio 2011 at 09:19 - Reply

    Non ci avevo pensato!! Effettivamente è un’ottima cosa :)

  5. Entony Tocco 22 luglio 2011 at 22:48 - Reply

    davvero un bel lavoro semplice ma efficace ;)
    dobbiamo moltiplicare gli interventi sul php e mysql xò ;)

    • Vincenzo 22 luglio 2011 at 23:18 - Reply

      A breve pubblicherò altre “guide” ed algoritmi per il php.. ;) :D

  6. Giuseppe 6 febbraio 2012 at 10:25 - Reply

    Salve,
    allora innanzitutto premetto che il codice è altamente inutile.
    Se devi fare una guida per principianti, falla completa.
    Errori commessi:
    1° Ti sei limitato a scrivere delle query che sanno scrivere anche i bambini di 3 anni;
    2° Il vero sistema dei messaggi è nel far riconoscere $mittente = (a cosa?) $destinatario = (a cosa?) $messaggio = (a cosa?)…
    3° La soluzione non è tanto semplice come tu hai supposto, perchè un sistema di messagistica richieste anche una registrazione e un login. Se effettuato con successo il login bisognerebbe richiamarlo da un altro foglio.php come campo “$mittente” se no come fa a riconoscere chi sta spedendo il messaggio…
    4° Anche per leggere i messaggi hai omesso la parte piu importante ovvero:
    Messaggio:

    Titolo:
    Mittente eccetera…

    voto 4/10

    • Vincenzo 6 febbraio 2012 at 10:36 - Reply

      Io ho presentato il sistema (funzioni necessarie) per realizzare un sistema di messaggistica degli utenti, e non quello per gestire la registrazione ed il login degli utenti (argomento di un altro articolo), se guardi per bene nel sito lo trovi! quindi usando un po di logica ed inventiva puoi realizzare quello che dici semplicemente copiando!

  7. Giuseppe 6 febbraio 2012 at 12:56 - Reply

    una casella di messaggi fatta bene è complessa.
    ecco il codice che ho creato in poche ore sta mattina…

    Nickname destinatario:

    Oggetto:

    Messaggio:

    <?

    // attraverso un if controlliamo che il form sia stato inviato

    if ( $_GET['messagesend'] == "ok" ) {

    // recuperiamo i dati inviati con il form

    $H = date('H');
    $i = date('i');
    $s = date('s');
    $m = date('m');
    $d = date('d');
    $Y = date('Y');
    $j = date('j');
    $n = date('n');
    $today = $d;
    $month = $m;
    $year = $Y;
    $date_normal = date('d-m-Y',mktime($m,$d,$Y));
    $date_reversed = date('Y-m-d', mktime($m,$d,$y));
    $date_full = date('d-m-Y H:i:s',mktime($H,$i,$s,$m,$d,$Y));
    $date_time = date('H:i:s',mktime($H,$i,$s));
    $date_hc = "".$j."-".$n."-".$Y."";

    $ip = $_SERVER['REMOTE_ADDR'];

    $name_recevier = $_POST['destinatario'];

    $oggetto = $_POST['oggetto'];

    $message = $_POST['messaggio'];

    // controllo se il destinatario è stato compilato

    if ( $name_recevier == TRUE ) {

    // controllo se l oggetto è stato compilato

    if ( $oggetto == TRUE ) {

    // controllo se il messaggio è stato compilato

    if ( $message == TRUE) {

    // controllo se il destinatario esiste

    $sql = mysql_query("SELECT * FROM users WHERE username = '$name_recevier'") or die ("Destinatario inesistente");

    $num_rows = mysql_num_rows($sql);

    if ( $num_rows == 1 ) {

    mysql_query("INSERT INTO messaggi
    (name_sender , name_recevier , oggetto , messaggio , data , ip_mittente )
    VALUES
    ('$nome_utente' , '$name_recevier' , '$oggetto' , '$message' , '".$date_full."' , '$ip' )") OR DIE(mysql_error());

    // messaggio di riuscita invio messaggio

    echo "Messaggio inviato con successo.";

    } else {

    echo "Destinatario inesistente!";

    }

    } else {

    echo "Il campo di testo del messaggio è vuoto!";

    }

    } else {

    echo "Inserisci l'oggetto del messaggio!";

    }

    } else {

    echo "Inserisci il destinatario a cui inviare il messaggio!";

    }

    }

    come puoi vedere è completo ed esauriente anche di errori, data, ip e tutto quello che serve.
    (Ovviamente per chi utilizza il mio codice dovrà includere il file di connessione al database, e alcune variabili che ho richiamato da altri file)

    • Vincenzo 6 febbraio 2012 at 15:28 - Reply

      Molto più elementare del mio, però è una soluzione scomoda in quanto devi inserire in ogni pagina il codice per far inviare il messaggio con la mia soluzione “chiami” la funziona di inserimento o di lettura dei messaggi e fai tutto.. riduci il codice ed è più pulito :) xd

  8. Giuseppe 6 febbraio 2012 at 12:57 - Reply

    la parte Input l’ha omessa inviando questo messaggio ma tutta via è semplice…

  9. Giuseppe 6 febbraio 2012 at 16:22 - Reply

    Dato che io sono ancora alle prime fasi con il PHP…
    Potresti indicarmi come impostare la pagina per leggere i messaggi?
    E che variabili devo mettere sotto
    read_message($utente);

    ??

    Cioè in teoria io dovrei fare
    Oggetto: Interlocutore: Data:
    prova prova prova

    • Vincenzo 6 febbraio 2012 at 18:39 - Reply

      Allora tu hai la funzione read_message($utente) dove $utente indica l’id dell’utente, tale funzione non fa altro che leggere tutti i messaggi inviati all’utente con id $utente e creare (mostrandola dove chiamata) una tabella con i dati ottentuti.. puoi notare le funzioni “echo” dentro la funzione
      [php]
      function read_message($id_receiver)
      {
      $query = "SELECT id_sender,messaggio FROM messaggi WHERE id_receiver=’$id_receiver’";
      $result = mysql_query( $query ) or die ("query errata");
      if (!$result){
      echo "L’utente: ".$id_receiver." non ha nessun messaggion";
      }else{
      $nummex = mysql_num_fields($result);
      if ($nummex>1)
      {
      echo "L’utente: ".$id_receiver." ha ricevuto i seguenti messaggi";
      }else{
      echo "L’utente: ".$id_receiver." ha ricevuto il seguente messagge";
      }
      echo "<table border="1"><tr><td>Mittente</td><td>Messaggio</td></tr>";
      while ($row = mysql_fetch_row($result))
      {
      echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";
      }
      echo "</table>";
      }
      }
      [/php]

      Ovviamente questa funzione potrebbe essere migliorata!

  10. Giuseppe 6 febbraio 2012 at 21:50 - Reply

    si ma ho gia provato e nn genera le tabelle per leggere i messaggi…
    ovvero rimane solo:
    Mittente, Messaggio…
    per caso devo inserire qualche variabile $utente?

    cioè mettere nella funzione: $utente = $id_receiver;

    ?
    Grazie per le risposte!

  11. Yuri 6 febbraio 2012 at 21:59 - Reply

    Giuseppe, guarda bene le due funzioni.
    quando salvi un messaggio sul database, usi questa funzione:
    save_message($id_sender,$id_receiver,$message)

    e per leggere i messaggi che un qualsiasi utente ha ricevuto invochi l’altra funzione:

    read_message($id_receiver)

    Quindi se come prima cosa salvi un messaggio “Ciao” da utente 1 a utente 2, risulterà che l’utente 2 ha ricevuto un messaggio, che puoi leggere specificando l’id dell’utente come attributo della funzione read_message($id_receiver)…

  12. Yuri 6 febbraio 2012 at 22:01 - Reply

    Consiglio: quando eseguite una query con mysql_query($query) è sempre meglio metterla in questa forma:
    mysql_query($query) or die(mysql_query().’ – ‘.$query);

    in modo tale che se qualcosa va storto, ti viene riportato l’errore, e anche la query che l’ha generato.

  13. Giuseppe 6 febbraio 2012 at 23:27 - Reply

    [code]function read_message($nome_utente)
    {
    $query = "SELECT name_sender,messaggio FROM messaggi WHERE name_recevier='$nome_utente'";
    $result = mysql_query( $query ) or die ("query errata");
    if (!$result){
    echo "L'utente: ".$nome_utente." non ha nessun messaggio\n";
    }else{
    echo "<table border=\"1\"><tr><td>Mittente</td><td>Messaggio</td></tr>";
    while ($row = mysql_fetch_row($result))
    {
    echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td></tr>";
    }
    echo "</table>";
    }
    }[/code]

    Non so dov’è l’errore ma nn appaiono i messaggi…

  14. Yuri 6 febbraio 2012 at 23:56 - Reply

    sei sicuro che sia name_recevier e non name_receiver qui: “$query = “SELECT name_sender,messaggio FROM messaggi WHERE name_recevier=’$nome_utente’”;”

    Comunque per tagliare la testa al toro, inserisci manualmente nel tuo DB dei record (con nome destinatario “pippo”), e poi esegui la query direttamente da phpmyadmin

    SELECT * FROM messaggi WHERE name_recevier=’pippo’;

    Comunque metti così nel tuo codice:

    mysql_query( $query ) or die (“Errore: “.mysql_error().” – Sulla query: “.$query);

    e riportaci l’errore che ne esce.

  15. Giuseppe 7 febbraio 2012 at 14:38 - Reply

    Si la tabella si chiama name_recevier
    Comunque ho provato ad eseguire la query SELECT * FROM messaggi WHERE name_recevier=’pippo’; e va correttamente infatti mi risulta la tabella che ho inserito con il nome Pippo.

    Però non esce sul sito ç_ç
    http://shopgame.altervista.org/message_list.php

    ç_ç soluzioni ?

  16. Giuseppe 7 febbraio 2012 at 14:42 - Reply

    funzionaaaaaaaaaaaaaaa!

  17. Giuseppe 7 febbraio 2012 at 14:48 - Reply

    Però mi servirebbe una maniera piu dinamica… tipo non si potrebbe fare un altro foglio .php che legge i messaggi? Esempio:
    Clicco su messaggio 1 e si apre il foglio:
    http://link/read_message?id=(id del messaggio)

    In modo tale da leggere il messaggio in modo ordinato…
    Si potrebbe fare?

    • Vincenzo 7 febbraio 2012 at 15:20 - Reply

      Certo che si può fare :) basta creare un’altra funzione che “chieda” al database i dettagli del messaggio con id uguale ad x :)

  18. Giuseppe 7 febbraio 2012 at 15:58 - Reply

    si sto provando ora ti so dire se ho errori ;)

  19. Giuseppe 7 febbraio 2012 at 16:00 - Reply

    una domandina veloce:
    devo fare 2 controlli sulla stessa riga… il formato è giusto cosi?
    if ($verita ==”1″) AND if ($name_utente == $nome_utente);

    oppure in altro modo?
    grazie vincenzo !

    • Vincenzo 7 febbraio 2012 at 16:17 - Reply

      Per fare due controlli contemporaneamente.. devi usare la seguente struttura
      [php]
      if ( (condizione1) && (condizione2) )
      [/php]

  20. Giuseppe 7 febbraio 2012 at 16:19 - Reply

    grazie mille !

    • Vincenzo 7 febbraio 2012 at 16:24 - Reply

      :) tienimi aggiornato sull’evoluzione del sistema :)

  21. Giuseppe 7 febbraio 2012 at 16:40 - Reply

    scusa mi da un errore:
    Parse error: syntax error, unexpected T_ELSE in /membri/shopgame/read_message.php on line 54


    Sulla linea 54 ci sta solo else… nn capisco!
    Codice che ho creato:
    [CODE]
    <?php

    // includiamo il file di connessione al database

    include ("db_connect.php");
    include ("check1.php");
    include ("funzioni.php");
    $id_messaggio = $_GET[id];
    $name_utente = $_GET[utente];
    $mittente = mysql_query("SELECT name_sender WHERE 'id_message' = '$id_messaggio' AND 'name_recevier' = '$name_utente' LIMIT 0 , 1 ");
    $oggetto = mysql_query("SELECT oggetto WHERE 'id_message' = '$id_messaggio' AND 'name_recevier' = '$name_utente' LIMIT 0 , 1 ");
    $messaggio = mysql_query("SELECT messaggio WHERE 'id_message' = '$id_messaggio' AND 'name_recevier' = '$name_utente' LIMIT 0 , 1 ");
    $data = mysql_query("SELECT data WHERE 'id_message' = '$id_messaggio' AND 'name_recevier' = '$name_utente' LIMIT 0 , 1 ");
    if(is_numeric($id_messaggio)){
    $id_messaggio = $_GET[id];
    }
    else
    {$id_messaggio = "1";}

    if(is_numeric($name_utente)){
    $name_utente = $_GET[utente];
    }
    else
    {$name_utente = "1";}

    $controllo_messaggio = mysql_query ("SELECT *
    FROM `messaggi`
    WHERE `id_message` = '$id_messaggio'
    AND `name_recevier` = '$name_utente'
    LIMIT 0 , 1 ");

    $verita = mysql_num_rows($controllo_messaggio);
    if ( ($verita =="1") && ($name_utente == $nome_utente) );
    {
    $aggiorno_messaggio = mysql_query ("UPDATE `messaggi` SET `status` = '1' WHERE `id` = '$id_messaggio' LIMIT 1") ;

    Echo "

    Mittente:
    Oggetto:
    Messaggio:
    Data:

    ‘.$mittente.’
    ‘.$oggetto.’
    ‘.$messaggio.’
    ‘.$data.’

    “;

    }
    else
    {
    echo “Errore!”;
    }
    ?>
    [/CODE]

    • Vincenzo 7 febbraio 2012 at 16:51 - Reply

      Primo errore si scrivere “echo” e non “Echo”!
      Poi questa implementazione non fa affatto bene!
      [php]
      $oggetto = mysql_query("SELECT oggetto WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
      $messaggio = mysql_query("SELECT messaggio WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
      $data = mysql_query("SELECT data WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
      [/php]
      Troppe chiamate al database lo appesantisci molto!.

  22. Giuseppe 7 febbraio 2012 at 16:41 - Reply

    scusa mi da un errore:
    Parse error: syntax error, unexpected T_ELSE in /membri/shopgame/read_message.php on line 54

    Sulla linea 54 ci sta solo else… nn capisco!
    Codice che ho creato:

  23. Giuseppe 7 febbraio 2012 at 16:54 - Reply

    ho corretto “Echo” con “echo” ma l’errore sulla riga 54 che me lo indica su “else” rimane… come risolvo?…
    Ho provato con questo link:
    http://shopgame.altervista.org/read_message.php?id=15&utente=RuggeriExtreme

    • Vincenzo 7 febbraio 2012 at 17:13 - Reply

      Aprendo il link che hai inserito a me non da nessun errore…

  24. Giuseppe 7 febbraio 2012 at 17:21 - Reply

    ho tolto l’else finale che risultava obsoleto nn so perchè ora va ma non visualizza il contenuto nelle tabelle come mai?
    Vedi se ho fatto giusto:
    [php]
    <?php
    include ("db_connect.php");
    include ("check1.php");
    session_start();
    $user = mysql_query("SELECT *
    FROM `users`
    WHERE `username` =’$username’
    AND `password` = ‘$pass’
    LIMIT 0 , 1");
    if ($autorizzato == "1"){
    ?>
    <?
    $id_messaggio = $_GET[id];
    $name_utente = $_GET[utente];
    $mittente = mysql_query("SELECT name_sender WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    $oggetto = mysql_query("SELECT oggetto WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    $messaggio = mysql_query("SELECT messaggio WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    $data = mysql_query("SELECT data WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    if(is_numeric($id_messaggio)){
    $id_messaggio = $_GET[id];
    }
    else
    {$id_messaggio = "1";}

    if(is_numeric($name_utente)){
    $name_utente = $_GET[utente];
    }
    else
    {$name_utente = "1";}

    $controllo_messaggio = mysql_query ("SELECT *
    FROM `messaggi`
    WHERE `id_message` = ‘$id_messaggio’
    AND `name_recevier` = ‘$name_utente’
    LIMIT 0 , 1 ");

    $verita = mysql_num_rows($controllo_messaggio);
    if ( ($verita =="1") && ($name_utente == $nome_utente) );
    {
    $aggiorno_messaggio = mysql_query ("UPDATE `messaggi` SET `status` = ’1′ WHERE `id_message` = ‘$id_messaggio’ LIMIT 1") ;

    echo "<table border=\"1\">
    <tr>
    <td>Mittente:</td>
    <td>Oggetto:</td>
    <td>Messaggio:</td>
    <td>Data:</td>
    </tr>

    <tr>
    <td>$mittente</td>
    <td>$oggetto</td>
    <td>$messaggio</td>
    <td>$data</td>
    </tr>
    </table>";
    }

    ?>
    <?
    }
    else
    {
    ?>
    errore
    <?
    }
    ?>
    [/php]

  25. Giuseppe 7 febbraio 2012 at 17:25 - Reply

    puoi dirmi se questo pezzo è giusto?
    [php]
    if(is_numeric($name_utente)){
    $name_utente = $_GET[utente];
    }
    else
    {$name_utente = "1";}
    [/php]
    penso che sia sbagliato perchè alla fine non è numerico ma è il nome del destinatario…
    ovvero:
    http://link/read_message.php?id=id messaggio(numerico)&utente=nome destinatario(che non è numerico)

    • Vincenzo 7 febbraio 2012 at 17:46 - Reply

      Come fai ad analizzare una variabile vuota?.. $name_utente l’hai usata in precedenza? o l’ha messa li cosi?

  26. Giuseppe 7 febbraio 2012 at 17:38 - Reply

    ho visto che stai provando anche tu..
    comunque lo status come da variabile viene settato da ’0′ a ’1′ correttamente nel database…
    però non spuntano i valori nelle varie tabelle del link…
    è strano come mai?

  27. Giuseppe 7 febbraio 2012 at 17:50 - Reply

    ho corretto le variabili mancava FROM messaggi
    comunque ancora nn si vede compare un messaggio di errore… (Resource id #1) comunque

    $name_utente se leggi all’inizio corrisponde al get:

    http://link/id=id_messaggio&utente=name_utente

    Comunque mi dici come richiamare adesso nelle tabelle…

    • Vincenzo 7 febbraio 2012 at 18:13 - Reply

      Contattami su skype, cosi vediamo di realizzare qualcosa di personlizzato

  28. Giuseppe 7 febbraio 2012 at 18:16 - Reply

    nome skype: RuggeriExtreme

    se nn vuoi aggiungermi dammi tuo nome che ti aggiungo io

    • Vincenzo 7 febbraio 2012 at 18:26 - Reply

      Ti ho aggiunto! :)

  29. Giuseppe 7 febbraio 2012 at 18:28 - Reply

    Conosci qualche metodo per farmi arrivare la notifica? perchè non è arrivata… se no dammi il contatto che ti aggiungo io :)

  30. Giuseppe 7 febbraio 2012 at 19:26 - Reply

    [php]
    <?php
    include ("db_connect.php");
    include ("check1.php");
    session_start();
    $user = mysql_query("SELECT *
    FROM `users`
    WHERE `username` =’$username’
    AND `password` = ‘$pass’
    LIMIT 0 , 1");
    if ($autorizzato == "1"){
    ?>
    <?
    $id_messaggio = $_GET[id];
    $name_utente = $_GET[utente];
    $mittente = mysql_query("SELECT name_sender FROM messaggi WHERE `id_message` = ‘$id_messaggio’ AND `name_recevier` = ‘$name_utente’ LIMIT 0 , 1 ");
    $oggetto = mysql_query("SELECT oggetto FROM messaggi WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    $messaggio = mysql_query("SELECT messaggio FROM messaggi WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    $data = mysql_query("SELECT data FROM messaggi WHERE ‘id_message’ = ‘$id_messaggio’ AND ‘name_recevier’ = ‘$name_utente’ LIMIT 0 , 1 ");
    if(is_numeric($id_messaggio)){
    $id_messaggio = $_GET[id];
    }
    else
    {$id_messaggio = "1";}

    if(is_numeric($name_utente)){
    $name_utente = $_GET[utente];
    }
    else
    {$name_utente = "1";}

    $controllo_messaggio = mysql_query ("SELECT *
    FROM `messaggi`
    WHERE `id_message` = ‘$id_messaggio’
    AND `name_recevier` = ‘$name_utente’
    LIMIT 0 , 1 ");

    $verita = mysql_num_rows($controllo_messaggio);
    if ( ($verita =="1") && ($name_utente == $nome_utente) );
    {
    $aggiorno_messaggio = mysql_query ("UPDATE `messaggi` SET `status` = ’1′ WHERE `id_message` = ‘$id_messaggio’ LIMIT 1") ;

    echo "<table border=\"1\">
    <tr>
    <td>Mittente:</td>
    <td>Oggetto:</td>
    <td>Messaggio:</td>
    <td>Data:</td>
    </tr>
    <tr>
    <td>$mittente</td>
    <td>$oggetto</td>
    <td>$messaggio</td>
    <td>$data</td>
    </tr>
    </table>";
    }

    ?>
    <?
    }
    else
    {
    ?>
    errore
    <?
    }
    ?>[/php]

    Nelle tabelle al posto di comparire i dati come dovrebbe compare:Resource id #10

    Eppure è tutto corretto dove sbaglio…

  31. Yuri 7 febbraio 2012 at 19:54 - Reply

    Tutti gli $_GET sono sbagliati…mancano gli apici dentro le quadre… deve essere così $_GET['utente']

    All’inizio dentro al primo if chiudi e apri il php
    if (…) {
    ?> <?

    }
    e non è bello!

    apri e chiudi il php a caso….

  32. Yuri 7 febbraio 2012 at 19:54 - Reply

    il copia e incolla non fa decisamente per te Giuseppe XD
    Comunque per mettere il tuo codice, usa http://www.pastebin.com

  33. Giuseppe 7 febbraio 2012 at 20:25 - Reply

    Yuri nn faccio copia incolla guarda… siccome sono alle basi col php mi hanno detto di sostituire gli echo chiudendo ed aprendo il php…
    Caso mai poi gli do una pulita l’importante è che funzioni!

  34. Giuseppe 7 febbraio 2012 at 20:29 - Reply

    ho inserito gli apici nei $_GET ma il problema nn è quello… infatti rimane lo stesso problema di prima!

Leave A Response »