php5.3에서 php 7.0으로 바꾸면서
외부이미지 저장하는 소스가 안먹히는것 같아서 보니깐
$sql = "update ".$write_table." set wr_content = '".mysql_real_escape_string(trim($img_content))."' where wr_id = '".$wr_id."'";
sql_query($sql);
요 부분이 문제인것 같아서
mysql_real_escape_string 대신에 mysqli_real_escape_string를 했더니
에러는 없는데
안에 내용을 쓰고 글 등록을 했는대도 게시글이 없는것 처럼
나오더라구요..
어떻게 고쳐야될까요?
풀 소스입니다.
Copy
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); } }
답변 1개 / 댓글 1개
채택된 답변
+20 포인트
2017-03-08 (수) 10:12:26
mysqli_real_escape_string에는 DB링크가 필요합니다.
mysql_real_escape_string($g5['connect_db'], trim($img_content))
로 소스를 바꾸어보세요.
답변에 대한 댓글 1개
2017-03-08 (수) 10:38:32
답변을 작성하려면 로그인이 필요합니다.
이케 하니깐 되네요 ㅎㅎ