2013-12-17 1 views
0

config.php라는 파일이 있는데, 데이터베이스에 연결하는 변수를 저장합니다 (사용자 이름, 암호 등). 이러한 설정을 html 형식에서 편집 할 수 있기를 원합니다. 그것을 설정해주세요)PHP 내에서 설정을 포함하는 파일 편집

그러나 양식에서이 변수를 재정의하는 방법을 찾을 수 없으면 양식을 updateDatabaseSettings.php 페이지로 보내지 만 양식을 변경하는 방법을 모릅니다.

이 내용에 큰 도움을 주실 수 있습니다.

코드 지금까지 가지고

config.php를

$DBUSER="root"; 
$DBPASS=""; 
$DBHOST="127.0.0.1"; 
$DBNAME="mydb"; 

updateDatabaseSettings.php이

$newDBHOST = $_POST['dbhost']; 
$newDBNAME = $_POST['dbname']; 
$newDBUSER = $_POST['dbuser']; 
$newDBPASS = $_POST['dbpass']; 

내가 그 교체 $ newDBHOST에 대한 사용자 입력 192.168.1.2을 원하는 말 $ DBHOST에있는 텍스트

감사합니다.

답변

3

updateDatabaseSettings.php 스크립트는 config.php 파일의 내용을 덮어 써야합니다.

간단한 접근 방식은 모든 새로운 내용 (<?php ?> 태그 및 모든 변수 선언 포함)을 포함하는 문자열을 구성하는 것입니다. 그런 다음 해당 문자열을 file_put_contents()으로 전달하여 config.php 파일을 덮어 쓸 수 있습니다.

그래도 파일 권한을 확인하십시오. 웹 서버가 config.php에 글을 쓰도록 허용해야합니다. 그렇지 않으면 작동하지 않습니다.

+0

file_put_contents()는 현재 코드를 대체 할 수 있습니까? – Robbo5899

+0

예,'config.php'의 모든 것을 대체합니다. 코드의 일부만 바꾸려면 훨씬 더 복잡합니다. 현재 내용을 읽고, 분석 할 비트를 찾아 낸 다음, 수정 된 전체 내용을 다시 작성해야합니다. 번거롭게 할 가치가 없을 것입니다! –

+0

OK 그 파일에 다른 설정이 저장되어 있지만 간단히하기 위해 다른 파일로 나눌 수 있습니다.도와 주셔서 감사합니다 :) – Robbo5899

-1

config.php를 updateDatabaseSettings.php에 넣고 값을 바꿀 것 같습니까? 아니면 이러한 변수를 전역 변수로 설정합니까? 그런 다음 새로운 db 연결을 종료하고 초기화해야한다고 가정합니다. 대답하기가 어렵다면 앱이 어떻게 구조화되는지 알 필요가 있습니다.

+0

데이터베이스에 액세스해야하는 본질적으로 everypage에는 config.php가 포함됩니다. – Robbo5899

+0

그래서 문제가 무엇입니까? $ DBHOST에 대해 새 값을 설정할 수 없습니까? – Eric

+0

그래, 나는 PHP의 파일 쓰기 시스템을 사용할 수있을 것 같아.하지만 많은 googleing 후에 나는 그것이 어떻게 작동하는지에 대해 아직도 모르겠다. – Robbo5899

0

당신은 말하기가 어렵지만 많은 두 가지 DB 연결 인스턴스 (하나의 기본 및 두 번째 변수 연결)를 만들 것입니다. 기본 연결은 config.php에서 구성 정보를 가져올 수 있으며 항상 기본 db에 연결할 수 있으며 두 번째 인스턴스는 POST에서 직접 구성 정보를 가져 와서 POST 요청이 호출 될 때 새 연결을 만듭니다.

또한 전역 변수를 사용할 수 있으며 PHP (look fopen,fwrite,fclose,... functions)로 직접 config.php 파일을 필요로하거나 변경할 때 전역 변수를 사용할 수 있습니다.