Click here to Skip to main content
15,895,656 members
Please Sign up or sign in to vote.
1.00/5 (3 votes)
See more:
PHP
session_start();
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'fb');
define('DB_PASSWORD', 'fb');
define('DB_DATABASE', 'fb');
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());

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

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

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

function chatHeartbeat() {
    $sql = "select users.username,chat.from,chat.message,chat.to,chat.id,chat.sent,chat.recd from chat,users where (chat.to = '".mysql_real_escape_string($_SESSION['chatuser'])."' AND recd = 0) and chat.from=users.uid 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 .= &lt;&lt;<eod>
                       {
            "s": "0",
            "u": "{$chat['username']}",
            "f": "{$chat['from']}",
            "m": "{$chat['message']}"
       },
EOD;

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

    $_SESSION['chatHistory'][$chat['from']] .= &lt;&lt;<eod>
                           {
            "s": "0",
            "u": "{$chat['username']}",
            "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 =&gt; $time) {
        if (!isset($_SESSION['tsChatBoxes'][$chatbox])) {
            $now = time()-strtotime($time);
            $time = date('g:iA M dS', strtotime($time));

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

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

    $_SESSION['chatHistory'][$chatbox] .= &lt;&lt;<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['chatuser'])."' and recd = 0";
    $query = mysql_query($sql);

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

            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 =&gt; $void) {
            $items .= chatBoxSession($chatbox);
        }
    }


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

header('Content-type: application/json');
/*
$suser=$_SESSION['chatuser'];
$sc=mysql_query("select username from users where username='$su'");
while($row_sc=mysql_fetch_array($sc))
{
$_SESSION['current_chat_username']=$row_sc['username'];
}*/
?&gt;
{
        "username": "<?php echo $_SESSION['chatuser'];??>",
        "items": [
            <?php echo $items;??>
        ]
}

    exit(0);

}

function chatName() {
    $un = '';

$su=$_GET['usw'];
$sc2=mysql_query("select username from users where uid='$su' limit 1");
while($row_sc2=mysql_fetch_array($sc2))
{
$un=$row_sc2["username"];
}
?&gt;
{
        "unm": ["<?php echo $un;??>"]

}



    exit(0);
}



function sendChat() {
    $from = $_SESSION['chatuser'];
    $to = $_POST['to'];
    $message = $_POST['message'];
    $sql = "select users.username from users where users.uid='$from' limit 1";
    $uname = mysql_query($sql);
    $from_user='';
    while ($un = mysql_fetch_array($uname)) {
    $from_user=$un['username'];
    }


    $_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']] .= &lt;&lt;<eod>
                       {
            "s": "1",
            "u": "{$from_user}",
            "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($text, ENT_QUOTES);
    $text = str_replace("\n\r","\n",$text);
    $text = str_replace("\r\n","\n",$text);
    $text = str_replace("\n","<br>",$text);
    return $text;
}



[edit]Code block added - OriginalGriff[/edit]
Posted
Updated 5-Nov-12 20:36pm
v2
Comments
Sergey Alexandrovich Kryukov 6-Nov-12 2:36am    
What makes you thinking that "conversion" even makes sense? These programming technologies are very different. And you did not even explain what you want to achieve. It does not look a productive approach.

If you need to learn ASP.NET, try to do it, ask questions. And ultimately, implement what you need.
--SA

No.
We are not here to take your code, convert it (without knowing what it does, or is supposed to do), test it, debug it, and make it work.

In other words, do your work for you.

Try for yourself. If you get a specific problem, then feel free to come back and ask about it. But we will not do your whole task for you!
 
Share this answer
 
Comments
Muhammd Faris 6-Nov-12 4:11am    
i want to buid a chat like facebook ...i know only asp.net , when i check i see only php codes..

if you know code for chatting like facebook..please send me the link.
OriginalGriff 6-Nov-12 4:25am    
Strange - a very quick google gave me this: http://www.codeproject.com/Articles/33817/Build-a-Web-based-Chat-using-ASP-NET-Ajax
!!!!!!!!LOL!!!!!!!
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900