글 작성 후 write_update.php 에서 멈춤현상이 일어납니다.
뒤로 가기를 눌러서 해당 게시판으로 가면
게시물은 정상적으로 등록이 되어 있구요~~~
갑자기 이러는데.. 왜그럴까요
참고로 갤러리 스킨 + 외부이미지 서버저장 사용하고 있습니다.
답변 3개 / 댓글 6개
채택된 답변
+20 포인트
2015-07-28 (화) 14:56:41
write_update.php 파일에서 echo 찍어가시면서 확인해 보세요.
일단은 게시물은 등록이 되신다니 insert 쿼리 이후에 찍어보시면 되겠네요.
답변에 대한 댓글 4개
2015-07-30 (목) 22:32:16
일단은 균이님 말씀처럼 사용하시는 스킨디렉에서 사용자코드가 작성되어 있는
아래 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이 출력되지 않고 페이지출력이 끝난다면 그 이전 구문에서 문제가 발생한거지요.
가장 원초적인 디버깅 방법입니다.
2015-08-02 (일) 14:48:52
확인해보니 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]
위 파일입니다.
2015-08-03 (월) 21:48:23
write_update.php 파일을 커스터마이징 하시지 않으셨다면 기본적으로 문제가 없을거구요.
제생각에는 해당 외부이미지저장하는 write_update.skin.php 부분에서 문제가 발생하실것으로 보이네요.
write_update.skin.php 를 복사하셔서 별도 바로 실행가능한 파일 만드셔서
$img_content 에 이미지주소가 포함 임의의 html 내용을 강제 할당하신후
테스트해보시는게 어떨까 싶네요.
제생각에는 해당 외부이미지저장하는 write_update.skin.php 부분에서 문제가 발생하실것으로 보이네요.
write_update.skin.php 를 복사하셔서 별도 바로 실행가능한 파일 만드셔서
$img_content 에 이미지주소가 포함 임의의 html 내용을 강제 할당하신후
테스트해보시는게 어떨까 싶네요.
2015-07-28 (화) 22:54:01
스킨폴더/write_update.skin.php <--- 이 화일이 존재하면 다른 이름으로 바꾸고 해보세요
문제가 발생하지않는다면 위 화일내의 코드가 문제입니다
아마도 외부이미지 서버저장 <-- 이 코드가 위 화일에 들어잇을 것 같군요
답변에 대한 댓글 1개
2015-07-29 (수) 08:38:15
네 맞습니다. 해당 파일이 존재하구요,
잘 되다가 갑자기 안되서요..
따로 그누 업데이트 한것도 없구요..
잘 되다가 갑자기 안되서요..
따로 그누 업데이트 한것도 없구요..
2015-07-28 (화) 15:36:11
write_update.skin.php 상단에 아래코드 입력해 보면 에러 메세지가 출력될겁니다.
error_reporting(E_ALL);
ini_set("display_errors", 1);
에러메세지 보고 수정하면 될겁니다.
답변에 대한 댓글 1개
2015-07-28 (화) 22:29:18
에러메세지는 출력되지 않구요
똑같이 그냥 빈화면만나오구 실질적으로는 글은 등록이 되고 있습니다.
똑같이 그냥 빈화면만나오구 실질적으로는 글은 등록이 되고 있습니다.
답변을 작성하려면 로그인이 필요합니다.