php 파일생성과 삭제
관련링크
본문
안녕하세요?
php 구 버전의 책을 보고 연습하고 있는데,
아래 소스코드에서 파일생성과 파일삭제가 되지 않는군요...
(아마도 책의 저자는 순수 php 코드를 이용하여 설명하고자 한 것 같네요)
링크 페이지를 보면
삭제버튼과 생성버튼이 동작하지 않습니다.
이전에도 도움을 받았는데...........또 도움을 청합니다.
(몇일 찾아서 해 보아도 되질 않네요.. ㅠㅠ)
<?php
$NewsDir = "/dolsoft/www/amw/news/news/"; //뉴스파일이 들어가는 디렉토리
$Extension =".txt";
$AdminFile ="newsAdmin.php";
//뉴스 파일을 읽어서 시간 순으로 정렬한다.
function SortNewsFiles()
{
global $NewsDir, $Extension, $NewsFiles;
$NewsFiles=array();
if($dirhandle = opendir($NewsDir))
{
while(false !== ($filename = readdir($dirhandle)))
{
$fn = strtolower($filename);
if (strstr($fn, $Extension))
{
$filetime = filemtime($NewsDir.$filename);
$NewsFiles[$filename] = $filetime;
}
}
closedir($dirhandle);
arsort($NewsFiles);
// print $NewsFiles."<br>";
}
}
//하이퍼링크 자동으로 걸기 사용문장 "#{url |단어나 문장}"
function HyperLinking($line)
{
$subA=strstr($line, "#{");
if($subA)
{
$subB=strstr($subA,"}");
if($subB)
{
$lengA=strlen($subA);
$lengLine=strlen($line);
$line=substr($line,0,$lengLine-$lengA);
$subA=substr($subA,2);
$lengB=strlen($subB);
$lengA=strlen($subA);
$subA=substr($subA,0,$lengA-$lengB);
$subB=substr($subB,1);
$ta=strstr($subA,"|");
if($ta){
$lengA=strlen($subA);
$lt=strlen($ta);
$linktext=substr($subA,$lenA-$lt+1);
$subA=substr($subA,0,$lengA-$lt);
} else {
$linktext=$subA;
}
//$line=$line."<a href=".$subA.">".$linktext."</a>".$subB;
$line=$line."<a href=".$subA." target=_blank>".$linktext."</a>".$subB;
}
}
return($line);
}
//뉴스 파일 내용을 보여 준다.
function ShowNewsContent($filename)
{
global $NewsDir;
$contents = file($NewsDir.$filename);
$n = count($contents);
$filedate=date("l,F d,Y", filemtime($filename)); //echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
echo "<font color =#3f5e9e size=4><I><B>
$contents[0]
</I></B></FONT><BR>
<HR><FONT SIZE=2><B>
$filedate
</B><BR>";
for ($i=1; $i<$n; $i=$i+1)
{
$line=chop($contents[$i]);
$line=htmlspecialchars($line);
$line=HyperLinking($line);
echo($line."<BR>");
}
}
/*
//읽을 뉴스 파일을 지정한다.
function ShowNews()
{
global $NewsFiles;
for(reset($NewsFiles);$filename = key($NewsFiles);
next($NewsFiles))
{
ShowNewsContent($filename);
echo "<P>";
}
}
*/
//관리자 화면을 디스플레이한다.
Function ShowNewsAdmin()
{
global $NewsFiles, $AdminFile;
echo "<FORM METHOD=POST ACTION=$AdminFile>"; //$AdminFile - /*<form method="post" action="<?=$_SERVER['PHP_SELF']*/
for(reset($NewsFiles);$filename = key($NewsFiles);
next($NewsFiles))
{
ShowNewsContent($filename);
echo "<INPUT TYPE=SUBMIT NAME=DeleteButton VALUE=\"Delete ".$filename."\">";
echo "<P>";
}
echo "<BR>
뉴스 제목 :<BR>
<INPUT type=text NAME=title size=40><BR>
뉴스 내용 :<BR>
<TEXTAREA NAME=message ROWS=8 COLS=60></TEXTAREA><BR>
<INPUT type=SUBMIT NAME=SubmitButton VALUE=Submit>
</FORM>
";
}
//새로운 뉴스를 등록해 준다.
function CreateNewsEntry($title,$message)
{
global $NewsDir, $Extension;
$fp=fopen($NewsDir.time().$Extension,"w");
fwrite($fp,$title."\n".$message);
fclose($fp);
SortNewsFiles(); //사용자 함수 호출
}
//특정 뉴스를 지워 버린다.
function DeleteNews($fn)
{
global $NewsDir;
unlink($NewsDir.$fn);
SortNewsFiles();
}
if($SubmitButton=="Submit"){
CreateNewsEntry($title,$message);
}
elseif($DeleteButton !=""){
$tok = strtok($DeleteButton," ");
$fn=strtok(" ");
DeleteNews($fn);
}
SortNewsFiles();
ShowNewsAdmin();
?>
답변 2
일단 눈에 들어오는 오류는..
함수 예약어를 대문자로 작성하셨네요
소문자로 변경해보셔요~!
Function -> function
function ShowNewsAdmin() //Function ShowNewsAdmin() 소문자로 입력하셔야합니다.
디렉터리에 쓰기 권한이 있는지 확인해보세요.
답변을 작성하시기 전에 로그인 해주세요.