1. PHP 설치 프로그램 작성 원리
사실 PHP 프로그램의 설치 원리는 데이터베이스 구조와 내용을 해당 데이터베이스로 import하고, 이로부터 데이터베이스에 연결된 매개변수와 파일을 재구성하는 것에 불과하다. 설치 파일이 타인에 의해 악의적으로 사용되는 것을 방지하기 위해 설치 완료 후 설치 파일을 수정해야 합니다.
2. PHP 설치 프로그램 작성 단계
step1 디렉터리 또는 파일 권한 확인
step2 구성 파일 수정 또는 추가
step3 구성 파일의 정확성 확인
step4 가져오기 데이터베이스
step5 설치 파일 잠금 또는 삭제
3. 설치에 사용되는 PHP 함수 만들기
파일이 쓰기 가능한지 확인하고 부울 값을 반환합니다: is_writable("data/config.php");
파일을 읽을 수 있는지 확인합니다. 부울 값을 반환합니다: is_readable("data/config.php")
fopen() 파일 작업 함수, 파일 열기 또는 새 파일 만들기
fwrite() 파일 작업 함수, 파일에 내용 쓰기
rename( ) 파일 작업 함수, 파일 이름 바꾸기
4. 참고
(1) 파일 및 캐시, 생성 파일 등 관련 폴더의 권한을 확인합니다. , 구성 파일
(2). 설치 파일은 독립적일 수 있고 삭제될 수 있으며 이름을 바꿀 수 있습니다.
(3). 데이터베이스를 가져올 때 다음을 확인해야 합니다.
a. 데이터베이스 생성 권한이 있는지 확인합니다.
b. 동일한 이름의 데이터베이스가 존재하는지 여부를 고려합니다. 데이터베이스 가져오기 크기, 분할 여부 처리
(4). gd2, pdo, rewirte 등과 같은 다양한 모듈의 구성 환경 및 지원을 확인합니다.
5. 다음
코드 복사 코드는 다음과 같습니다.
$files="data/config .php";
if(!is_writable($files)){
echo "쓰기 불가능!!!";
}else{
echo "쓰기 가능"
}
if(isset($_POST[install])){
$config_str = "$config_str .= "n";
$config_str .= ' $mysql_host = "' . $_POST[db_host] . '";'
$config_str .=
$config_str .= '$mysql_user = "' . $_POST[db_user] . '" ;'
$config_str .= "n";
$config_str .= '$mysql_pass = "' . $_POST[db_pass] . '";';
$config_str .= "n";
$config_str .= '$mysql_dbname = "' . $_POST[db_dbname] '";';
$config_str .= " n";
$config_str .= '$mysql_tag = "' . $_POST[db_tag] . '";';
$config_str .= "n";
$config_str .= '?> ';
$ff = fopen($files, "w ") ;
fwrite($ff, $config_str)
//============ ======
include_once ("data/config.php "); //구성 파일 삽입
if (!@$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { // 데이터베이스 연결 확인
echo "데이터베이스 연결 실패! 이전 페이지로 돌아가십시오. 연결 매개변수 확인수정하려면 돌아가세요"
} else {
mysql_query ("CREATE DATABASE `$mysql_dbname`");
mysql_select_db($mysql_dbname );
$sql_query[] = "CREATE TABLE `" . "admin_log1` (
`id` int(8 ) unsigned NOT NULL auto_increment,
`username` varchar(40) NOT NULL COMMENT '작업 사용자 이름',
`types` varchar(60) NOT NULL,
PRIMARY KEY(`id`)
) ;";
$sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log2` (
`id` int(8) unsigned NOT NULL auto_increment,
`username` varchar(40 ) NOT NULL COMMENT '작업 사용자 이름',
`types` varchar( 60) NOT NULL,
PRIMARY KEY (`id`)
) ;";
$sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` (
`id` int (8) unsigned NOT NULL auto_increment,
`username` varchar(40) NOT NULL COMMENT '작업 사용자 이름',
`types ` varchar(60) NOT NULL,
기본 키(`id`)
) ;";
foreach($sql_query as $val){
mysql_query($val);
}
echo "<script>alert('설치 성공!'); location.href='index.php'</script>"
rename("install.php","install.lock" );
}
}
?>