Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    visibilita ad un determinato id

    salve ragazzi ho assoluto bisogno di voi ho trovato una semplice chat e chiedevo se mi riuscite a dare una mano.
    il problema e che devo rendere visibile il messaggio che mando ad un solo id salvato nel database ma non so come modificarlo riuscite ad aiutarmi se vi posto il codice?
    grazie mille attendo risposte

  2. #2
    vi posto il jquery e il php sopratutto il php

    la funzione ajax:

    <script type="text/javascript">
    $(document).ready(function(){
    timestamp = 0;
    updateMsg();
    $("form#chatform").submit(function(){
    $.post("backend.php",{
    mio_id: $("#valore_mio_id").val(),
    message: $("#msg").val(),
    name: $("#author").val(),
    action: "postmsg",
    time: timestamp
    }, function(xml) {
    $("#msg").empty();
    addMessages(xml);
    });
    return false;
    });
    });
    function addMessages(xml) {
    if($("status",xml).text() == "2") return;
    timestamp = $("time",xml).text();
    $("message",xml).each(function(id) {
    message = $("message",xml).get(id);
    $("#messagewindow").prepend(""+$("author",message).text()+
    "
    : "+$("text",message).text()+
    "
    ");
    });
    }
    function updateMsg() {
    $.post("backend.php",{ time: timestamp }, function(xml) {
    $("#loading").remove();
    addMessages(xml);
    });
    setTimeout('updateMsg()', 1000);
    }
    </script>

    ed il php sul quale devo modificare(penso)

    <?php
    // Configuration
    $dbhost = "localhost";
    $dbuser = "****";
    $dbpass = "***";
    $dbname = "***";
    $store_num = 10;
    $display_num = 10;

    // Script
    error_reporting(E_ALL);

    header("Content-type: text/xml");
    header("Cache-Control: no-cache");

    $dbconn = mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($dbname,$dbconn);

    foreach($_POST as $key => $value)
    {
    $$key = mysql_real_escape_string($value, $dbconn);
    }

    if(@$action == "postmsg")
    {
    mysql_query("INSERT INTO messages (`user`,`msg`,`time`,`from`)
    VALUES ('$name','$message',".time().",'$mio_id')",$dbconn );
    mysql_query("DELETE FROM messages WHERE id <= ".
    (mysql_insert_id($dbconn)-$store_num),$dbconn);
    }

    $messages = mysql_query("SELECT user,msg
    FROM messages
    WHERE time>$time
    ORDER BY id ASC
    LIMIT $display_num",$dbconn);
    if(mysql_num_rows($messages) == 0) $status_code = 2;
    else $status_code = 1;

    echo "<?xml version=\"1.0\"?>\n";
    echo "<response>\n";
    echo "\t<status>$status_code</status>\n";
    echo "\t<time>".time()."</time>\n";
    if($status_code == 1)
    {
    while($message = mysql_fetch_array($messages))
    {
    $message['msg'] = htmlspecialchars(stripslashes($message['msg']));
    echo "\t<message>\n";
    echo "\t\t<author>$message[user]</author>\n";
    echo "\t\t<text>$message[msg]</text>\n";
    echo "\t</message>\n";
    }
    }
    echo "</response>";
    ?>

  3. #3
    Aiuto vi prego..

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    non ho capito bene, vediamo però se quello che è capito si avvicina alla soluzione.. praticamente vuoi che un messaggio che l'utente invia lo mandi come se fosse una chat privata tra due persone.
    Se così fosse devi aggiungere un campo nel DB che chiamarei "to" visti i nomi dei campi della query
    mysql_query("INSERT INTO messages (`user`,`msg`,`time`,`from`, `to`)
    VALUES ('$name','$message',".time().",'$mio_id', '$suo_id')",$dbconn);

    quando un utente si logga devi recuperare il suo id e devi anche recuperare l'id di quello a cui vuole mandare il messaggio..

    che ho capito? fischi per fiaschi?

  5. #5
    no hai capito in pieno e ti ringrazio mille pero io aggiungo quel campo e fino li ok recupero l id e ok pero come faccio a dirgli che il messaggio lo vede solamente id 2 per esempio e qui che mi blocco

  6. #6
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    io sono l'utente che ha id 2.
    quando faccio il login il sistema deve recuperare il mio id, e fare la query per farmi vedere i messaggi che hanno come valore "to" = 2 tipo:
    select * from tabella WHERE to = '$suo_id'
    ti farà vedere tutti i messaggi da me ricevuti..
    eviterei di chiamare una colonna from.. cioè non credo vada in errore PHP ma forse puoi sbagliarti tu..

  7. #7
    allora ci sono riuscito ora vede tutti i messaggi che ho ricevuto da un determinato utente la domanda ora e come faccio a mettere che si vedono anche i mess inviati da me a questo determinato utente? ti posto il codice php nuovo..grazie mille dell aiuto

    $dbconn = mysql_connect($dbhost,$dbuser,$dbpass);
    mysql_select_db($dbname,$dbconn);

    foreach($_POST as $key => $value)
    {
    $$key = mysql_real_escape_string($value, $dbconn);
    }

    if(@$action == "postmsg")
    {
    mysql_query("INSERT INTO messages (`user`,`msg`,`time`,`from`,`arrivo_messaggio`,`id _utente`)
    VALUES ('$name','$message',".time().",'$mio_id','$id_ospi te','$mio_id') ",$dbconn);
    mysql_query("DELETE FROM messages WHERE id <= ".
    (mysql_insert_id($dbconn)-$store_num),$dbconn);
    }

    $messages = mysql_query("SELECT user,msg
    FROM messages
    WHERE arrivo_messaggio='$mio_id' and id_utente='$id_ospite' and time>$time
    ORDER BY id ASC
    LIMIT $display_num",$dbconn);
    if(mysql_num_rows($messages) == 0) $status_code = 2;
    else $status_code = 1;

    echo "<?xml version=\"1.0\"?>\n";
    echo "<response>\n";
    echo "\t<status>$status_code</status>\n";
    echo "\t<time>".time()."</time>\n";
    if($status_code == 1)
    {
    while($message = mysql_fetch_array($messages))
    {
    $message['msg'] = htmlspecialchars(stripslashes($message['msg']));
    echo "\t<message>\n";
    echo "\t\t<author>$message[user]</author>\n";
    echo "\t\t<text>$message[msg]</text>\n";
    echo "\t</message>\n";
    }
    }
    echo "</response>";
    ?>

  8. #8
    aiutoooo

  9. #9
    non ce proprio nessuno??

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,592
    di sabbbbbbato è tosta..
    comunque i parametri per vedere quelli che TU hai inviato ad un utente X sono due, cioè
    $mio_id e $suo_id.. se imposti la query con questi due parametri, ordinati per tempo, se hai un timestamp, hai quella che in facebook è il "botta e risposta"..
    una roba tipo:
    select * from tabella WHERE from '$mio_id' AND to = '$suo_id' ORDER BY tempo

    prova e fammi sapere..

    p.s.: sono andato a braccio, sono a casa in procinto di vedere un film...
    se ho scritto una castroneria.. chiedo venia..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.