2012-08-03 2 views
1

저는 사용자 이름과 암호가 들어있는 "config.php"파일이 필요한 작은 PHP 기반 응용 프로그램을 만들고 있습니다. 최종 사용자가 응용 프로그램을 서버에 업로드하기 전에 "config.php"를 수동으로 수정하도록 요구하지 않고 설치 양식에서 "config.php"를 동적으로 생성하고 싶습니다.PHP 폼을 통해 "config.php"를 생성하는 방법은 무엇입니까?

기본적으로, 나는 이것을 사용하고 싶습니다 :

<form method="POST" action="?setup-config"> 
<fieldset> 
    <div class="clearfix"> 
     <label for="username">Desired User Name</label> 
     <div class="input"> 
      <input type="text" name="username" id="username"> 
     </div> 
    </div> 
    <div class="clearfix"> 
     <label for="password">Desired Password</label> 
     <div class="input"> 
      <input type="password" name="password" id="password"> 
     </div> 
    </div> 
    <div class="actions"> 
     <input type="submit" value="Save Username &amp; Password"> 
    </div> 
</fieldset> 
</form> 

는 "config.php에"를 만들 :

<?php 

$username = 'entered username'; 
$password = 'entered password'; 
+0

사용 ['frwite()'(http://php.net/manual/en/function.fwrite.php) –

+1

무엇입니까? 안돼, 안돼, 안돼, 안돼, 안돼. 사용자 이름과 암호는 데이터베이스에 있습니다. 기간. 그리고 암호는 해시를 통해 보안을 설정해야합니다. – Matt

+1

@Matt - 원칙적으로 동의하지만 파일 시스템에 작은 응용 프로그램에 대한 사용자 로그인 데이터를 저장하는 데는 문제가 없습니다. (a) 문서 루트 외부. (b) 암호 데이터를 해시했습니다 (언급 한대로) –

답변

2

나는 file_put_contents() 제안 :

$config[] = "<?php"; 
$config[] = "\$username = '$_POST['username']';"; 
$config[] = "\$password = '$_POST['password']';"; 

file_put_contents("config.php", implode("\n", $config)); 
+0

올바른 연산자를 사용하고 있지 않습니다. 연결 연산자를 사용할 필요가 있습니다 :'. ='... 설정 파일에'$ config = "\ $ password = '$ _POST ['password ']'; –

+0

좋아하는 구문을 사용하도록 업데이트되었습니다. 배열을 선호하고 확장 성을 위해 함몰하지만,이 작은 스케일의 것이어도, 병을 연결하는 것이 좋을지라도. –

+0

나는'file_put_contents()'메소드도 좋아한다. –

1

매우 기본 예제입니다. 이는 에 많이 올릴 때으로 개선 될 수 있습니다.

<?php 
$fp = fopen('config.php', 'w'); 
fwrite($fp, "<?php\n"); 
fwrite($fp, "\$username = '$_POST['username']';\n"); 
fwrite($fp, "\$password = '$_POST['password']';\n"); 
fclose($fp); 
?> 
관련 문제