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