PHPメッセージプログラムの学習例
ほとんどの Web サイトはユーザーとのインタラクティブな関係を考慮します。現時点では、メッセージ ボード機能を使用して、ユーザーが Web サイトへの訪問または Web サイトとのやり取りに関する情報を残すことができます。
デザインの面では、ユーザーからの短いメッセージのみを残す非常にシンプルなデザインもあれば、非常に複雑で性質に応じて分類されるようにデザインすることもできます Web BBS システム。もちろん、自分の Web サイトに掲示板を作成する方法は、Web サイトの性質と Web Web サイト開発者の創意工夫に依存します。
ここで紹介する例は、すべてのメッセージの内容を単純にリストしたものです。ユーザーが一度に複数のメッセージを表示するための情報。システムのバックエンドは、 Oracle 7.x バージョンのデータベース システムを使用してメッセージを保存します。この例のデータベース (データベース) の名前は WWW、接続されているユーザー アカウントは user38 、パスワードは iam3849 です。この例を直接使用するには、まず次の SQL コマンドを実行して、 ゲストブック のデータ テーブルを作成する必要があります。
CREATE TABLE ゲストブック (
serial varchar2(255) not null、
ref varchar2(255) null、
id char(8) not null 、
alias varchar2(32) not null、
ip varchar2(1024) null、
msgdatedate not null、
email varchar2(1024) null、
msg varchar2(2000) not null、
flagchar(1) デフォルト 1、
主キー (シリアル)
);
上記 SQL 各フィールドの説明と詳細を以下の表に示します
シリアル番号 フィールド 名前 レコードタイプ レコード長 フィールドの説明 制限 キー
0 シリアル番号 シリアル varchar2 255 NN PK
1 参照シリアル番号 ref varchar2 255 一時的に予約されています。返信メッセージ機能の場合
2 アカウント id char 8 ユーザーアカウント NN
3 anonymous alias varchar2 32 表示名 NN
4 url ip varchar2 1024 インターネット IP
5 時刻 msgdate date NN
6 メール email varchar2 1024
7 メッセージ内容 msg varchar2 2000 NN
8 表示フラグ flag char 1 0: 表示しない
1: 表示する (デフォルト)
このセクションの掲示板関連プログラムでは、ユーザー認証機能が追加されている場合、 ゲストブック データに追加されています。表 ウェブマスター が今後不適切な送信者を見つけやすくするために、アカウント列にユーザーの認証アカウントを残しておきます。練習が必要な読者のために、ここにフィールドを残しておきます。
このセクションのプログラムを使用するには、まず Oracle 7.x バージョンをインストールし、 Web サーバー SQL*net は、 Oracle データベースに正常に接続できます。後で、 PHP をコンパイルするときに、 --with-oracle=/home/oracle/product/7.3.2 オプションを追加します。もちろん、そのパスが実際に Oracle のパスである限り、別のパスに変更しても問題ありません。 Oracle のインストールと使用方法の詳細については、関連する書籍を参照してください。
次のプログラムは、ユーザーのメッセージ情報を ゲストブック メッセージ データ テーブルに追加します。ユーザー認証機能を設定したい場合は、プログラムの開始時にチェックを入れることで、メッセージを送信した本人であることを確認することができ、メッセージを読むときに本人確認を行う必要はありません。この設定により、不適切なコメントを防止できますが、メッセージ機能の利用が一部の人に限定されるわけではありません。
//-------------------------- -
// メッセージ プログラムの追加 addmsg.php
// 著者: Wilson Peng
// Copyright (C) 2000
//- - -------------------------
//
// ここに ID チェック機能を追加できます。自分自身
//
if (($alias!="") and ($msg!="")) {
putenv("ORACLE_SID=WWW"); > putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3. 2 /lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/ 7.3 .2/ocommon/nls/admin/data");
$handle=ora_logon("user38@WWW","iam3849") 死ぬか;
$cursor=ora_open($handle);
ora_commitoff($handle);
$serial=md5(uniqid(rand()));
$id=$PHP_AUTH_USER; ip =$REMOTE_ADDR;
$msg=base64_encode($msg);
$flag="1"
$query="ゲストブックに挿入(シリアル, ref, id, ip, msgdate, email , msg, flag) value('$serial', '$ref', '$id', '$alias', '$ip', sysdate, '$email', '$msg', '$flag') " ;
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);
ora_logoff($handle);
Header("場所: ./index.php");
exit;
?>
head>
メッセージを入力してください
><フォームメソッド=POSTアクション=" echo $PHP_SELF; ?>">
コンテンツ
"> "> ?php
}
?>
上記のプログラムが実行されると、最初に変数
エイリアス
および
msg 情報があるかどうかを確認します。情報がない場合は、メッセージを入力するためのフォームがユーザーの端末に送信され、ユーザーがメッセージを入力します。 ユーザーがメッセージを入力したら、 "メッセージを送信
" ボタンを押すと、プログラムの前半が実行されます。 プログラムは大きく5つのパートに分かれています
構成 Oracle 必要な環境変数
への接続 Oracle データベース
データを整理して Oracle に送信します
で終了Oracleの接続
プログラムを終了し、最新のメッセージ情報を表示 Oracle 環境の構成では、 PHP 関数 putenv( ) では、オペレーティング システム層で環境変数を設定できます。中国語を使用するには、必ず次の行を追加してください
putenv("NLS_LANG=american_taiwan.zht16big5");
を使用してください。 > Oracle 関数ライブラリ関数 : ora_logon() など。詳細については、「 Oracle データベース関数ライブラリ」を参照してください。この関数ライブラリを使用すると、 Oracle データベースを簡単に操作できます。
次のステップは、データを整理して Oracle データベース $serial=md5(uniqid(rand()));
$id=$PHP_AUTH_USER;
$msg=base64_encode ($msg);
$flag="1"
$query="ゲストブック (シリアル、参照、ID、エイリアス、IP、msgdate、メール、メッセージ、フラグ) の値に挿入します( '$serial' , '$ref', '$id', '$alias', '$ip', sysdate, '$email', '$msg', '$flag')";
$serial
変数は一意の文字列です。プログラムは最初に一意の文字列をランダムに生成し、それを
md5 でエンコードして文字列を混乱させ、ハッシュのような意味のない文字列。この文字列は長くて乱雑であるため、ユーザー、特にハッカーやフリークがシリアル番号を使用してシステムをクラックするのを防ぐことができます。 $ref 変数は現在無効です。
$id 変数は、プログラムの先頭にユーザー認証プログラムを追加する場合、 $PHP_AUTH_USER として使用されます。ユーザーのアカウントは $id 変数に渡されます。 ユーザーが記述した文字列については、データベースや処理の複雑化を避けるため、 BASE64 でエンコードするだけです。もちろん、これは鋸と矢の方法ですが、 Web プログラムの場合、高速実行と簡単な変更が重要です。最も重要なことは、これらの中国語のコーディングの問題に対処するためにエネルギーを浪費する必要がなくなることです。データベースのストレージ容量が限られている場合、 BASE64 エンコードを使用すると、文字列が約 1/3 拡張されることに注意してください。この方法には適していない可能性があります。また、最近のハードディスクは安価であり、数十 GB を超えるため、データベース容量が限られているという問題は発生しません。考慮された。
最後に、変数を $query データベース実行用の文字列 に整理します。 SQL コマンド。
ora_parse($cursor, $query) または、
ora_exec($cursor);
ora_logoff($handle);
Oracle の SQL コマンドを実行する前に、まず次の手順を実行する必要があります。 解析 ステップ。 @ ( のような : @ora_prase();) を追加すると、ユーザーにエラー メッセージが表示されないようにすることができます。 query コマンドを実行した後、 Oracle との接続を閉じることができます。
Header("Location: ./index.php");
exit;
これらの 2 行により、ブラウザは次のようにリダイレクトされます。 index.php。ユーザーが新しいメッセージを閲覧できるようにすると、メッセージを残すステップが完了します。
メッセージ内容表示プログラムについては後ほど見てみましょう。
;
//
メッセージ表示プログラム
index.php // 著者: Wilson Peng // Copyright (C) 2000
//---------------------------
$WebmasterIPArray = array(
"10.0.1.30", // 管理人员甲的机器 IP
"10.0.2.28" // 管理人员乙的机器 IP
);
$WebmasterIP=false;
for ($i=0; $i
}
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);
$query="SELECT serial, ref, id, alias, ip, TO_CHAR(msgdate, 'yyyy/mm/dd hh:mi:ss'), email, msg FROM guestbook where flag='1' order by msgdate desc";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=0;
while(ora_fetch($cursor)) {
$guestbook[$i][0] = ora_getcolumn($cursor,0);
$guestbook[$i][1] = ora_getcolumn($cursor,1);
$guestbook[$i][2] = ora_getcolumn($cursor,2);
$guestbook[$i][3] = ora_getcolumn($cursor,3);
$guestbook[$i][4] = ora_getcolumn($cursor,4);
$guestbook[$i][5] = ora_getcolumn($cursor,5);
$guestbook[$i][6] = ora_getcolumn($cursor,6);
$guestbook[$i][7] = ora_getcolumn($cursor,7);
$i++;
}
ora_close($cursor);
ora_logoff($handle);
echo "新增留言....
\n";
if ($QUERY_STRING!="") {
$page = $QUERY_STRING;
} else {
$page = 0;
}
$i=count($guestbook);
$msgnum=20; //
$start = $page * $msgnum;
$end = $start + $msgnum;
if ($end > $i) $end=$i;
$totalpage=$i/$msgnum;
$pagestr="";
if ($page>0) $pagestr=$pagestr."<上页 - ";
$pagestr=$pagestr."[第 ";
for ($i=0; $i<$totalpage; $i++) {
if ($i!=$page) {
$pagestr = $pagestr."".($i+1)." ";
} else {
$pagestr = $pagestr.($i+1)." ";
}
}
$pagestr=$pagestr." 页] ";
if ($page<($totalpage-1)) $pagestr=$pagestr."- 下页> ";
$pagestr="
echo "
".$pagestr."
n";
for ($i=$start; $i<$end; $ i++) {
echo "
n";
echo "
n".$guestbook[$i][5] ." ";
if ($guestbook[$i][6]!="") echo "";
echo "".$guestbook[$i][3]."";
if ($guestbook[$i][6]!="") echo " a>";
echo "
n";
if ($WebmasterIP) echo "
echo "from: ".$guestbook[$i][4]."< /font>gt;
n";
$msg=base64_decode($guestbook[$i][7]);
$msg=nl2br($msg);
echo $msg;
エコー "
n";
エコー "
n"; ?>
在显示留言的部份,考虑到留言内容若很多,加上网络话
初初期化
取データ据库中の资料
計算要表示の页数
送出料
$WebmasterIPArray = array( "10.0.1.30", //
管理者员甲的机
IP
"10.0.2.28" // 管理者员エチルの机 IP
); $WebmasterIP=false; 0; $i
その後初化
Oracle
程序略
显示程序と留言程序の初期化部份都差不多,但显示 ウェブマスター
が使用する
IP アドレス を構成する機能が追加されました。 は、 $WebmasterIPArray の数グループに追加され、留言を表示するときに、不適切な留言を処理するために、留言を削除した文字列を表示できます。 >$handle=ora_logon("user38@WWW","iam3849") さもなければ死ぬ; $cursor=ora_open($handle); ora_commitoff($handle); $query="SELECT シリアル、参照、ID、エイリアス、IP、TO_CHAR(msgdate, 'yyyy/mm/dd hh:mi:ss')、電子メール、メッセージ FROM ゲストブック where flag='1' msgdate desc で並べ替えます"; ora_parse($cursor, $query) または die; ora_exec($cursor); $i=0; while(ora_fetch($cursor)) {
$guestbook[$i][0] = ora_getcolumn($cursor,0);
$guestbook[$i][1] = ora_getcolumn($cursor,1); ;
$guestbook[$i][2] = ora_getcolumn($cursor,2);
$guestbook[$i][3] = ora_getcolumn($cursor,3); i][4] = ora_getcolumn($cursor,4);
$guestbook[$i][5] = ora_getcolumn($cursor,5);
$guestbook[$i][6] = ora_getcolumn( $cursor,6);
$guestbook[$i][7] = ora_getcolumn($cursor,7)
}
ora_close($cursor); ($handle);
初期化後、
Oracle データベースに接続し、メッセージ情報を取得して $guestbook 配列内。データを取得したら、すぐにデータベースを閉じて、 $guestbook 配列内のデータを処理します。 if ($QUERY_STRING!="") { $page = $QUERY_STRING; } else {
$page = 0; 🎜>
このプログラムは、どのページを表示するかを決定します。デフォルト値は最初のページを表示することです。 3 番目のページを表示するには、
http://xxxxxx/index.php?2
の形式を使用する必要があります。つまり、 $QUERY_STRING を渡す必要があります。 など。次のプログラム行は、表示されるページ数と項目数を処理するために使用されます。 $msgnum=20; // 1 ページあたり 2 項目
変更予定各ページに表示される項目の数は、 $msgnum
変数で変更できます。プログラムのデフォルト値は 20 バーです。 for ($i=$start; $i<$end; $i++) { echo "
n"; echo " n".$guestbook[$i][5]." "
if ($guestbook[$i][6]!="") echo "";
echo "
;
if ($WebmasterIP) echo "
この記事を削除
! ! (".$guestbook[$i][2].") ";
echo "from: ".$guestbook[$i][ 4]."
n";
$msg=base64_decode($guestbook[$i][7]);
"
このプログラムは、実際にユーザーにメッセージ情報を表示するプログラムです。 for ループを使用して、構成されたページ数に従って $guestbook 配列からデータを抽出し、ユーザーに表示します。 。メッセージを読み取るマシンの IP が $WebmasterIPArray 変数配列の要素である場合、言及する価値があります。 「この記事を削除 !!」 がコメント投稿者の匿名名の後に表示され、管理者が削除できるようになります不適切なコメント。メッセージを削除する手順は次のとおりです。
//-------------------------- -
// メッセージ削除プログラム Erase.php
// 著者: Wilson Peng
// Copyright (C) 2000
//-- ------------------------
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5") ;
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib"); ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data " );
$handle=ora_logon("user38@WWW","iam3849") または、
$cursor=ora_open($handle);
ora_commitoff($handle);
$query="UPDATE guestbook set flag='0' whereserial='".$QUERY_STRING."'";
ora_parse($cursor, $query) または die;
ora_exec($cursor ) ;
ora_close($cursor);
ヘッダー("場所: ./index.php");
実際、この手順は非常に簡単です。
Oracle
データベースを開き、ピースの を入力するだけです。フラグ 0 に設定されます。実際にデータベースからデータを削除する必要はありません。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Oracle データベース ログの保存期間は、次のようなログのタイプと構成によって異なります。 REDO ログ: 「LOG_ARCHIVE_DEST」パラメータで構成された最大サイズによって決定されます。アーカイブ REDO ログ: 「DB_RECOVERY_FILE_DEST_SIZE」パラメータで構成された最大サイズによって決まります。オンライン REDO ログ: アーカイブされず、データベースの再起動時に失われます。保持期間はインスタンスの実行時間と一致します。監査ログ: 「AUDIT_TRAIL」パラメータによって構成され、デフォルトで 30 日間保持されます。

Oracle データベースの起動シーケンスは次のとおりです。 1. 前提条件を確認します。 3. データベース インスタンスを起動します。 5. データベースに接続します。サービスを有効にします (必要な場合)。 8. 接続をテストします。

Oracle が必要とするメモリーの量は、データベースのサイズ、アクティビティー・レベル、および必要なパフォーマンス・レベル (データ・バッファー、索引バッファーの保管、SQL ステートメントの実行、およびデータ・ディクショナリー・キャッシュの管理) によって異なります。正確な量は、データベースのサイズ、アクティビティ レベル、および必要なパフォーマンス レベルによって影響されます。ベスト プラクティスには、適切な SGA サイズの設定、SGA コンポーネントのサイズ設定、AMM の使用、メモリ使用量の監視などが含まれます。

Oracle データベース サーバーのハードウェア構成要件: プロセッサ: マルチコア、少なくとも 2.5 GHz のメイン周波数 大規模なデータベースの場合は、32 コア以上が推奨されます。メモリ: 小規模データベースの場合は少なくとも 8 GB、中規模のデータベースの場合は 16 ~ 64 GB、大規模なデータベースまたは重いワークロードの場合は最大 512 GB 以上。ストレージ: SSD または NVMe ディスク、冗長性とパフォーマンスのための RAID アレイ。ネットワーク: 高速ネットワーク (10GbE 以上)、専用ネットワーク カード、低遅延ネットワーク。その他: 安定した電源、冗長コンポーネント、互換性のあるオペレーティング システムとソフトウェア、放熱と冷却システム。

Oracle は、次の手順で dbf ファイルを読み取ることができます。外部テーブルを作成し、その dbf ファイルを参照し、データを Oracle テーブルにインポートします。

Oracle データベースに必要なメモリの量は、データベースのサイズ、ワークロードの種類、同時ユーザーの数によって異なります。一般的な推奨事項: 小規模データベース: 16 ~ 32 GB、中規模データベース: 32 ~ 64 GB、大規模データベース: 64 GB 以上。考慮すべきその他の要素には、データベースのバージョン、メモリ最適化オプション、仮想化、ベスト プラクティス (メモリ使用量の監視、割り当ての調整) などがあります。

Oracle で 1 日に 1 回実行されるスケジュールされたタスクを作成するには、次の 3 つの手順を実行する必要があります。 ジョブを作成します。ジョブにサブジョブを追加し、そのスケジュール式を「INTERVAL 1 DAY」に設定します。ジョブを有効にします。

Oracle Databaseのメモリー要件は、データベースのサイズ、アクティブ・ユーザーの数、同時問合せ、有効な機能、およびシステム・ハードウェア構成の要素によって異なります。メモリ要件を決定する手順には、データベース サイズの決定、アクティブ ユーザー数の推定、同時クエリの理解、有効な機能の検討、システム ハードウェア構成の調査が含まれます。
