スキルはこちら
PHPの学び方 – [マインドマップの知識範囲]
その他のプロジェクトはこちら
西北の村や町におけるJSPベースの観光ウェブサイトのデザインと実装 – [卒業論文]
記事ディレクトリ
この校訓シリーズ
無料公開動画を利用してトレーニングクラスへ飛んでください!撲殺されたら出社せず、頑張ってお金を稼ぎます!
他の人が無料で売春したい場合は、オンラインで Fan Debiao を見つけることができます。IT の道は無数にありますが、成功への道は 1 つだけです。
---------- 他の人が無料で売春するのは当然ですが、Sajia はそれを高く評価しており、プロジェクトが良くない場合は、天津宝子溝は無視します。
このプロジェクトで使用されている技術
PHPクラスレス | PHPクラスの書き方 | ThinkPHP フレームワーク | 他のフレームワーク |
---|---|---|---|
* |
環境
PHPのバージョン | mysqlのバージョン | 実行ツール | 編集ツール |
---|---|---|---|
5.5.38+Apache | 5.5 (phpstudy が付属しています) | phpstudy2018 | phpStorm 2018 |
表紙
知らせ:
上記の警告コードがある場合は、
php.ini ファイルの設定を直接変更してください。
php.ini警告
を閉じる方法: まず php.ini 設定ファイルを見つけて開き、次に内容を「display_errors=Off」に変更し、最後に変更を保存します。
コードを変更した後は、煩わしい警告メッセージは表示されません。
ちょっとしたトリックとして、phpstudy で警告をオフにするように 1 つを設定し、警告をオンにするようにもう 1 つを設定できます。デバッグするときは、警告を開くように切り替えて、開発が完了するまで待ってから、警告を閉じる PHP バージョンを使用してください。とても良い香りがします!
文字化けの問題
プロジェクトによっては開くときに文字化けしてしまうことがありますが、本来はhbuilderを使えば問題ありません。実際、phpstorm 2018 を使用するのは大きな問題ではありません。プロンプトに従って「OK」をクリックするだけです。
設定したい場合はこちらからどうぞ。
本題から外れたエピソード
mysqlが競合する場合。mysqlのアンインストールに関する記事を見つけました
mysql のアンインストールに関する超詳細なチュートリアル (手順に従って完全にアンインストールします) 更新時間: 2023 年 3 月 23 日 09:45:40 作成者: コード クラウド 鉄ファン mysql は vmware のようにきれいにアンインストールされない問題が本当に多く、いくつかの友人が作成されます
。システムを再インストールしたいのですが、大丈夫です。mysql をきれいにアンインストールする方法を説明します。次の記事では、主に mysql のアンインストールに関する超詳細なチュートリアルを紹介します。手順に従うだけで完全にアンインストールできます。必要な場合は、を参照するには、
【コンピューター】を右クリックし、[管理]を選択し、「コンピューターの管理」インターフェイスを開き、
[サービスとアプリケーション]の[サービス]を選択し、右側にある[mysql]を見つけて右クリックし、選択します[停止] ステップ 2
: コントロールで mysql ソフトウェアをアンインストールし
ます パネルでアンインストールし、mysql 関連をすべてアンインストールし、mysql インストール パッケージをアンインストールします しばらくしてから、インストール パッケージを再ダウンロードします 1. アンインストール後、C: を削除し
ます\Program Files (x86)\MySQL ファイル、mysql フォルダも削除します。
2. HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL フォルダを削除します。削除していない場合は、削除する必要はありません。
3. C ディスクの下の C:\ProgramData\MySQL にあるすべてのファイルを削除します。削除できない場合は、360 を使用してそれらを粉砕できます。programData ファイルはデフォルトでは非表示になっており、後で表示されます4. キー
! !!!C:\Documents and Settings\All Users\Application Data\MySQL の下のフォルダーを削除します。必ず削除してください。直接コピーして貼り付けることができ、このフォルダーが表示されます。5 注: この手順は最も面倒で、最も
重要なことですが、この手順でレジストリ情報がクリーンアップされていないため、多くの人が正常に再インストールできません。
1. Windows + R で「regedit」ファイルを実行し、レジストリを開きます。 2. レジストリを削除します: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL フォルダ。再インストールできるように
、このパスに従って 1 つずつ開きます。
MySQL ソフトウェア! パート2:
mysqlメソッドを完全に削除する
1. まず、サービス内で MySQL サービスを停止します ([スタート] -> [コントロール パネル] -> [管理ツール] -> [サービス])。[コントロール パネル] - [プログラムの追加と削除] を開き、MySQL を見つけてアンインストールします。または、360 Security Guard を使用してアンインストールします。mysql のインストール プログラムを使用して削除することもできます。
2. インストールされている MYSQL をアンインストールします。ただし、これは MySQL のアンインストールの半分にすぎず、重要な残りの半分はレジストリをクリーンアップすることです。レジストリを開き、「スタート」-「ファイル名を指定して実行」で「regedit」と入力してレジストリを開きます。
3. MYSQL に関する項目を見つけてすべて削除します インストール中にインストールできるように、項目ごとに検索してすべて削除する必要があります。実際、レジストリ内の MySQL エントリは次の 3 つの項目です。
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL
4. C:/WINDOWS にある my.ini ファイルも削除します。
このように、上記 4 つの項目を削除すると、基本的に MySQL は完全にアンインストールされます。それでも不安な場合は、C ドライブで mysql を検索し、関連する項目をすべて削除してください。
SQL92 標準の概要
SQL (構造化照会言語) はリレーショナル データベースの管理に使用される言語で、データ定義、データ操作、データ クエリの 3 つの側面が含まれます。SQL92 は、1992 年に米国規格協会 (ANSI) と国際標準化機構 (ISO) によって策定された SQL 標準であり、SQL 言語の第 2 世代標準です。SQL92 標準はリレーショナル データベースの共通標準となっており、ほとんどすべての主要なリレーショナル データベースがこの標準を実装しています。
SQL92 標準では、データ型、演算子、関数、ストアド プロシージャ、トリガー、ビューなどのさまざまな側面を含む一連の仕様が定義されています。SQL92 標準の主な目的は、基本的な SQL 操作言語を定義することです。これにより、アプリケーション開発者にとっての SQL のクエリと作成の難しさが大幅に簡素化されます。
第 2 に、SQL92 標準の主な機能
SQL92 標準には多くの重要な機能が含まれており、その一部を以下に示します。 1.
リレーショナル モデルに基づいたデータ ストレージとクエリのサポート
SQL92 標準は、リレーショナル モデルに基づいたデータ ストレージとクエリをサポートします。このデータ モデルは、独立したテーブルとテーブル間の関係で構成されます。アプリケーションは、SQL ステートメントを通じてテーブル内のデータを追加、削除、変更、クエリできます。
2. 標準化された SQL 構文
SQL92 標準は、標準化された SQL 構文を定義します。これにより、SQL クエリ ステートメントが異なるデータベース管理システム間で共通になり、データの移植性が大幅に向上します。SQL92 標準では、標準に準拠した SQL クエリ ステートメントはすべて、標準に準拠したデータベース管理システム上で実行できます。
3. トランザクション処理のサポート
SQL92 標準はトランザクション処理をサポートします。トランザクションとは、関連するデータベース操作のグループを指します。これらの操作はすべて成功するかすべて失敗します。トランザクション処理を通じて、重要な操作を実行しながらデータベースの一貫性、信頼性、セキュリティを維持することができます。
4. データ整合性制約のサポート
SQL92 標準は、特定の条件下でデータベースへの変更を強制できるデータ整合性制約をサポートしており、これによりデータベースの整合性と正確性が保証されます。これらの制約は、一意性、非 NULL 性、外部キーなど、特定の列、テーブル、データベース、またはデータベース全体に対して定義できます。
プロジェクトに必要な知識
多くの人は、PHP が生み出したプロジェクトが少ないため、PHP では採用人数が少ないと考えていますが、実際にはそれは完全に誤解されています。PHP の小規模なプロジェクトは少数の人々によって使用されており、アップグレードやメンテナンスの必要がないため、PHP の従業員の数は少なくなります。しかし、携帯電話に入っている多数の有料の小規模なソフトウェアを実際に見てみると、PHP はおそらくそれ以上のものです。ジャワウール生地。
現在、公開するビデオを探している個人もいると言われていますが、自分の小さな Web サイトを見ると、依然として PHP が多数を占めていると推測されます。
PHP
PHP (PHP: Hypertext Preprocessor) は「ハイパーテキスト プリプロセッサ」で、サーバー側で実行されるスクリプト言語で、特に Web 開発に適しており、HTML に埋め込むことができます。PHPの文法はC言語を学び、JavaやPerlの複数の言語の特徴を吸収して独自の特徴的な文法を開発し、Javaのオブジェクト指向プログラミングなど、それぞれの強みに応じて改良を重ねていくことが主な目標です。この言語の目的は、開発者が高品質の Web サイトを迅速に作成できるようにすることです。[1-2] PHP はオブジェクト指向開発とプロセス指向開発の両方をサポートしており、非常に柔軟に使用できます。
PHP は多くの開発者が参加するオープンソース ソフトウェア プロジェクトで、元々は Personal Home Page の略称でしたが、正式に「PHP: Hypertext Preprocessor」という名前に変更されました。PHP は 1994 年に Rasmus Lerdorf によって作成されました [30] が、当初は彼自身の Web サイトへの訪問者数をカウントするために Perl 言語で書かれた単純なプログラムでした。その後、C言語に書き換えられると同時にデータベースにアクセスできるようになり、1995年にPHP(Personal Home Page Tools)の最初のバージョンであるPHP1が公開されました。それ以来、PHP を使用する Web サイトがますます増え、ループ ステートメントや配列変数などの機能を追加する要望が強くなりました。1995 年にリリースされた PHP2 では、mySQL のサポートが追加されました。
高級言語としての PHP 言語はオープンソースであるという特徴があり、設計体系という点では C 言語体系に属しており、高等教育を受けた多くの初心者がすぐに受け入れて入門学習を完了することができます。使いやすく仕事も見つけやすいのでナチュラルファンも多い。データ量が大きく、アクセス負荷が高い場合は、redis、mysql サブテーブル パーティション サブデータベース、elasticsearch 検索エンジン、メッセージ キュー書き込み保護、php システムの分散クラスター展開などの技術ソリューションを統合して、データを軽減できます。ストレージ、サービスへのアクセス、データの取得には大きなプレッシャーがかかります。
大規模プロジェクト、中小規模プロジェクト、小規模プロジェクトを問わず、PHP は非常に適した高級プログラミング言語ですが、適切かどうかはプロジェクト開発チームの習熟度によって決まります。しかし、より大規模で複雑なプロジェクトの場合、最も一般的な php-fpm プログラミング モデルには弱点が現れます。PHP-fpm によって明らかになった一連の欠点を解決するために、最も簡単で信頼性の高い解決策は、互換性のある PHP バージョンを適時にアップグレードすることです。PHP7.0.0 [14] では、PHP5.6 と比較してパフォーマンスが 2 倍向上します。 PHP7.4 によって提供されるプリロードメカニズム [11] は、一部のプログラムの常駐メモリを実現し、良好なパフォーマンス向上を実現します PHP8 では、効率的な JIT (Just-In-Time Just-In-Time Compilation) [12] コンピューティングも提供しますサポート。さらに、より高いレベルの開発者は、システム パフォーマンスの問題のほとんどを解決できる、より難しい php-cli プログラミングに切り替えることができ、PHP7 と PHP8 の両方がこのプログラミング モードをサポートしています。
パフォーマンスの向上
PHP のバージョンが高くなるほど、全体的なパフォーマンスが向上します。公式の紹介によると、
PHP7.0.0 [14] のパフォーマンスは PHP5.6 の 2 倍であり、PHP7.4 は PHP7.0 より約 30% 高速です。 、PHP8.0はPHP7.4と比較して約10%パフォーマンスが向上しています。PHP 8.0 では、JIT コンパイラー機能が導入され、名前付きパラメーター、共用体型、アノテーション、コンストラクター プロパティのプロモーション、一致式、nullsafe 演算子、型システム、エラー処理、一貫性の改善など、
さまざまな新しい言語機能が追加されています。
PHP には独自のコア開発チームがあり、5 年ごとにメジャー バージョンをリリースし、毎月 2 つのマイナー バージョンをリリースする頻度を維持しており、最新バージョンは PHP8.08 [
15]。PHP 7.0.0 [16] は 2015-12-03 にリリースされ、このバージョンの最新バージョンは PHP 7.4.21
[18] (リリース日: 2021-07-01) で、PHP 8.0.0 [17] がリリースされました。 2020 年 11 月 26 日時点で、このバージョンの最新バージョンは PHP
8.0.8 (リリース日: 2021 年 7 月 1 日) です。
ThinkPHP
ThinkPHP は、エンタープライズレベルのアプリケーション開発とアジャイルな WEB アプリケーション開発を簡素化するために生まれたオープンソースの軽量 PHP フレームワークです。
ThinkPHP は、高速で互換性があり、シンプルで軽量な国産の PHP 開発フレームワークです。2006 年初頭に誕生し、以前は FCS として知られていましたが、2007 年の元旦に正式に名前が ThinkPHP に変更されました。Apache2 オープン ソース プロトコルでリリースされました。 Struts構造から移植され改良・改良が加えられ、同時に多くの優れた外国フレームワークやパターンも活用し、オブジェクト指向開発構造とMVCパターンを使用し、StrutsとTagLib(タグライブラリ)の考え方を統合しています。 )、RoR ORM マッピング、および ActiveRecord パターン。
ThinkPHP は、Windows/Unix/Linux およびその他のサーバー環境をサポートできます。正式バージョンでは、PHP5.0 以降のサポートが必要で、MySql、PgSQL、Sqlite データベースおよび PDO 拡張機能をサポートしています。ThinkPHP フレームワーク自体には、特別なモジュール要件はありません。アプリケーション システムの動作環境 要件は、開発に関与するモジュールによって異なります。
2015 年 12 月 11 日に
ThinkPHP 5.0 ベータ版がリリースされ、2017 年
2 月 27 日に Thinkphp5.0.5 の完全版が正式にリリースされました [3]、2018 年
5 月 2 日に Thinkphp5.1.0RC バージョンがリリースされました [4]。
2019 2019 年 4 月 22 日にバージョン Thinkphp6.0RC2 がリリースされました [5]、2019 年
8 月 16 日にバージョン Thinkphp6.0RC4 がリリースされました [6]、2019 年
12 月 24 日にバージョン Thinkphp6.0.1 がリリースされました [7]。
ThinkPHP MVC
使いやすい
モデル (M): モデルの定義は Model クラスによって完了します。Model クラスは、プロジェクト ディレクトリの下の LibModel ディレクトリにあります。
コントローラー (C): アプリケーション コントローラー (コア コントローラー) とアクション コントローラーの両方がコントローラーの役割を担いますが、アクション コントローラーがビジネス プロセスを完了するのに対し、アプリケーション コントローラー (アプリ クラス) はスケジュール制御を担当する点が異なります。アクション コントローラーは、プロジェクト ディレクトリの下の LibAction ディレクトリにあります。
ビュー (V): テンプレートの実装はフレームワークとは何の関係もありません。テンプレートは 100% 分離されており、独立してプレビューおよび作成できます。テンプレート ディレクトリは、プロジェクト ディレクトリの下の Tpl ディレクトリにあります。
考えるテンプレート
ThinkTemplate は、XML タグ ライブラリ テクノロジを使用し、2 種類のテンプレート タグをサポートし、動的コンパイルおよびキャッシュ テクノロジを使用し、カスタム タグ ライブラリをサポートするコンパイル済みテンプレート エンジンです。特徴としては、
1) XML タグライブラリと通常のタグの混合定義をサポート、
2) 一度コンパイルすると次回は再コンパイルせずに直接実行、
3) テンプレートファイル更新後、テンプレートキャッシュも自動更新、
4) 自動ロードが可能です。現在の操作テンプレート キャッシュ ファイル、テンプレート ファイル名を指定する必要はありません;
5) コード変換と Content-Type 置換をサポートします;
6) テンプレート変数出力プレフィックス サポート、変数名の競合を回避します;
7) テンプレート定数置換、テンプレートを設定する必要はありません変数;
8) 変数の組み合わせのサポート レギュレーターおよびフォーマット関数;
9) 他のテンプレート エンジン プラグインの置き換えのサポート;
10) テンプレート ページのコンテンツの取得のサポート。
ThinkPHP 6 と ThinkPHP 5
ThinkPHP 5 と比較すると、ThinkPHP 6 には次のような大きな変更点と改善点があります。
- パフォーマンスの向上: ThinkPHP 6 は、より優れたパフォーマンスと高い同時実行性を備えた、より効率的な基盤フレームワークを採用しています。同時に、ThinkPHP 6 は、大量のリクエストをより効率的に処理できるコルーチン テクノロジも使用します。
- より簡潔なコード: ThinkPHP 6 ではより簡潔な構文が導入され、開発者はより簡単にコードを作成できるようになります。同時に、ThinkPHP 6 は、コードをより簡潔で読みやすくする、よりエレガントなチェーン操作もサポートしています。
- より柔軟なルーティング: ThinkPHP 6 のルーティング システムはより柔軟で、より豊富なルーティング ルールとパラメーター構成をサポートできます。同時に、ThinkPHP 6 は自動ルーティングもサポートしているため、開発者はルーティングをより簡単に構成できます。
- より便利なテンプレート エンジン: ThinkPHP 6 はより便利なテンプレート エンジンを採用しており、開発者はより簡単にテンプレートを作成できます。同時に、ThinkPHP 6 はテンプレート レイアウトとテンプレートの継承もサポートしているため、開発者はテンプレートをより簡単に設計できます。
- より完全なドキュメント: ThinkPHP 6 のドキュメントはより完全になり、より詳細な API ドキュメントや使用手順が含まれ、開発者が簡単に開始して使用できるようになりました。
つまり、ThinkPHP 6 には ThinkPHP 5 と比較して多くの改善と最適化が施されており、開発者はより効率的に開発できるようになります。同時に、ThinkPHP 6 は、ThinkPHP 5 の優れた拡張性や豊富な機能モジュールなどの利点を継承しており、さまざまなビジネスニーズに対応できます。springBoot MVC (SpringMVC) OM (mybatis) のフロントページ フレームワーク (Thymeleaf)
と比較すると、 GIT にせよ GITEE にせよ、その上で実行できないプロジェクトが本当にたくさんあります。オープンソース プロジェクトを実行できるわけではありません。
php学習設定
Web サイトのディレクトリは中国語やスペースは使用できません。C 言語で認識できる変数名を素直に使用してください。
データベースをインポートする
mysql-front または navicat を開きます。
注: データベース名: jiaoda スーパー ユーザー: root パスワード: 123456
この例の添付ファイルを実行するだけです。データベースの正常なインポートのスクリーンショットは次のとおりです。
オリジナルのライブラリを変換したので、もちろん以前と同じようにシンプルです。
ページを表示する
ページがシンプルすぎる。本来はフォトアルバムなどのソフトを追加して加工したかったのですが、パソコン上にないことが分かりました。美しい紙芝居をしましょう。元の紙芝居は醜すぎます。しかし、学生の宿題にはその傾向があるようです。
データベーステーブルの構造
プロジェクト ディレクトリを次の図に示します。
コード部分:
データベースに接続する
<?php
$db_username="root"; //连接数据库的用户名
$db_password="123456"; //连接数据库的密码
$db_database="jiaoda"; //数据库名
$db_hostname="localhost"; //服务器地址
class dbClass{
//开始数据库类
var $username;
var $password;
var $database;
var $hostname;
var $result;
function dbClass($username,$password,$database,$hostname="localhost"){
$this->username=$username;
$this->password=$password;
$this->database=$database;
$this->hostname=$hostname;
}
function connect(){
//这个函数用于连接数据库
$this->link=mysql_connect($this->hostname,$this->username,$this->password) or die("Sorry,can not connect to database");
return $this->link;
}
function select(){
//这个函数用于选择数据库
mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
mysql_select_db($this->database,$this->link);
}
function query($sql){
//这个函数用于送出查询语句并返回结果,常用。
if($this->result=mysql_query($sql,$this->link))
{
mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
return $this->result;
}
else {
//这里是显示SQL语句的错误信息,主要是设计阶段用于提示。正式运行阶段可将下面这句注释掉。
//echo "SQL语句错误: <font color=red>$sql</font> <BR><BR>错误信息: ".mysql_error();
return false;
}
}
/*
以下函数用于从结果取回数组,一般与 while()循环、$db->query($sql) 配合使用,例如:
$result=$db->query("select * from xzy_teachfl order by tpx");
while($row=$db->getarray($result)){
echo "$row[id] ";
}
*/
function getarray($result){
mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
return @mysql_fetch_array($result);
}
/*
以下函数用于取得SQL查询的第一行,一般用于查询符合条件的行是否存在,例如:
用户从表单提交的用户名$username、密码$password是否在用户表“user”中,并返回其相应的数组:
if($user=$db->getfirst("select * from user where username='$username' and password='$password' "))
echo "欢迎 $username ,您的ID是 $user[id] 。";
else
echo "用户名或密码错误!";
*/
function getfirst($sql){
mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
return @mysql_fetch_array($this->query($sql));
}
/*
以下函数返回符合查询条件的总行数,例如用于分页的计算等要用到,例如:
$totlerows=$db->getcount("select * from mytable");
echo "共有 $totlerows 条信息。";
*/
function getcount($sql){
return @mysql_num_rows($this->query($sql));
}
/*
以下函数用于更新数据库,例如用户更改密码:
$db->update("update user set password='$new_password' where userid='$userid' ");
*/
function update($sql){
return $this->query($sql);
}
/*
以下函数用于向数据库插入一行,例如添加一个用户:
$db->insert("insert into user (userid,username,password) values (null,'$username','$password')");
*/
function insert($sql){
return $this->query($sql);
}
//$db->del("delete from admin where user='".$user."'");
function del($sql){
return $this->query($sql);
}
function getid(){
//这个函数用于取得刚插入行的id
return mysql_insert_id();
}
}
/*
主要函数就是这些,如果你自己有另外的需要,也可以自己添加上去。
因为凡使用该类的都必须连接数据库,下面就连接并选择好数据库吧:
*/
$db=new dbClass("$db_username","$db_password","$db_database","$db_hostname");
$db->connect();
$db->select();
?>
?>
サインアップ
<?php
include('./inc/site.php');
include('./inc/db_class.php');
include('./inc/function.php');
$username = SafeHtml($_GET['username']);
if(empty($username))
{
Error("会员名或密码为空!","reg.php");
}
if($user=$db->getfirst("select * from `user` where username='".$username."'"))
echo "$username 此用户名已经被注册!<br/>请尝试使用其他用户名";
else
echo "$username 此用户名可以注册!";
exit;
?>
<?php
include('./inc/site.php');
include('./inc/db_class.php');
include('./inc/function.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>会员注册_课程网站</title>
<meta name="keywords" content="课程网站" />
<meta name="description" content="课程网站" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.STYLE2 {
font-size: 14px}
.STYLE3 {
color: #FF0000}
-->
</style>
<script language="javascript">
function CheckName(gotoURL) {
var ssn=document.all.username.value.toLowerCase();
var open_url = gotoURL + "?username=" + ssn;
window.open(open_url,'','status=0,directories=0,resizable=0,toolbar=0,location=0,scrollbars=0,width=150,height=80');
}
</script>
</head>
<body>
<?php
include('header.php');
if($_GET['act']== "")
{
?>
<table width="776" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:6px;">
<tr>
<td><img src="images/body_top.gif" width="776" height="7" /></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><table width="100%" height="560" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="560" valign="top" align="center"><table width="99%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="29" background="images/inner-img02.gif"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="font">
<tr>
<td width="40"><div align="center"><img src="images/inner-img3.gif" width="20" height="20" /></div></td>
<td align="left">您的当前位置:<a href="index.php">首页</a> >> <a href="reg.php">会员注册</a></td>
</tr>
</table></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="28"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="menu">
<tr>
<td width="25"><div align="center"><img src="images/inner-img4.gif" width="15" height="15" /></div></td>
<td width="130" align="left"><span class="STYLE2">注册新会员</span></td>
<td style="padding-right:18px;"> </td>
</tr>
</table></td>
</tr>
<tr>
<td height="257"><table width="100%" height="257" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" class="font" style="padding:8px 8px 8px 8px;" align="center">
<form action="reg.php?act=save" method="post" name="form1" onSubmit="return Validator.Validate(this,2)">
<table width="90%" border="0" cellspacing="2" cellpadding="0" bgcolor="#fdeacc">
<tr>
<td colspan="2" align="left"><strong>* 填写资料</strong></td>
</tr>
<tr>
<td width="39%" align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>用户名:</strong><br />
长度限制为4-12字节,并以字母开头.</td>
<td width="61%" align="left" bgcolor="#ffffff" style="padding:0px 8px;">
<input type="text" name="username" size="20" maxlength="12" dataType="Username" msg="用户名不符合规定" />
<span class="STYLE3">*</span> <a href="javascript:CheckName('checkname.php')">检测用户名是否可用</a></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>密码(至少5位):</strong><br />请输入密码,<br />
请不要使用任何类似 '*'、' ' 或 HTML 字符</td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="password" name="userpass" size="20" maxlength="20" dataType="LimitB" msg="密码不符合安全规则" min="5" max="20" />
<span class="STYLE3">*</span></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>确认密码:</strong><br />请再输一遍确认</td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="password" name="cuserpass" size="20" maxlength="20" dataType="Repeat" to="userpass" msg="两次输入的密码不一致" />
<span class="STYLE3">*</span></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>密码问题:</strong><br />当您忘记密码时可由此找回密码。<br />长度限制为6-20字节</td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="question" size="20" maxlength="20" dataType="Limit" msg="密码问题不符合规则" min="6" max="20" />
<span class="STYLE3">*</span></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>问题答案:</strong><br />当您忘记密码时可由此找回密码。<br />长度限制为6-20字节</td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="answer" size="20" maxlength="20" dataType="Limit" msg="问题答案不符合规则" min="6" max="20" />
<span class="STYLE3">*</span></td>
</tr>
<tr>
<td width="39%" align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>真实姓名:</strong></td>
<td width="61%" align="left" bgcolor="#ffffff" style="padding:0px 8px;">
<input type="text" name="truename" size="20" maxlength="20" dataType="Chinese" msg="姓名只允许中文" />
<span class="STYLE3">*</span></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>出生年月:</strong><br />如:1900年01月01日</td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="birth" size="20" maxlength="15" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>照片:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input name="photo" size="30" maxlength="200" type="text" /><br /><iframe frameborder="0" width="290" height="26" scrolling="No" src="upload_pic.htm"></iframe></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>所在单位:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="com" size="20" maxlength="50" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>职务:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="postion" size="20" maxlength="20" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>单位简介:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="intro" size="20" maxlength="200" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>通讯地址及邮编:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="address" size="20" maxlength="100" /> <input type="text" name="zip" size="6" maxlength="6" require="false" dataType="Zip" msg="邮编不正确" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>联系电话:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="tel" size="20" maxlength="20" require="false" dataType="Phone" msg="电话号码不正确" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>传真:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="tax" size="20" maxlength="20" require="false" dataType="Phone" msg="传真号码不正确" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>手机:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="mobile" size="20" maxlength="12" require="false" dataType="Mobile" msg="手机号码不正确" /></td>
</tr>
<tr>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><strong>E-mail:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="email" size="20" maxlength="30" require="false" dataType="Email" msg="信箱格式不正确" /></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>与交通大学相关教育经历:</strong><br />毕业院系,所在专业,所在班级,毕业时间</td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><label>
<textarea name="experience" cols="40" rows="10" onpropertychange="if(value.length>255)value=value.substr(0,255)"></textarea>
</label></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>个人主要工作经历:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><textarea name="job" cols="40" rows="10" onpropertychange="if(value.length>255)value=value.substr(0,255)"></textarea></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>个人兴趣爱好:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input type="text" name="hoby" size="40" maxlength="100" /></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>对交大会的建议和期望:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><textarea name="expect" cols="40" rows="10" onpropertychange="if(value.length>255)value=value.substr(0,255)"></textarea></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>希望为交大校友会提供的服务:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><textarea name="hope" cols="40" rows="10" onpropertychange="if(value.length>255)value=value.substr(0,255)"></textarea></td>
</tr>
<tr>
<td align="left" valign="top" bgcolor="#ffffff" style="padding:0px 8px;"><strong>简历:</strong></td>
<td align="left" bgcolor="#ffffff" style="padding:0px 8px;"><input name="jianli" size="30" maxlength="200" type="text" /><br /><iframe frameborder="0" width="290" height="26" scrolling="No" src="upload_soft.htm"></iframe></td>
</tr>
<tr>
<td colspan="2" align="center" bgcolor="#ffffff">
<input type="submit" name="Submit" value="提交" />
<input type="reset" name="Submit2" value="取消" />
</td>
</tr>
</table>
</form></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><img src="images/body_bottom.gif" width="776" height="7" /></td>
</tr>
</table>
<script>
/*************************************************
Validator v1.05
code by 范德彪
[email protected]
*************************************************/
Validator = {
Require : /.+/,
Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
Phone : /^((\(\d{
2,3}\))|(\d{
3}\-))?(\(0\d{
2,3}\)|0\d{
2,3}-)?[1-9]\d{
6,7}(\-\d{
1,4})?$/,
Mobile : /^((\(\d{
2,3}\))|(\d{
3}\-))?((13\d{
9})|(15\d{
9}))$/,
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
IdCard : "this.IsIdCard(value)",
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
Zip : /^[1-9]\d{
5}$/,
QQ : /^[1-9]\d{
4,8}$/,
Integer : /^[-\+]?\d+$/,
Double : /^[-\+]?\d+(\.\d+)?$/,
English : /^[A-Za-z]+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
Username : /^[a-z]\w{
3,}$/i,
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{
\}<>\?\\\/\'\"]*)|.{
0,5})$|\s/,
IsSafe : function(str){
return !this.UnSafe.test(str);},
SafeString : "this.IsSafe(value)",
Filter : "this.DoFilter(value, getAttribute('accept'))",
Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))",
LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
Range : "getAttribute('min') < (value|0) && (value|0) < getAttribute('max')",
Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
Custom : "this.Exec(value, getAttribute('regexp'))",
Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
ErrorItem : [document.forms[0]],
ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"],
Validate : function(theForm, mode){
var obj = theForm || event.srcElement;
var count = obj.elements.length;
this.ErrorMessage.length = 1;
this.ErrorItem.length = 1;
this.ErrorItem[0] = obj;
for(var i=0;i<count;i++){
with(obj.elements[i]){
var _dataType = getAttribute("dataType");
if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue;
this.ClearState(obj.elements[i]);
if(getAttribute("require") == "false" && value == "") continue;
switch(_dataType){
case "IdCard" :
case "Date" :
case "Repeat" :
case "Range" :
case "Compare" :
case "Custom" :
case "Group" :
case "Limit" :
case "LimitB" :
case "SafeString" :
case "Filter" :
if(!eval(this[_dataType])) {
this.AddError(i, getAttribute("msg"));
}
break;
default :
if(!this[_dataType].test(value)){
this.AddError(i, getAttribute("msg"));
}
break;
}
}
}
if(this.ErrorMessage.length > 1){
mode = mode || 1;
var errCount = this.ErrorItem.length;
switch(mode){
case 2 :
for(var i=1;i<errCount;i++)
this.ErrorItem[i].style.color = "red";
case 1 :
alert(this.ErrorMessage.join("\n"));
this.ErrorItem[1].focus();
break;
case 3 :
for(var i=1;i<errCount;i++){
try{
var span = document.createElement("SPAN");
span.id = "__ErrorMessagePanel";
span.style.color = "red";
this.ErrorItem[i].parentNode.appendChild(span);
span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
}
catch(e){
alert(e.description);}
}
this.ErrorItem[1].focus();
break;
default :
alert(this.ErrorMessage.join("\n"));
break;
}
return false;
}
return true;
},
limit : function(len,min, max){
min = min || 0;
max = max || Number.MAX_VALUE;
return min <= len && len <= max;
},
LenB : function(str){
return str.replace(/[^\x00-\xff]/g,"**").length;
},
ClearState : function(elem){
with(elem){
if(style.color == "red")
style.color = "";
var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
if(lastNode.id == "__ErrorMessagePanel")
parentNode.removeChild(lastNode);
}
},
AddError : function(index, str){
this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
},
Exec : function(op, reg){
return new RegExp(reg,"g").test(op);
},
compare : function(op1,operator,op2){
switch (operator) {
case "NotEqual":
return (op1 != op2);
case "GreaterThan":
return (op1 > op2);
case "GreaterThanEqual":
return (op1 >= op2);
case "LessThan":
return (op1 < op2);
case "LessThanEqual":
return (op1 <= op2);
default:
return (op1 == op2);
}
},
MustChecked : function(name, min, max){
var groups = document.getElementsByName(name);
var hasChecked = 0;
min = min || 1;
max = max || groups.length;
for(var i=groups.length-1;i>=0;i--)
if(groups[i].checked) hasChecked++;
return min <= hasChecked && hasChecked <= max;
},
DoFilter : function(input, filter){
return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, filter.split(/\s*,\s*/).join("|")), "gi").test(input);
},
IsIdCard : function(number){
var date, Ai;
var verify = "10x98765432";
var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var area = ['','','','','','','','','','','','北京','天津','河北','山西','内蒙古','','','','','','辽宁','吉林','黑龙江','','','','','','','','上海','江苏','浙江','安微','福建','江西','山东','','','','河南','湖北','湖南','广东','广西','海南','','','','重庆','四川','贵州','云南','西藏','','','','','','','陕西','甘肃','青海','宁夏','新疆','','','','','','台湾','','','','','','','','','','香港','澳门','','','','','','','','','国外'];
var re = number.match(/^(\d{
2})\d{
4}(((\d{
2})(\d{
2})(\d{
2})(\d{
3}))|((\d{
4})(\d{
2})(\d{
2})(\d{
3}[x\d])))$/i);
if(re == null) return false;
if(re[1] >= area.length || area[re[1]] == "") return false;
if(re[2].length == 12){
Ai = number.substr(0, 17);
date = [re[9], re[10], re[11]].join("-");
}
else{
Ai = number.substr(0, 6) + "19" + number.substr(6);
date = ["19" + re[4], re[5], re[6]].join("-");
}
if(!this.IsDate(date, "ymd")) return false;
var sum = 0;
for(var i = 0;i<=16;i++){
sum += Ai.charAt(i) * Wi[i];
}
Ai += verify.charAt(sum%11);
return (number.length ==15 || number.length == 18 && number == Ai);
},
IsDate : function(op, formatString){
formatString = formatString || "ymd";
var m, year, month, day;
switch(formatString){
case "ymd" :
m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
if(m == null ) return false;
day = m[6];
month = m[5]*1;
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
break;
case "dmy" :
m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
if(m == null ) return false;
day = m[1];
month = m[3]*1;
year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
break;
default :
break;
}
if(!parseInt(month)) return false;
month = month==0 ?12:month;
var date = new Date(year, month-1, day);
return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate());
function GetFullYear(y){
return ((y<30 ? "20" : "19") + y)|0;}
}
}
</script>
<?php
}
elseif($_GET['act']== "save")
{
$username = SafeHtml($_POST['username']);
$userpass = SafeHtml($_POST['userpass']);
$cuserpass = SafeHtml($_POST['cuserpass']);
if(empty($username) || empty($userpass) || empty($cuserpass))
{
Error("会员名或密码为空!","reg.php");
}
#[判断两次输入的密码是否一致]
if($userpass != $cuserpass)
{
Error("两次输入的密码不一致!","reg.php");
}
$email = SafeHtml($_POST['email']);
if(!empty($email)) {
if(!ereg("^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,5}$",$email))
{
Error("邮箱地址不正确!","reg.php");
}
}
$question = SafeHtml($_POST['question']);
$answer = SafeHtml($_POST['answer']);
if(empty($question) || empty($answer))
{
Error("密码问题或问题答案为空!","reg.php");
}
$truename = SafeHtml($_POST['truename']);
if(empty($truename))
{
Error("真实姓名不能为空!","reg.php");
}
$birth = SafeHtml($_POST['birth']);
$photo = SafeHtml($_POST['photo']);
$com = SafeHtml($_POST['com']);
$postion = SafeHtml($_POST['postion']);
$intro = SafeHtml($_POST['intro']);
$address = SafeHtml($_POST['address']);
$zip = SafeHtml($_POST['zip']);
$tel = SafeHtml($_POST['tel']);
$tax = SafeHtml($_POST['tax']);
$mobile = SafeHtml($_POST['mobile']);
$experience = nl2br($_POST['experience']);
$job = nl2br($_POST['job']);
$hoby = SafeHtml($_POST['hoby']);
$expect = nl2br($_POST['expect']);
$hope = nl2br($_POST['hope']);
$jianli = SafeHtml($_POST['jianli']);
$islock=1;
$check_user = $db->query("SELECT * FROM `user` where `username`='".$username."'");
$row=$db->getarray($check_user);
if($row)
{
Error("用户名已经存在!","reg.php");
exit;
}
$db->insert("INSERT INTO `user` (`username`,`userpass`,`question`,`answer`,`email`,`truename`,`birth`,`photo`,`com`,`postion`,`intro`,`address`,`zip`,`tel`,`tax`,`mobile`,`experience`,`job`,`hoby`,`expect`,`hope`,`jianli`,`islock`) VALUES('".$username."','".md5($userpass)."','".$question."','".$answer."','".$email."','".$truename."','".$birth."','".$photo."','".$com."','".$postion."','".$intro."','".$address."','".$zip."','".$tel."','".$tax."','".$mobile."','".$experience."','".$job."','".$hoby."','".$expect."','".$hope."','".$jianli."','".$islock."')");
$_SESSION['username']=$row['username'];
$_SESSION["super"] =0;
Error("注册成功!请等待管理员验证","index.php");
exit;
}
include('footer.php');
?>
</body>
</html>
ホームページ
<?php
include('inc/site.php');
include('inc/db_class.php');
include('inc/function.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>课程网站</title>
<meta name="keywords" content="课程网站" />
<meta name="description" content="课程网站" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
include('header.php');
?>
<table width="776" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-top:6px;">
<tr>
<td><img src="images/body_top.gif" width="776" height="7" /></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><table width="100%" height="560" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="560" valign="top"><div align="center">
<table width="195" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="195" height="179" valign="top">
<table width="195" border="0" cellspacing="0" cellpadding="0" background="images/member.gif">
<tr>
<td height="40"> </td>
</tr>
<tr>
<td><iframe id=user src="cp.php" frameBorder="0" width="100%" scrolling="no" height="140" allowTransparency="true"></iframe>
</td>
</tr>
</table></td>
</tr>
<tr>
<td height="3" valign="top"></td>
</tr>
<tr>
<td height="480" valign="top" background="images/left_bg.gif"><table width="185" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="26" align="left" class="menu" style="padding-left:20px;">教学大纲</td>
</tr>
<tr class="font">
<td align="left" valign="top">
<?php
if($result=$db->getfirst("select * from inheritance where istop=1 order by id desc"))
{
$topid=$result[id];
if(empty($result[photo]))
{
echo "·<a href=showinheritance.php?id=".$result[id].">".$result[title]."</a><br />";
}
else
{
?>
<a href="showinheritance.php?id=<?=$result[id]?>"><img src="images/inner-img1.gif" width="195" height="100" border="0" alt="<?=$result[title]?>" /></a>
<?php
}
}
if(empty($topid))
{
$result=$db->query("select * from inheritance order by id desc limit 0,5");
}
else
{
$result=$db->query("select * from inheritance where id <>$topid order by id desc limit 0,5");
}
while($row=$db->getarray($result)){
?>
·<a href="showinheritance.php?id=<?=$row[id]?>"><?=$row[title]?></a><br />
<?php
}
?>
</td>
</tr>
<tr>
<td height="10"></td>
</tr>
<tr>
<td><?php include('inc/link.php'); ?></td>
</tr>
</table></td>
</tr>
</table>
</div></td>
<td width="570" valign="top"><table width="570" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="570" height="112"><div align="right">
<img src="./images/head_back.png">
</div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="3" cellpadding="0">
<tr>
<td><table width="288" height="233" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" background="images/bg.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="26"><table width="90%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="60" class="menu"><div align="center">教师课件</div></td>
<td class="font"><div align="right"><a href="active.php">更多>></a></div></td>
</tr>
</table></td>
</tr>
<tr>
<td height="207" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="8" class="font">
<tr>
<td><?php
if($result=$db->getfirst("select * from active where istop=1 order by id desc"))
{
$topid=$result[id];
if(empty($result[photo]))
{
echo "·<a href=showactive.php?id=".$result[id].">".$result[title]."</a><br />";
}
else
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="94"><img src="images/inner-img6.gif" width="101" height="68" /></td>
<td style="padding-left:8px;"><span style="font-size: 14px;font-weight: bold;"><a href="showactive.php?id=<?=$result[id]?>">
<?=CutString($result['title'],18)?>
</a></span><br />
<a href="showactive.php?id=<?=$result[id]?>" style="font-size: 14px;font-weight: bold;"><font color="#ff9933">[详细查看]</font></a></td>
</tr>
</table>
<?php
}
}
if(empty($topid))
{
$result=$db->query("select * from active order by id desc limit 0,5");
}
else
{
$result=$db->query("select * from active where id <>$topid order by id desc limit 0,5");
}
while($row=$db->getarray($result)){
?>
·<a href="showactive.php?id=<?=$row[id]?>"><?=CutString($row[title],32)?></a><br />
<?php
}
?>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
<td><table width="278" height="233" border="0" cellpadding="0" cellspacing="0">
<tr>
<td background="images/bg2.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="26"><table width="90%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="60" class="menu"><div align="center">课程公告</div></td>
<td class="font"><div align="right"><a href="notice.php">更多>></a></div></td>
</tr>
</table></td>
</tr>
<tr>
<td height="207" valign="top" ><table width="100%" border="0" cellpadding="0" cellspacing="8" class="font">
<tr>
<td>
<?php
$result=$db->query("select nid,title from notice order by nid desc limit 0,8");
//mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
while($row=$db->getarray($result)){
?>
·<a href="shownotice.php?id=<?php echo $row[nid]; ?>"><?=CutString($row[title],32)?></a><br />
<?php
}
?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="288" height="233" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" background="images/bg.gif"><table width="100%" border="0" align="left" cellpadding="0" cellspacing="0">
<tr>
<td height="26"><table width="90%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="60" class="menu"><div align="center">课程资源</div></td>
<td class="font"><div align="right"><a href="home.php">更多>></a></div></td>
</tr>
</table></td>
</tr>
<tr>
<td height="207" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="8" class="font">
<tr>
<td>
<?php
$result=$db->getfirst("select * from topic order by id desc");
//mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
$topid=$result[id];
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="94"><img src="images/01.gif" width="94" height="58" /></td>
<td style="padding-left:8px;"><span style="font-size: 14px;font-weight: bold;"><a href="view.php?id=<?=$topid?>"><?=CutString($result['title'],18)?></a></span><br />
<a href="view.php?id=<?=$topid?>" style="font-size: 14px;font-weight: bold;"><font color="#ff9933">[详细查看]</font></a></td>
</tr>
</table></td>
</tr>
<tr>
<td>
<?php
$result=$db->query("select id,title from topic where id <>$topid order by id desc limit 0,5");
//mysql_query("set names 'gb2312'");//这就是指定数据库字符集,一般放在连接数据库后面就系了
while($row=$db->getarray($result)){
echo "·<a href=\"view.php?id=".$row[id]."\">".CutString($row[title],32)."</a><br />";
}
?></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
<td><table width="278" height="233" border="0" cellpadding="0" cellspacing="0">
<tr>
<td background="images/bg2.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="26"><table width="90%" height="26" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="60" class="menu"><div align="center">成果展示 </div></td>
<td class="font"><div align="right"><a href="flavor.php">更多>></a></div></td>
</tr>
</table></td>
</tr>
<tr>
<td height="207" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="8" class="font">
<tr>
<td>
<?php
if($result=$db->getfirst("select * from flavor where istop=1 order by id desc"))
{
$topid=$result[id];
if(empty($result[photo]))
{
echo "·<a href=showflavor.php?id=".$result[id].">".$result[title]."</a><br />";
}
else
{
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="94"><img src="images/img01.gif" width="121" height="77" /></td>
<td style="padding-left:8px;"><span style="font-size: 14px;font-weight: bold;"><a href="showflavor.php?id=<?php echo $result[id]; ?>"><?=CutString($result['title'],18)?></a></span><br />
<a href="showflavor.php?id=<?php echo $result[id]; ?>" style="font-size: 14px;font-weight: bold;"><font color="#ff9933">[详细查看]</font></a></td>
</tr>
</table>
<?php
}
}
if(empty($topid))
{
$result=$db->query("select * from flavor order by id desc limit 0,5");
}
else
{
$result=$db->query("select * from flavor where id <>$topid order by id desc limit 0,5");
}
while($row=$db->getarray($result)){
?>
·<a href="showflavor.php?id=<?=$row[id]?>"><?=CutString($row[title],32)?></a><br />
<?php
}
?>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td><img src="images/body_bottom.gif" width="776" height="7" /></td>
</tr>
</table>
<?php
include('footer.php');
?>
</body>
</html>
他のページはリソース パックを独自にダウンロードします
参考
JSP に基づく西北村町観光ウェブサイトの設計と実装 – [卒業論文]
https://blog.csdn.net/dearmite/article/details/131962993
サポートリソース
PHP-美しいインターフェイスの教材 ステーションまるごと卒業デザイン – [ホワイトプロジェクト]
https://download.csdn.net/download/dearmite/88159506
手術:
プロジェクトを構築し、思いついた他の機能を完成させます。PHP を学ぶことは、意志を持って、やりたいことを何でも行うことです。
魔法に勝てるのは魔法だけだ!