PHP+MySQLを使用した小規模サイトの広告管理を実装する

WBOY
リリース: 2016-06-21 09:06:18
オリジナル
907 人が閲覧しました

mysql|広告|サイト

イメージリンク広告はおそらく最も一般的に使用されているオンライン広告モデルですが、複数の広告を動的かつランダムに表示することはそれほど単純ではありません。 PHP のファイル アップロード機能は、この 468x60 ピクセル領域 (Web ページ広告の標準サイズ) の重みに基づいて広告をランダムに表示するソリューションを提供するため、FTP プログラムや ASP および Perl CAI 拡張機能の開発におけるプラグインの必要性を回避できます。この機能を実現するために必要です。

この例は、Win9x/2000 用の PHP4+MySQL+Apache でデバッグされました。新しい広告を追加するプログラム AddNewAd.php3 と、広告を表示するプログラム ShowAd.php3 の 2 つの部分で構成され、両方ともサーバーに保存されます。 PHP ファイルのディレクトリは「test/guanggao/」ディレクトリにあります。広告リンク画像を保存するために、guanggao ディレクトリにサブディレクトリ「adbanner/」を作成します。以下、段階的に分析していきます。

1. まず、MySQL データベースを作成します: guanggao
Windows 環境では、各データベースは mysql/data/ ディレクトリに存在するサブディレクトリであるため、空の MySQL データベースを作成するのは非常に簡単です。新しいサブディレクトリ guanggao を作成するだけです。現時点では、データベースにテーブルとデータはありません。

2. 新しい広告プログラムを作成します: AddNewAd.php3
設計アイデア: 最初にフォームを使用してユーザーの新しい広告情報を取得し、次に PHP 関数 copy() を使用してリンク画像 (バナー) ファイルをサーバーの広告バナーにアップロードします。ディレクトリ; 最後に作成したMySQLデータテーブル広告に画像ファイル名、広告URL、説明、重み付け情報などを書き込みます。プログラムコードは以下の通りです:

# AddNewAd.php3——新しい広告を追加#

新しい広告を追加


//フォームは新しい広告を入力するために使用されます広告情報、および処理のために以下の PHP プログラムに渡されます。
// このうち、重み付けされた値の優先順位の数値が大きいほど、読み込みページに画像が表示される確率が高くなります。デフォルトは 1 です。

広告バナー:

広告 Web サイト URL:

画像リンクの説明 ALT:

表示の重み付け:



// フォームデータを処理する PHP プログラム
php
/ /画像バナー名とリンクアドレスを空にすることはできません。
if (( Banner!="") & ( url!="")) {
// 広告リンクと画像名が使用されている場合は、選択する必要があります。別途;
if (file_exists("adbanner/". バナー名)) {
echo "広告画像. バナー名. が使用されていますので、別のものを選択してください!";
exit;
};
//リンク画像ファイル名をアップロードadbanner ディレクトリに;
copy(banner,"adbanner/".banner_name);
//MySQL データベースに接続します;
connection = mysql_connect();
//データソース guanggao を選択してクエリを実行します;;
mysql_select_db( "guanggao", );
query ="SELECT * FROM ad";
result=mysql_query( query);
//データテーブル広告が存在しない場合は、次の構造に従って新しいデータテーブル広告を作成します;
if (!result){
mysql_query("
create table ad(
url varchar(100) not null,
banner varchar(150) not null,
alt varchar(100) null,
priority tinyint(4)default 1 not null
)") or die(mysql_error());
}
//フォームからデータテーブルに新しいデータを挿入します ad;
query="insert into ad(url, Banner, alt, priority) names(url, Banner_name) ,
alt, priority)";
// 挿入に成功すると、次の情報が表示されます;
try=mysql_query( query);
if( try){
echo "広告が追加されました、詳細情報:
";
echo "< ;img src="adbanner/banner_name" alt=". alt." border=0>
";
echo "広告 URL: url
広告リンクの説明: alt
display Weighting: priority ";
}
}
?>

3. ディスプレイ広告プログラムを作成します: ShowAd.php3
デザインアイデア: すべてのデータベース テーブルの列情報を取得し、対応する 1 次元配列に格納し、すべての広告を格納します。ページがロードされるたびに、重みが合計されて最大の乱数が取得され、srand() を使用してランダム ツリー シードが生成されます。次に、rand() 関数を使用して 1 から最大乱数までの乱数を生成し、特定のルールに従って、異なる広告バナーがランダムに表示されます。重みが大きいほど、表示される可能性が高くなります。

# ShowAd.php3——広告をランダムに表示 #
//接続選択データベース;
connection = mysql_connect();
mysql_select_db("guanggao", connection);
// クエリを実行して広告の数を取得します。
Query="SELECT url, Banner, alt, priority FROM ad where priority > 0";
result=mysql_db_query("guanggao", query); result);
//mysql_fetch_object() 関数を使用して、有用な列情報を取得し、対応する配列に格納します。
while( row = mysql_fetch_object( result)) {
adurl[]= row->url;
adbanner[ ]= row->banner;
adalt[]= row->alt;
adpriority[]= row->gt;priority;
}
//中間変数を初期化;
numcheck= numrows;
i= pricount=0 ;
//最大の乱数を取得します;
while(numcheck) {
pricount+= adpriority[i];
i++; numcheck--;
}
//乱数シードは100万分の1秒で生成されます。プログラムが実行されます;
srand((double) microtime()*1000000);
//1から最大乱数までの乱数を取得します
pri = rand(1, pricount); // 中間変数をクリアします。
pricount=0;
// 重み付けされた値が異なるため、要素が広告の表示に使用される配列になります
for( i=0; i< numrows-1; i++) {
pricount += adpriority[ i];
if ( pri <= pricount) {
ad[]="";
}
}
//ディスプレイ広告、ウェイトが大きいほど、表示される機会が大きくなります ;
echo ad[0];
?>




関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート