묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php 프로그래밍인데요.. 해석부탁드립니다..
2004.05.19 11:16
php 를 공부해 보려고 하니 막히는 부분이 한두가지가 아니네요.
조금 많습니다. 총 10가지 인데요..
이 글 읽어보시구 아시는 부분이래도 대답 꼭.. 부탁드립니다.
①
for ($i=0; $i < 5; $i++)
{
srand((double)microtime()*1000000);
$arr[$i] = rand(1, strlen($allchars));
$msg.=substr($allchars, $arr[$i]-1, 1). " ";
}
②
srand((double)microtime()*1000000);
$arr[0] = rand(1, 5);
$encoded_count = base64_encode($arr[0].$arr[1].$arr[2];
③
$color[0] = imagecolorallocate($im, 255, 255, 255);
$color[1] = imagecolorallocate($im, 0, 168, 255);
④
exec( "top b -n 1 > info.txt");
$fp = fopen("info.txt", "r");
⑤
function exec_thumbnail($defaultpath, $file_name, $max_width, $max_height)
exec( "djpeg -pnm ./upImg/$file_name > ./upThumb/temp_$file_name");
exec( "pnmscale -xy $resizeX $resizeY ./upThumb/temp_$file_name | cjpeg -progressive -optimize -smooth 5 -outfile ./upThumb/$file_name");
unlink("./upThumb/temp_$file_name");
⑥
$page = (!$page) ? 1 : $page;
$startseq = ($page-1) * $pagesize;
$query = "SELECT COUNT(id) FROM gallery";
$rs = mysql_query($query,$connect);
$totalpages = ceil(mysql_result($rs,0,0)/$pagesize);
$prevpage = ($page == 1) ? 1 : ($page-1);
$nextpage = ($page == $totalpages) ? $totalpages : $page + 1;
⑦
$query = "SELECT id,comment FROM gallery_comment WHERE aid='$row[id]' ORDER BY id ASC";
⑧
$spageseq = ((ceil(($page/10) - 0.01) - 1) * 10) + 1;
$epageseq = $spageseq + 9;
$epageseq = ($epageseq > $totalpages) ? $totalpages : $epageseq;
$ppageseq = $spageseq - 10;
$npageseq = $spageseq + 10;
⑨
$writer = htmlspecialchars(addslashes($writer));
$contents = htmlspecialchars(addslashes($contents));
if (!$file or $HTTP_SERVER_VARS["REQUEST_METHOD"] != 'POST')
⑩
$nowcount = 0;
$addcount = "";
$originalname = str_replace(" ","_",$file_name);
$defaultpath = "./upImg/";
while(1)
{
$file_name = $addcount . $originalname;
if (!file_exists($defaultpath.$file_name)) break;
if ($nowcount) $nowcount++; else $nowcount = 2;
$addcount = $nowcount . "_";
}
$query = "INSERT INTO gallery VALUES (NULL,'+ '+ '$file_name','$writer',now(),'$contents','$pwd')";
조금 많습니다. 총 10가지 인데요..
이 글 읽어보시구 아시는 부분이래도 대답 꼭.. 부탁드립니다.
①
for ($i=0; $i < 5; $i++)
{
srand((double)microtime()*1000000);
$arr[$i] = rand(1, strlen($allchars));
$msg.=substr($allchars, $arr[$i]-1, 1). " ";
}
②
srand((double)microtime()*1000000);
$arr[0] = rand(1, 5);
$encoded_count = base64_encode($arr[0].$arr[1].$arr[2];
③
$color[0] = imagecolorallocate($im, 255, 255, 255);
$color[1] = imagecolorallocate($im, 0, 168, 255);
④
exec( "top b -n 1 > info.txt");
$fp = fopen("info.txt", "r");
⑤
function exec_thumbnail($defaultpath, $file_name, $max_width, $max_height)
exec( "djpeg -pnm ./upImg/$file_name > ./upThumb/temp_$file_name");
exec( "pnmscale -xy $resizeX $resizeY ./upThumb/temp_$file_name | cjpeg -progressive -optimize -smooth 5 -outfile ./upThumb/$file_name");
unlink("./upThumb/temp_$file_name");
⑥
$page = (!$page) ? 1 : $page;
$startseq = ($page-1) * $pagesize;
$query = "SELECT COUNT(id) FROM gallery";
$rs = mysql_query($query,$connect);
$totalpages = ceil(mysql_result($rs,0,0)/$pagesize);
$prevpage = ($page == 1) ? 1 : ($page-1);
$nextpage = ($page == $totalpages) ? $totalpages : $page + 1;
⑦
$query = "SELECT id,comment FROM gallery_comment WHERE aid='$row[id]' ORDER BY id ASC";
⑧
$spageseq = ((ceil(($page/10) - 0.01) - 1) * 10) + 1;
$epageseq = $spageseq + 9;
$epageseq = ($epageseq > $totalpages) ? $totalpages : $epageseq;
$ppageseq = $spageseq - 10;
$npageseq = $spageseq + 10;
⑨
$writer = htmlspecialchars(addslashes($writer));
$contents = htmlspecialchars(addslashes($contents));
if (!$file or $HTTP_SERVER_VARS["REQUEST_METHOD"] != 'POST')
⑩
$nowcount = 0;
$addcount = "";
$originalname = str_replace(" ","_",$file_name);
$defaultpath = "./upImg/";
while(1)
{
$file_name = $addcount . $originalname;
if (!file_exists($defaultpath.$file_name)) break;
if ($nowcount) $nowcount++; else $nowcount = 2;
$addcount = $nowcount . "_";
}
$query = "INSERT INTO gallery VALUES (NULL,'+ '+ '$file_name','$writer',now(),'$contents','$pwd')";
1번째것은 랜덤한 문자 5개를 한칸씩 띄어서 출력하도록 한 소스고
2번째는 랜덤한 수를 추출해서 base64 인코딩 방식으로 인코딩을 하는 소스군요.
이런 방식으로 처리하면 결과 문자가 뭔가 암호화 된것 같은 문자 같아서 암호로 사용하는 경우가 많죠.
하지만 쉽게 복호화 할 수 있어서 그 또한 해결사항이죠.
3번째는 완전한 소스가 아니군요. obst.new21.net 이나 php.net 가셔서 검색을 해보시면 알지만 image관련 함수중에서 사용할 색상을 지정하는 함수입니다.
4번째는 이것은 linux계열의 작업관리자 같은 top이란 프로그램의 상태를 출력해서 cpu와 실행되는 프로세스 상태를 보려는 소스이고,
5번째는 외부의 프로그램을 실행시켜서 이미지를 변환시키는 사용자 정의 함수입니다.
6번째는 DB의 data를 가지고 page 처리를 하는 부분이네요.
7번째는 gallery_comment 라는 테이블에서 aid 가 어떤값일때 id에 의해 정렬해서 결과를 가져오라는 쿼리문이고요.
8번째도 페이징 처리부분중 하나 같군요.
9번째는 데이터를 처리하는 부분이군요. Form으로부터 method가 post로 안넘어왔거나, file 값이 없거나 하면 처리를 안합니다.
10번째는 파일 업로드 처리나 그런부분에서 이미 올라와 있는 파일과 중복되지 않도록, 파일명이 공백이 없도록 처리하는 부분이죠.