답변 3개 / 댓글 6개
채택된 답변
+20 포인트
write_update.php 파일에서 echo 찍어가시면서 확인해 보세요.
일단은 게시물은 등록이 되신다니 insert 쿼리 이후에 찍어보시면 되겠네요.
답변에 대한 댓글 4개
일단은 균이님 말씀처럼 사용하시는 스킨디렉에서 사용자코드가 작성되어 있는
아래 3파일을 백업해두시고 지우세요.
write_update.head.skin.php
write_update.skin.php
write_update.tail.skin.php
지운후 문제가 없으시면 위 3파일내의 코드가 문제입니다.
한파일씩 다시 적용해보시고 문제가 되는 파일에서 매 구문마다
echo 1;exit;
찍으셔서 1이 출력되는지를 확인해보세요. 1이 출력되지 않고 페이지출력이 끝난다면 그 이전 구문에서 문제가 발생한거지요.
가장 원초적인 디버깅 방법입니다.
아래 3파일을 백업해두시고 지우세요.
write_update.head.skin.php
write_update.skin.php
write_update.tail.skin.php
지운후 문제가 없으시면 위 3파일내의 코드가 문제입니다.
한파일씩 다시 적용해보시고 문제가 되는 파일에서 매 구문마다
echo 1;exit;
찍으셔서 1이 출력되는지를 확인해보세요. 1이 출력되지 않고 페이지출력이 끝난다면 그 이전 구문에서 문제가 발생한거지요.
가장 원초적인 디버깅 방법입니다.
확인해보니 1이 출력되는 구문이 하나도 없네요,
외부이지미서버저장 팁 에서write_update.skin.php 파일 사용하는건데 그렇네요..
[code]
<?php
//ver1.0 150410 @_untitle_d
function save_remote_image($url, $save_path)
{
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data=curl_exec($ch);
curl_close ($ch);
$chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));
$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", basename($url));
shuffle($chars_array);
$shuffle = implode("", $chars_array);
$change_filename = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename)));
$out_path = $save_path.$change_filename;
if(file_exists($out_path)) @unlink($out_path);
$fp = fopen($out_path,'x');
fwrite($fp, $data);
fclose($fp);
return $change_filename;
}
if ($w == '' || $w == 'r'){
$data_dir = G5_DATA_PATH.'/file/'.$bo_table.'/';
$data_url = G5_DATA_URL.'/file/'.$bo_table.'/';
$img_content = str_replace(">", ">", str_replace("<", "<", stripslashes($_POST[wr_content])));
$patten = "/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i";
preg_match_all($patten, $img_content, $match);
if ($match[1]) {
foreach ($match[1] as $link) {
$url = parse_url($link);
if ($url[host] && $url[host] != $_SERVER[HTTP_HOST]) {
$img_content = str_replace($link, ($data_url.save_remote_image($link, $data_dir)), $img_content);
}
}
$sql = "update ".$write_table." set wr_content = '".mysql_real_escape_string(trim($img_content))."' where wr_id = '".$wr_id."'";
sql_query($sql);
}
}
?>
[/code]
위 파일입니다.
외부이지미서버저장 팁 에서write_update.skin.php 파일 사용하는건데 그렇네요..
[code]
<?php
//ver1.0 150410 @_untitle_d
function save_remote_image($url, $save_path)
{
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data=curl_exec($ch);
curl_close ($ch);
$chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));
$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", basename($url));
shuffle($chars_array);
$shuffle = implode("", $chars_array);
$change_filename = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename)));
$out_path = $save_path.$change_filename;
if(file_exists($out_path)) @unlink($out_path);
$fp = fopen($out_path,'x');
fwrite($fp, $data);
fclose($fp);
return $change_filename;
}
if ($w == '' || $w == 'r'){
$data_dir = G5_DATA_PATH.'/file/'.$bo_table.'/';
$data_url = G5_DATA_URL.'/file/'.$bo_table.'/';
$img_content = str_replace(">", ">", str_replace("<", "<", stripslashes($_POST[wr_content])));
$patten = "/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i";
preg_match_all($patten, $img_content, $match);
if ($match[1]) {
foreach ($match[1] as $link) {
$url = parse_url($link);
if ($url[host] && $url[host] != $_SERVER[HTTP_HOST]) {
$img_content = str_replace($link, ($data_url.save_remote_image($link, $data_dir)), $img_content);
}
}
$sql = "update ".$write_table." set wr_content = '".mysql_real_escape_string(trim($img_content))."' where wr_id = '".$wr_id."'";
sql_query($sql);
}
}
?>
[/code]
위 파일입니다.
스킨폴더/write_update.skin.php <--- 이 화일이 존재하면 다른 이름으로 바꾸고 해보세요
문제가 발생하지않는다면 위 화일내의 코드가 문제입니다
아마도 외부이미지 서버저장 <-- 이 코드가 위 화일에 들어잇을 것 같군요
write_update.skin.php 상단에 아래코드 입력해 보면 에러 메세지가 출력될겁니다.
error_reporting(E_ALL);
ini_set("display_errors", 1);
에러메세지 보고 수정하면 될겁니다.
답변을 작성하려면 로그인이 필요합니다.