[分享] 《魔镜在线》一个在线随机聊天网站源码,该如何处理
[分享] 《魔镜在线》一个在线随机聊天网站源码
程序使用PHP+MySQL,jQuery实现Ajax,页面布局用的DIV+CSS,并有一个VB写的客户端程序。
原演示地址:http://ask.n9sky.com/MagicMirror/ (现在不能访问了)
现在贴出部分代码:
server.php 主要的操作处理都在这个文件
- PHP code
<br> <?php <br /> $do = @$_GET['do']; <br> if ('' == $do) <br> { <br> exit('Missing Action'); <br> } <br> require 'config.php'; <br> require 'dll.php'; <br> session_start(); <br> // check session <br> if ('' == $_SESSION['sid']) exit('登录超时,请关闭重试!'); <br> switch ($do) <br> { <br> case 'init': <br> // check user && update <br> dll::import('mysql'); <br> $db = new mysql(); <br> $db->connect($dbs['server'], $dbs['user'], $dbs['password']); <br> $db->database($dbs['database']); <br> // update <br> $rs = $db->update(DBPrefix.'user', 'sid="'.$_SESSION['sid'].'"'); <br> $rs->set('client_to', ''); <br> $rs->set('role', RoleOnline); <br> $rs->set('last_access_time', time()); <br> $rs->setfunc('login_count', 'login_count+1'); <br> $rs->set('last_login_time', time()); <br> $ip = $_SERVER['REMOTE_ADDR']; <br> $ipx = explode('.', $ip); <br> $iplong = <br> $ipx[0] * 16777216 + <br> $ipx[1] * 65536 + <br> $ipx[2] * 256 + <br> $ipx[3]; <br> $rs->set('last_login_ip', $iplong); <br> if (!$rs->update()) <br> { <br> // add new <br> $rs = $db->insert(DBPrefix.'user'); <br> $rs->set('sid', $_SESSION['sid']); <br> $rs->set('client_to', ''); <br> $rs->set('role', RoleOnline); <br> $rs->set('last_access_time', time()); <br> $rs->set('login_count', 1); <br> $rs->set('last_login_time', time()); <br> $rs->set('last_login_ip', $iplong); <br> $rs->insert(); <br> } <br> $db->close(); <br> // display init page <br> display('init.html'); <br> break; <br> case 'status': <br> dll::import('mysql'); <br> // access $dbs <br> global $dbs; <br> $db = new mysql(); <br> $db->connect($dbs['server'], $dbs['user'], $dbs['password']); <br> $db->database($dbs['database']); <br> // update access <br> update_access($db); <br> // import mysql.class <br> display('server.status.html'); <br> $db->close(); <br> break; <br> case 'work': <br> $mode = $_GET['mode']; <br> // update work mode <br> dll::import('mysql'); <br> $db = new mysql(); <br> $db->connect($dbs['server'], $dbs['user'], $dbs['password']); <br> $db->database($dbs['database']); <br> // update <br> $rs = $db->update(DBPrefix.'user', 'sid="'.$_SESSION['sid'].'"'); <br> switch ($mode) <br> { <br> case 'answer': <br> $rs->set('role', RoleAnswer); <br> break; <br> case 'asker': <br> $rs->set('role', RoleAsker); <br> break; <br> case 'chater': <br> $rs->set('role', RoleChater); <br> break; <br> case 'offline': <br> $rs->set('role', RoleOffline); <br> $rs->set('client_to', ''); <br> // delete input status cache <br> @unlink(dirname('.').'/cache/'.$_SESSION['sid'].'.input.status'); <br> // clear session <br> unset($_SESSION); <br> break; <br> } <br> $rs->set('last_access_time', time()); <br> $rs->update(); <br> $db->close(); <br> // display mode page <br> if ($mode != 'offline') <br> {<div class="clear"> </div>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

セッション障害は通常、セッションの有効期間の期限切れまたはサーバーのシャットダウンによって発生します。解決策: 1. セッションの有効期間を延長する; 2. 永続ストレージを使用する; 3. Cookie を使用する; 4. セッションを非同期的に更新する; 5. セッション管理ミドルウェアを使用する。

PHPSession のクロスドメイン問題の解決策 フロントエンドとバックエンドの分離の開発では、クロスドメイン要求が標準になっています。クロスドメインの問題に対処するときは、通常、セッションの使用と管理が必要になります。ただし、ブラウザーのオリジンポリシーの制限により、デフォルトではセッションをドメイン間で共有できません。この問題を解決するには、いくつかの技術と方法を使用して、セッションのクロスドメイン共有を実現する必要があります。 1. ドメイン間でセッションを共有するための Cookie の最も一般的な使用法

1. セッションに基づく SMS ログインの実装 1.1 SMS ログインのフローチャート 1.2 SMS 検証コード送信の実装 フロントエンド リクエストの説明: リクエスト メソッドの説明 POST リクエスト パス /user/code リクエスト パラメータ 電話 (電話番号) 戻り値 バックエンド インターフェイスなし実装: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1。次の場合は携帯電話番号を確認します。

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

数回のプレリリースを経て、KDE Plasma 開発チームは 2 月 28 日に、初めて Qt6 フレームワークを使用した Linux および BSD システム用のデスクトップ環境のバージョン 6.0 を発表しました。 KDE Plasma 6.1 には、多数の新機能が追加されました。

JavaScriptCookies JavaScript Cookie の使用は、設定、購入、手数料、その他の情報を記憶および追跡する最も効果的な方法です。訪問者のエクスペリエンスを向上させるために必要な情報やウェブサイトの統計。 PHPCookieCookie は、クライアント コンピューターに保存され、追跡目的で保持されるテキスト ファイルです。 PHP は HTTP Cookie を透過的にサポートします。 JavaScript Cookie はどのように機能しますか?サーバーは、訪問者のブラウザに Cookie の形式でデータを送信します。ブラウザは Cookie を受け入れることができます。存在する場合、それは訪問者のハードドライブにプレーンテキストレコードとして保存されます。さて、訪問者がサイト上の別のページに到達すると、
