Include
정말 내용을로드하는 데 사용할 수 없습니다해야하지만, 내용이 단순히 데이터베이스에서 오는 경우 다른 파일은 ... 기능을 포함
, 단순히 출력을 쿼리 할 이유 값을 변수에 저장하고 print($var)
을 사용 하시겠습니까?
기본 CMS는 ID가있는 데이터베이스 (예 : 제목 문자열) 및 내용을 데이터베이스에 저장합니다. 콘텐츠는 div
또는 다른 컨테이너 요소 역할을하는 print
입니다. 그 주위의 레이아웃은 단순히 일종의 템플릿 일뿐입니다. html 페이지에 내용 마커가 있습니다.
일반적으로 기사를 관리하고 기사를 편집하며 최소한 새로운 기사를 게시 할 수있는 관리 콘솔을 통해 콘텐츠를 추가합니다. 이 영역은 암호로 보호되어야합니다.
<body>
<div id="container">
<?php
$uri = substr($_SERVER['REQUEST_URI'], 1); //Gives us articles/1/How-Grinch-Stole-Thanksgiving
$components = explode('/', $uri); // $components[0] is "articles", $components[1] is 1, etc.
/* Do SQL Query here: "SELECT * FROM '".$components[0]."' WHERE 'id'=".$components[1] */
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
$sql = "SELECT * FROM '".$components[0]."' WHERE 'id'=".$components[1];
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) != 1) {
echo "Improper result. Exiting";
exit;
}
$row = mysql_fetch_assoc($result);
print($row["content"]);
?>
</div>
</body>
이 매우 초보입니다 :
그럼 당신은 URI /articles/1/How-Grinch-Stole-Thanksgiving
(SEO 목적으로 재 작성하여 URL)를 가지고 가정 해 봅시다, 템플릿의 기본적인 종류처럼 보일 수 있습니다 당신은 이런 종류의 스크립트를 사용하지 않을 것입니다. 요점은 인덱스가 대체 큐를 $_GET
값에서 가져 오는이 종류의 CMS를 탐색해야하므로 페이지가 어떻게 함께 나타나는지 알 수 있습니다. 나중에 템플릿에서 읽고 페이지로 어셈블하고 마커를 데이터베이스 또는 다른 템플릿의 컨텐츠로 바꿀 수 있습니다.
Wordpress, Drupal 및 Joomla!에서 본 대부분의 내용에서이 CMS는 데이터베이스에 ** PHP 코드 **를 저장하지 않습니다. 동적으로 데이터베이스를 형성하기 위해 내용을로드하는 템플리트 파일이 있습니다. – mmundiff
왜 템플릿이나 html/php 코드를 데이터베이스에 저장 하시겠습니까? 그 방법이 CMS를 만드는 데 매우 유용 할 것입니다. 이 방법을 고집하는 경우 문자열을 가져 와서 PHP 확장명을 가진 임시 파일로 저장하고 포함시킨 다음 파일을 삭제할 수 있다고 가정합니다. 그러나 나는 이것이 당신의 전반적인 목표에 대해 유용하거나 도움이되는 방법을 여전히보고 싶지 않습니다. – mason81
당신의 접근 방식은 잘못되어 위험합니다. DB 문자열에서 PHP를 가져 오는 데 필요한 'eval()'을 사용하여 문제와 공격에 노출 될 수 있습니다. KISS - 간단하고 어리 석다. 당신은 배우기 위해 이것을하고 있습니다. 따라서 작게 시작해서 더 커질 수 있습니다. Exploring Wordpress, Drupal, Joomla ... 이것은 나쁜 예입니다 - 모두를 위해 모든 것을 시도하고 부풀게됩니다. 사용자 정의 CMS는 사용자의 요구에 초점을 맞춰야합니다. – stslavik