Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Chat personale in php?

  1. #1

    Chat personale in php?

    Salve a tutti,
    vorrei creare una chat personale in php e un mio amico mi ha fornito lo script (credo lo abbia preso da qua http://www.sastgroup.com/links/chat-stile-facebook )chiedendomi di implementarglielo in modo da farglielo funzionare fra gli amici dell'utente online, solo che sono al primo anno di università e non so benissimo come farla, potreste aiutarmi. Riesco solo a farla funzionare con utenti preimpostati e lui mi ha chiesto di implementargliela come ho scritto precedentemente. Mi ha detto che conta molto sul mio aiuto e, quindi, non vorrei deluderlo.

    Ecco i vari script:

    Chat.php:

    Codice PHP:
    <?php

    define 
    ('DBPATH','localhost');
    define ('DBUSER','root');
    define ('DBPASS','');
    define ('DBNAME','miodatabase');

    session_start();

    global 
    $dbh;
    $dbh mysql_connect(DBPATH,DBUSER,DBPASS);
    mysql_selectdb(DBNAME,$dbh);

    if (
    $_GET['action'] == "chatheartbeat") { chatHeartbeat(); } 
    if (
    $_GET['action'] == "sendchat") { sendChat(); } 
    if (
    $_GET['action'] == "closechat") { closeChat(); } 
    if (
    $_GET['action'] == "startchatsession") { startChatSession(); } 

    if (!isset(
    $_SESSION['chatHistory'])) {
        
    $_SESSION['chatHistory'] = array();    
    }

    if (!isset(
    $_SESSION['openChatBoxes'])) {
        
    $_SESSION['openChatBoxes'] = array();    
    }

    function 
    chatHeartbeat() {
        
        
    $sql "select * from chat where (chat.to = '".mysql_real_escape_string($_SESSION['utente'])."' AND recd = 0) order by id ASC";
        
    $query mysql_query($sql);
        
    $items '';

        
    $chatBoxes = array();

        while (
    $chat mysql_fetch_array($query)) {

            if (!isset(
    $_SESSION['openChatBoxes'][$chat['from']]) && isset($_SESSION['chatHistory'][$chat['from']])) {
                
    $items $_SESSION['chatHistory'][$chat['from']];
            }

            
    $chat['message'] = sanitize($chat['message']);

            
    $items .= <<<EOD
                           {
                "s": "0",
                "f": "
    {$chat['from']}",
                "m": "
    {$chat['message']}"
           },
    EOD;

        if (!isset(
    $_SESSION['chatHistory'][$chat['from']])) {
            
    $_SESSION['chatHistory'][$chat['from']] = '';
        }

        
    $_SESSION['chatHistory'][$chat['from']] .= <<<EOD
                               {
                "s": "0",
                "f": "
    {$chat['from']}",
                "m": "
    {$chat['message']}"
           },
    EOD;
            
            unset(
    $_SESSION['tsChatBoxes'][$chat['from']]);
            
    $_SESSION['openChatBoxes'][$chat['from']] = $chat['sent'];
        }

        if (!empty(
    $_SESSION['openChatBoxes'])) {
        foreach (
    $_SESSION['openChatBoxes'] as $chatbox => $time) {
            if (!isset(
    $_SESSION['tsChatBoxes'][$chatbox])) {
                
    $now time()-strtotime($time);
                
    $time date('g:iA M dS'strtotime($time));

                
    $message "Sent at $time";
                if (
    $now 180) {
                    
    $items .= <<<EOD
    {
    "s": "2",
    "f": "
    $chatbox",
    "m": "
    {$message}"
    },
    EOD;

        if (!isset(
    $_SESSION['chatHistory'][$chatbox])) {
            
    $_SESSION['chatHistory'][$chatbox] = '';
        }

        
    $_SESSION['chatHistory'][$chatbox] .= <<<EOD
            {
    "s": "2",
    "f": "
    $chatbox",
    "m": "
    {$message}"
    },
    EOD;
                
    $_SESSION['tsChatBoxes'][$chatbox] = 1;
            }
            }
        }
    }

        
    $sql "update chat set recd = 1 where chat.to = '".mysql_real_escape_string($_SESSION['utente'])."' and recd = 0";
        
    $query mysql_query($sql);

        if (
    $items != '') {
            
    $items substr($items0, -1);
        }
    header('Content-type: application/json');
    ?>
    {
            "items": [
                <?php echo $items;?>
            ]
    }

    <?php
                
    exit(0);
    }

    function 
    chatBoxSession($chatbox) {
        
        
    $items '';
        
        if (isset(
    $_SESSION['chatHistory'][$chatbox])) {
            
    $items $_SESSION['chatHistory'][$chatbox];
        }

        return 
    $items;
    }

    function 
    startChatSession() {
        
    $items '';
        if (!empty(
    $_SESSION['openChatBoxes'])) {
            foreach (
    $_SESSION['openChatBoxes'] as $chatbox => $void) {
                
    $items .= chatBoxSession($chatbox);
            }
        }


        if (
    $items != '') {
            
    $items substr($items0, -1);
        }

    header('Content-type: application/json');
    ?>
    {
            "username": "<?php echo $_SESSION['utente'];?>",
            "items": [
                <?php echo $items;?>
            ]
    }

    <?php


        
    exit(0);
    }

    function 
    sendChat() {
        
    $from $_SESSION['utente'];
        
    $to $_POST['to'];
        
    $message $_POST['message'];

        
    $_SESSION['openChatBoxes'][$_POST['to']] = date('Y-m-d H:i:s'time());
        
        
    $messagesan sanitize($message);

        if (!isset(
    $_SESSION['chatHistory'][$_POST['to']])) {
            
    $_SESSION['chatHistory'][$_POST['to']] = '';
        }

        
    $_SESSION['chatHistory'][$_POST['to']] .= <<<EOD
                           {
                "s": "1",
                "f": "
    {$to}",
                "m": "
    {$messagesan}"
           },
    EOD;


        unset(
    $_SESSION['tsChatBoxes'][$_POST['to']]);

        
    $sql "insert into chat (chat.from,chat.to,message,sent) values ('".mysql_real_escape_string($from)."', '".mysql_real_escape_string($to)."','".mysql_real_escape_string($message)."',NOW())";
        
    $query mysql_query($sql);
        echo 
    "1";
        exit(
    0);
    }

    function 
    closeChat() {

        unset(
    $_SESSION['openChatBoxes'][$_POST['chatbox']]);
        
        echo 
    "1";
        exit(
    0);
    }

    function 
    sanitize($text) {
        
    $text htmlspecialchars($textENT_QUOTES);
        
    $text str_replace("\n\r","\n",$text);
        
    $text str_replace("\r\n","\n",$text);
        
    $text str_replace("\n","
    "
    ,$text);
        return 
    $text;
    }
    Samplea.php (modificato in base all'utente settato):
    Codice PHP:
    <?php
    session_start
    ();
    $_SESSION['utente'] = "Marco" // Must be already set
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd" >

    <html>
    <head>
    <title>Sample Chat Application</title>
    <style>
    body {
        background-color: #eeeeee;
        padding:0;
        margin:0 auto;
        font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
        font-size:11px;
    }
    </style>

    <link type="text/css" rel="stylesheet" media="all" href="css/chat.css" />
    <link type="text/css" rel="stylesheet" media="all" href="css/screen.css" />

    <!--[if lte IE 7]>
    <link type="text/css" rel="stylesheet" media="all" href="css/screen_ie.css" />
    <![endif]-->

    </head>
    <body>
    <div id="main_container">

    [url="javascript:void(0)"]Chat con Giuseppe[/url]
    [url="javascript:void(0)"]Chat con Ines[/url]


    </div>

    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/chat.js"></script>

    </body>
    </html>
    Gli altri script li potete prendere dal sito che vi ho linkato all'inizio: ho controllato e sono uguali
    Conto molto sul vostro aiuto.
    Grazie a tutti in anticipo,
    cicciaramba

  2. #2

    Re: Chat personale in php?

    Originariamente inviato da cicciaramba
    solo che sono al primo anno di università e non so benissimo come farla, potreste aiutarmi.
    Forse QUA l'aiuto lo trovi

  3. #3

    Re: Re: Chat personale in php?

    Originariamente inviato da cris.calleo
    Forse QUA l'aiuto lo trovi
    Non volevo fatto il lavoro, volevo solo dei consigli su come farlo e, poi, lo avrei realizzato da solo!

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Mandare a quel paese il tuo amico ogni tanto?

    Comunque per una chat ci sono moltissime cose di cui bisogna tenere conto
    dall'ordinamento al tempo di richiesta, ti consiglio anch'io la sezione che ti ha linkato
    cris dato che qui nessuno fa chat per un grazie mille

  5. #5
    Originariamente inviato da RoTeam
    Mandare a quel paese il tuo amico ogni tanto?

    Comunque per una chat ci sono moltissime cose di cui bisogna tenere conto
    dall'ordinamento al tempo di richiesta, ti consiglio anch'io la sezione che ti ha linkato
    cris dato che qui nessuno fa chat per un grazie mille
    Grazie comunque a tutti comunque, ma proverò a fare da solo se nessuno è disposto a darmi solo piccole direttive su come svolgere il lavoro.

  6. #6
    Originariamente inviato da cicciaramba
    Grazie comunque a tutti comunque, ma proverò a fare da solo se nessuno è disposto a darmi solo piccole direttive su come svolgere il lavoro.
    Risolto da solo.
    ___________________________

    Meglio soli che male accompagnati.

  7. #7
    Toglimi una curiosità ma, non basta semplicemente modificare questa parte?
    Codice PHP:
    <?php
    session_start
    ();
    $_SESSION['utente'] = "Marco" // Must be already set
    ?>
    Facendo tipo un login e impostando $_SESSION['utente'] = $name_login; ?
    (Si noti come nel pezzo da te riportato manchi anche un ";" generando un sintax error!)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.