ホームページ バックエンド開発 PHPチュートリアル PHPとACCESSを使ってチャットルームを作成する(5)_PHPチュートリアル

PHPとACCESSを使ってチャットルームを作成する(5)_PHPチュートリアル

Jul 21, 2016 pm 04:01 PM
access function php 書く そして 使用 チャットルーム

member.php3 :
function delquot($sStr){
$s=str_replace(chr(124),"",$sStr);
$s=str_replace(chr(39),"",$s);
$s=str_replace(chr(34),"",$s);
$s を返します。
}

$ConnID=@odbc_connect("jtfcht","admin","");
if ($ConnID){
@odbc_exec($ConnID,"UPDATE ユーザー SET RoomID=0,ToID=0,ToName='',Secret=False,FirstTime=False,LstTime=0,LastLoc=0 WHERE (NOT ( UserID=1)) AND LstTime<".(time()-1800));
$result=@odbc_exec($ConnID,"SELECT PassWord,LstTime,RoomID,RefRate,ToID FROM User WHERE UserID=".$id);
if (@odbc_fetch_into($result,0,&$rArr)){
$sRoomID=$rArr[2];
$sRefRate=(int)$rArr[3];
$sToID=$rArr[4];
if ($sRefRate<2) $sRefRate=2;
if (($id=="1" && $ps=="superldz") || (($rArr[0]==$ps) && ($rArr[1]>=(time()-1800) )))){
スイッチ ($ptp){
case "1":
$bYes=true;
$sErr="";
$sRoom=htmlspecialchars(trim(delquot($sRoom));
if ($sPass1!=$sPass2){
$bYes=false;
$sErr="您的口令输入的不正确";
}
if ($sRoom=="大厅"){
$bYes=false;
$sErr="你烦死了,都告诉你「大厅」了";
}
if ($bYes){
$sPass1=delquot($sPass1);
@odbc_exec($ConnID,"INSERT INTO Room (RoomName, MasterID, Password) VALUES ('".$sRoom."', ".$id.", '".$sPass1."')");
if ($php_errormsg=="SQL エラー: [Microsoft][ODBC Microsoft Access 97 Driver] テーブルに要求した変更は、インデックス、主キー、またはリレーションシップに重複した値が作成されるため、成功しませんでした。データを変更してください重複を含むフィールド、SQLExecDirect の SQL 状態 23000"){
$bYes=false;
$sErr="这个房间已经有了";
$result=@odbc_exec($ConnID, "SELECT RoomID FROM Room WHERE RoomName = '".$sRoom."'");
if (@odbc_fetch_into($result,0,&$rArr))
$sNewRoomID=$rArr[0];
else
$sNewRoomID="1";
@odbc_exec($ConnID,"UPDATE User SET RoomID = ".$sNewRoomID.",ToID=0,ToName='大家' WHERE UserID=".$id);
if ((int)$sRoomID!=1){
$result=@odbc_exec($ConnID,"SELECT COUNT(UserID) FROM User Wここで RoomID=".$sRoomID);
@odbc_fetch_into($result,0,&$rArr);
if ($rArr[0]==0) @odbc_exec($ConnID,"DELETE * FROM Room Where RoomID=".$sRoomID);
}
$sRoomID=$sNewRoomID;
}
}
if (!$bYes){
?>


新建房间出错



<ボディ>

 



请重新新建


exit();

休憩。
ケース "2":
$sKick=substr($sMember,2); if($ id == "1" && $ ps = "superldz"){
$ result =@odbc_exec($ connid、 "select userid、userId ="。($ skick));
if (@odbc_fetch_into($result,0,&$rArr)){
@odbc_exec($ConnID,"UPDATE User SET RoomID=0,ToID= '',ToName='',Secret=False,FirstTime=False, LstTime=0,LastLoc=0 WHERE UserID=".$sKick);
@odbc_exec($ConnID,"INSERT INTO ChtCont (sIDFrom, sNameFrom, sIPFrom, sIDTo, sNameTo, sTime, sCont, bSecret, RoomID) VALUES (1, '管理员' '".getenv (「REMOTE_ADDR」)。 ', 0, '大家', '".date("H:i:s")."', '【系统消息】".$rArr[1]."这个坏蛋被踢この聊天室が出ました:-)'、False、0)");
}
}
else{
if ($sKick=="0" || $sKick==$id) $bCanKick="2";
else $bCanKick="1";
$result=@odbc_exec($ConnID,"SELECT MasterID FROM Room WHERE RoomID=".$sRoomID);
if (@odbc_fetch_into($result,0,&$rArr)){
if ($rArr[0]!=$id) $bCanKick="3";
}
else $bCanKick="4"; if($ bcankick == "1"){
@odbc_exec($ connid、 "uspled users set lsttime ="。time()。 "where userid ="。$ id);
@odbc_exec($ConnID,"UPDATE ユーザー SET RoomID=1 WHERE UserID=".$sKick);
}
else{
?>


踢人出错



<ボディ>

 


動きません!私は房主吧ではありません。


这里戻ります


exit();


休憩。
ケース "3":
$sToID=substr($selMember,2);
if ($sToID=="0")
$sToName="大家";
else{
$result=@odbc_exec($ConnID,"SELECT UserName FROM User WHERE UserID=".$sToID);
if (@odbc_fetch_into($result,0,&$rArr))
$sToName=$rArr[0];
else
$sToName="未知";
}} @odbc_exec($ connid、 "Update users set toid ="。$ stoid。 "、toname = '"。$ stoname。 "'、lsttime ="。time()。 "where userid ="。$ id)) ;
休憩;
}
?>




<スクリプト言語="JavaScript">



<ボディ>



















}
else echo "人员< ;/title><link rel='stylesheet' href='main.css' type='text/css'></head><body></body></html>"; <br> } <br> else echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>人员< ;link rel='stylesheet' href='main.css' type='text/css'>";
@odbc_close($ConnID);
}
else echo "人员";
?>

www.bkjia.com本当http://www.bkjia.com/PHPjc/316748.html技術記事 member.php3 : ?php 関数 delquot($sStr){ $s=str_replace(chr(124),,$sStr); $s=str_replace(chr(39),,$s); $s=str_replace(chr(34),,$s); $s を返します。 $ConnID=@odbc_connect(jtfcht,admi...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 PHPで厳密なタイプ(declare(strict_types = 1);)を説明します。 Apr 07, 2025 am 12:05 AM

PHPの厳格なタイプは、declare(strict_types = 1)を追加することで有効になります。ファイルの上部に。 1)関数パラメーターのタイプチェックと戻り値を強制して、暗黙の型変換を防ぎます。 2)厳格なタイプを使用すると、コードの信頼性と予測可能性を改善し、バグを減らし、保守性と読みやすさを向上させることができます。

作曲家は何に使用されていますか? 作曲家は何に使用されていますか? Apr 06, 2025 am 12:02 AM

作曲家は、PHPの依存関係管理ツールです。 Composerを使用するコアステップは次のとおりです。1)「Stripe/Stripe-PHP」などのComposer.jsonの依存関係を宣言:「^7.0」; 2)ComposerInStallを実行して、依存関係をダウンロードおよび構成します。 3)Composer.LockおよびAutoload.phpを介してバージョンとオートロードを管理します。 Composerは依存関係管理を簡素化し、プロジェクトの効率と保守性を向上させます。

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

See all articles
  if ($id!="1"){
$result=@odbc_exec($ConnID,"SELECT RoomName FROM Room Where RoomID = ".$sRoomID);
@odbc_fetch_into($result,0,&$rArr);
echo "你在:".$rArr[0];
}
?>
<入力タイプ="hidden" name="ptp" value="2"><入力タイプ="hidden" name="ps" value="">
温酒吧聊天室
©1999年贾铁锋< ;/td>