php安全mysql
校園論壇是校園網中不可缺少的部分之一 雖然基於ASP+ACCESS的論壇使用簡潔 安裝方便 但MySQL資料庫以它短小 方便 速度快 免費等優點成為很多站點目前首選資料庫 加上PHP語言也具有可跨平台 移植性高 安全可靠 快速高效的優點 因此目前很多流行論壇程序都採用了PHP+MySQL相結合來開發 不過 對於我等菜鳥們來說在伺服器上安裝PHP+MySQL論壇可不像ASP+ACCESS那麼簡單 只需要直接放到站點目錄下即可運行 因為大多數PHP+MySQL論壇在使用前都需要安裝
如果你打算購買虛擬空間來運行PHP+MySQL論壇程序 那麼你首先得購買一個支持PHP+MySQL的空間 一般的適合運行小型論壇( 人左右同時在線)程序的虛擬空間每年最低費用一般 元左右 除此而外 還得建立MySQL資料庫 創建用戶名和密碼才襪差野能順利安裝PHP+MySQL論壇 有的虛擬空間商直接提供這些信息給你 無需自己動手設置 例如 上海E動網的K 虛擬主機 在後台建立了名稱為itlm的資料庫後 就自動創建了itlm_f itlm_r itlm_w三個用戶(密碼都是自己設定的) 這樣安裝時就可以直接使用了
如果學校有自己的伺服器(Windows系統) 那麼就按照下面的步驟一先設置好伺服器的運行環境 讓伺服器支持PHP+MySQL
伺服器端軟體安裝
PHP+MySQL論壇程序在大多數情況下都是運行在Linux UNIX等系統下 但是安裝Linux UNIX系統再配置PHP+MySQL對於我等菜鳥們來說可不是想玩就可以玩起來的!這里筆者向大家推薦一款Win 平台下的一款Web伺服器軟體 EasyAPM Server EasyAPM Server是Win /XP/ 系統下的Apache+PHP+MySQL運行環境快速集成安裝套件 只要一次安裝 就自動包含以下程序 Apache v (Win ) PHP v (Win ) Zend Optimizer v a(Win ) MySQL v (Win ) phpMyAdmin v pl 用戶無須修改任何配置文件 對初學者來說是安裝最方便 最快速的一款WEB伺服器平台!
第 步 從以下地址下載EasyAPM Server
// byshell net/Sofare/Catalog /
第 步 將下載的文件解壓到伺服器d:usr
第 步 在服務告喊器上運行d:usrinstall bat 安裝Apache+PHP+MySQL集成套件 這樣 幾分鍾之內 就讓你的伺服器(或個人電腦)立刻變成了一台支持PHP+MySQL的伺服器
第 步 建立MySQL資料庫 在伺服器IE地址欄輸入 //localhost/phpmyadmin/ 使用phpMyAdmin來建立一個名為itlm的資料庫
注意
( )如果伺服器原來已經安裝IIS服務 請在安裝EasyAPM Server前停止服務 或改變默認埠 否則會無法正常安裝
( )EasyAPM Server安裝後 默認登錄用戶名: root 密碼: micronsky net 進入後台後可以使用 許可權 項來更新MySQL資料庫的默認密碼 添加新的MySQL用戶 設置用戶許可權等操作 這里我們新增了一個用戶 itlm_f
( )更多操作請查看EasyAPM Server內的說明文檔
安裝phpwind
免費個人版論壇程序
第 步 下載慶旁解壓phpwind安裝包 從// phpwind /download php?action=do&&p= PWForums&&v= &&n=PHPWind_GBK_ zip下載PHPWind 正式版(PHP+MySQL)高速論壇程序
第 步 上傳phpwind程序文件 如果使用的是虛擬主機 只要用FTP軟體將解壓後的所有文件上傳到網站根目錄下 確保在根目錄下能看到install php就可以了!
如果是自己的伺服器安裝的EasyAPM Server 只要先刪除D:usr下 除phpmyadmin文件夾(在線管理資料庫用)外的所有文件 然後將phpwind zip內的所有文件解壓到D:usr下 確保D:usr下能看到install php文件 這些就是phpwind的論壇的安裝程序文件
第 步 設置相關目錄和文件的屬性(伺服器如果是Windows平台的 此步可省略 直接將相關文件或文件夾設置為可寫即可) 先確認以下目錄或文件屬性為( )可寫模式
data data/sql_config php attachment data/bbscache data/groupdb data/style _data template template/wind template/admin image/upload image/attach
PHP編程免費提供,內容來源於互聯網,本文歸原作者所有。
⑵ 求一段php防mysql注入病毒代碼。
//POST過濾安全
$_POST=check_input($_POST);
function check_input($value)
{
if(get_magic_quotes_gpc()){
$value = htmlspecialchars(trim($value));
} else {
$value = addslashes(htmlspecialchars(trim($value)));
}
return $value;
}
另一種如下:PHP整站防注入程序,需要在公共文件中require_once本文件
<?PHP
//判斷magic_quotes_gpc狀態
if (@get_magic_quotes_gpc ()) {
$_GET = sec ( $_GET );
$_POST = sec ( $_POST );
$_COOKIE = sec ( $_COOKIE );
$_FILES = sec ( $_FILES );
}
$_SERVER = sec ( $_SERVER );
function sec(&$array) {
//如果是數組,遍歷數組,遞歸調用
if (is_array ( $array )) {
foreach ( $array as $k => $v ) {
$array [$k] = sec ( $v );
}
} else if (is_string ( $array )) {
//使用addslashes函數來處理
$array = addslashes ( $array );
} else if (is_numeric ( $array )) {
$array = intval ( $array );
}
return $array;
}
//整型過濾函數
function num_check($id) {
if (! $id) {
die ( '參數不能為空!' );
} //是否為空的判斷
else if (inject_check ( $id )) {
die ( '非法參數' );
} //注入判斷
else if (! is_numetic ( $id )) {
die ( '非法參數' );
}
//數字判斷
$id = intval ( $id );
//整型化
return $id;
}
//字元過濾函數
function str_check($str) {
if (inject_check ( $str )) {
die ( '非法參數' );
}
//注入判斷
$str = htmlspecialchars ( $str );
//轉換html
return $str;
}
function search_check($str) {
$str = str_replace ( "_", "\_", $str );
//把"_"過濾掉
$str = str_replace ( "%", "\%", $str );
//把"%"過濾掉
$str = htmlspecialchars ( $str );
//轉換html
return $str;
}
//表單過濾函數
function post_check($str, $min, $max) {
if (isset ( $min ) && strlen ( $str ) < $min) {
die ( '最少$min位元組' );
} else if (isset ( $max ) && strlen ( $str ) > $max) {
die ( '最多$max位元組' );
}
return stripslashes_array ( $str );
}
//防注入函數
function inject_check($sql_str) {
return eregi ( 'select|inert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile', $sql_str );
}
function stripslashes_array(&$array) {
if (is_array ( $array )) {
foreach ( $array as $k => $v ) {
$array [$k] = stripslashes_array ( $v );
}
} else if (is_string ( $array )) {
$array = stripslashes ( $array );
}
return $array;
}
?>
⑶ php中關於資料庫的操作(php操作mysql資料庫)
PHP開始~
將php-5.2.1-Win32.zip解壓到准備用於安裝PHP的目錄,這里我就解壓到D:wwwphp;找到php目錄下php.ini-dist文件,改名為php.ini;
用記事本打開php.ini,查找以下幾行:
;extension=php_gd2.dll
;extension=php_mcrypt.dll
;extension=php_mysql.dll
去掉前面的分號.這樣做的目的是讓php載入mcrypt和mysql等各種模塊,在需要的時候可以隨時配置;
其他的比如
post_max_size=8M
upload_max_filesize=2M
都可以按實際情況進差粗行設置.
最後保存,也不需要復制任何文件到系統目錄,這樣PHP基本上就OK了!
MySQL
1、安裝
解壓mysql-5.2.3-falcon-alpha-win32.zip得到一個setup.exe安裝文件,運行之開始安裝MySQLServer5.2;
第一步選擇安裝模式,選擇Custom習慣安裝,Next進入下一步;
這一步選擇安裝內容:仍然虛塵鎮MySQLServer完整安裝,主要是自定義下面的安裝目錄,我安裝在D:wwwMySQL5.2點擊Next進入下一步;
Install開始安裝,稍候會提示注冊MySQL帳戶,SKIP即可;
完成安裝,勾選ConfiguretheMySQLServernow,Finish並進入MySQL配置;
2、配置
完成安裝時若勾選了ConfiguretheMySQLServernow,點擊Finish便可直接進入MySQLServerInstanceWizard;否則就需要在MySQL安裝目錄in下找到並運行.exe進入設置.
點Next開始配置,第一步選擇配置模式,這里我已經安裝了MySQL,所以選擇第一種Detailed模式,Next進入下一步;
這一步selectaservertype,不同的選擇決定MySQL佔用不同的系統內存和CPU資源,這里我選的是DeveloperMachine;
繼續Next,選擇資料庫用途,我選的是多功能型的;
下一步設定InnoDB引擎的存儲目錄,我設置的是D:wwwMySQL5.2InnoDBDatafiles,點擊Next進入下一步;
設置MySQL資料庫的並發連接數,這里需要了解什麼是並發連接數,可根據實際情況進行設定.我這里選的是ManualSetting,並且設置連接數為10000;
Next進入下一步,setthenetworkingoptions,採用默認的,繼續Next;
設置默認語言,選擇第三個,設定character為gbk;
Next將MySQL設置為Windows系統服務,採用默認的,Next進入下一步;
選擇設置root帳戶密碼,或者可以同時新建一個匿名帳戶Anonymous.值得注意的是設置root密碼的下面有一個小選項,是否允許root用戶從別的計算機登陸,為了方便可以勾選上,為了安全兄鎮當然最好就別選;
進入下一步PressExecute開始配置,完成Finish關閉設置向導`~
OK!
⑷ php+mssql 和 php+mysql 優點缺點
一、PHP+MySql
優點:
1) MySql是一個快速、多線程、多用戶的SQL資料庫伺服器。
2) MySql的核心程序採用完全的多線程編程。
3)MySql可運行在不同的操作系統下。
4) MySql有一個非常靈活而且安全的許可權和口令系統。
5) MySql支持ODBC for Windows。
6)MySql支持大型的資料庫。
7) MySql擁有一個非常快速而且穩定的基於線程的內存分配系統,可以持續使用面不必擔心其穩定性。
8) 強大的查詢功能。
9)PHP為MySql提供了強力支持,PHP中提供了一整套的MySql函數,對MySql進行了全方位的支持。
缺點:
比較的難學;
MySQL不完全支持陌生的關鍵詞;
MySQL也缺乏一些存儲程序的功能;
使用預設的ip埠,但是有時候這些ip也會被一些黑客闖入;
使用myisam配置,如果你不慎損壞資料庫,結果可能會導致所有的數據丟失;
二、PHP+MsSql
優點:
上手容易; 兼容性良好; 利於構築"敏捷性商務";
缺點:
只能在windows 上運行,沒有絲毫的開放性,操作系統的系統的穩定對資料庫是十分重要的。
並行實施和共存模型並不成熟。很難處理日益增多的用戶數和數據卷。伸縮性有限;
安全性方面,沒有獲得任何安全證書;
客戶端支持及應用模式 ,是C/S結構,只支持windows客戶,可以用ADO, DAO,OLEDB,
ODBC連接;
不是免費的;
數據不容易恢復;
⑸ php鏈接MySQL資料庫
如果不是root密碼:
連root的密碼也忘記了嗎?
沒有的話,用root進去,修改mysql資料庫user表咯。
如果是root密碼:
方法一:
MySQL提供跳過訪問控制的命令行參數,通過在命令行以此命令啟動MySQL伺服器:
safe_mysqld --skip-grant-tables&
即可跳過MySQL的訪問控制,任何人都可以在控制台以管理員的身份進入MySQL資料庫。
需要注意的是在修改完密碼以後要把MySQL伺服器停掉重新啟動才會生效
方法二:
可以進行如下的步驟重新設置MySQL的root密碼:
1.首先確認伺服器出於安全的狀態,也就是沒有人能夠任意地連接MySQL資料庫。
因為在重新設置MySQL的root密碼的期間,MySQL資料庫完全出於沒有密碼保護的
狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採用將MySQL對
外的埠封閉,並且停止Apache以及所有的用戶進程的方法實現伺服器的准安全
狀態。最安全的狀態是到伺服器的Console上面操作,並且拔掉網線。
2.修改MySQL的登錄設置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
保存並且退出vi。
3.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
4.登錄並修改MySQL的root密碼
# /usr/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type 『help;』 or 『\h』 for help. Type 『\c』 to clear the buffer.
mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ( 『new-password』 ) WHERE User = 『root』 ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
5.將MySQL的登錄設置修改回來
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除
保存並且退出vi。
6.重新啟動mysqld
# /etc/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
windows
1.以系統管理員身份登陸系統。
2.打開cmd—–net start 查看mysql是否啟動。啟動的話就停止net stop mysql.
3.我的mysql安裝在d:\usr\local\mysql4\bin下。
4.跳過許可權檢查啟動mysql.
d:\usr\local\mysql4\bin\mysqld-nt –skip-grant-tables
5.重新打開cmd。進到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql4\bin\mysqladmin -uroot flush-privileges password 「newpassword」
d:\usr\local\mysql4\bin\mysqladmin -u root -p shutdown 這句提示你重新輸密碼。
6.在cmd里net start mysql
7.搞定了。
2,MySQL4.1以上版本一種密碼錯誤問題的解決方法
1 # SET PASSWORD FOR 』some_user』@』some_host』 = OLD_PASSWORD(『newpwd』);
2 # FLUSH PRIVILEGES;
3,Mysql資料庫修復
myisamchk -r -q d:\mysql\data\latin1\*
r代表修復
q代錶快速
d:\mysql\data\latin1\*資料庫裡面 *代表裡面的所有的文件
方法三:
如果你忘記了你的MYSQL的root口令的話,你可以通過下面的過程恢復。
1. 向mysqld server 發送kill命令關掉mysqld server(不是 kill -9),存放進程ID的文件通常在MYSQL的資料庫所在的目錄中。
kill `cat /mysql-data-directory/hostname.pid`
你必須是UNIX的root用戶或者是你所運行的SERVER上的同等用戶,才能執行這個操作。
2. 使用`--skip-grant-tables' 參數來啟動 mysqld。
3. 使用`mysql -h hostname mysql'命令登錄到mysqld server ,用grant命令改變口令。你也可以這樣做:`mysqladmin -h hostname -u user password 'new password''。
(其實也可以用use mysql; update user set password =password('yourpass') where user='root' 來做到。)
4. 載入許可權表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。(當然,在這里,你也可以重啟mysqld。)
方法四:(一定要先備份)
1,重新在另一台電腦上安裝相同版本的MySQL
2,刪除忘記密碼的電腦中MySQL安裝目錄中\data\mysql的全部內容(要先停止MySQL服務)
3,Copy新裝的電腦上MySQL安裝目錄中\data\mysql的全部內容 to 剛剛刪除的目錄中
4,啟動MySQL服務
這樣就只有一個root用戶了,密碼為空……