2012-05-11 3 views
0

데이터베이스 레코드의 내용을 필요로하거나 포함하려면 필요하지만/include는 파일 만 허용합니다. 이 것은 캐싱과 관련이 있으므로 파일을 쓰고 싶지 않습니다 (충돌 등). 그것을 피하는 방법?PHP, 파일에없는 것을 요구하는 법?

+1

당신이 말하는 "내용"의 종류를 명확히하십시오. – jrennie

답변

1

다른 것은 eval() 다. 그리고 이것이 나쁜 생각이라는 사실 때문에, 나는이 "content"를 파일에 쓰는 주제를 다룰 것이다. tempnam을 사용하십시오. 이렇게하면 0600 권한이있는 방금 생성 된 고유 한 파일 이름이 제공됩니다. 그런 다음 열어 내용을 쓰고 닫은 다음 필요/포함 할 수 있습니다. tempnam 매뉴얼 페이지의 예제 # 1을 참조하십시오.

tempnam의 반환 값이 false가 아닌지 확인하십시오. 완료 한 후 unlink 파일을 확인하십시오.

+0

나 자신을 쓰레기거야. –

1

이 데이터베이스의 내용이 사용자로부터 기여했지만, 어쨌든이 사용할 수 특히, 매우 위험하다 : 그것은 코드 인 경우

eval($your_database_content); 

Manual

1

, 당신은 eval()을 사용할 필요를, eval()

을 포함 많은 안티 패턴이 있기는하지만 설명서는 말한다 :

주의 은 임의의 PHP 코드를 실행할 수 있으므로 eval() 언어 구문은 매우 위험합니다. 따라서 그 사용은 권장되지 않습니다. 이외의 다른 옵션이 없음을 신중하게 확인한 경우 사전에 적절하게 유효성을 검사하지 않은 채 사용자에게 제공된 데이터를 전달하지 않도록 특히주의하십시오.

3

데이터베이스에서 PHP 코드를 가져오고 있습니까? 그렇다면 잘못했을 수도 있습니다. 이상적으로는 코드가 아닌 데이터베이스에만 데이터를 저장해야합니다.

데이터베이스에서 PHP 구조를 가져 오는 경우 serialize() '버전 (또는 json_encode()'d)을 사용하는 것이 좋습니다.

어쩌면 내가 성취하려고하는 정확한 목적을 놓친 것일 수 있습니다. 내 대답으로 잘못된 길을 가고 있는지 알려주세요.

무엇을 하든지간에 실제로 수행해야하는 경우가 아니면 eval에 의지하지 마십시오. 그리고 나서라도하지 말아라.

관련 문제