테스트 사이트 - 개발 중인 베타 버전입니다

php7관련 질문 채택완료

초초동 8년 전 조회 5,280

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를 했더니 

에러는 없는데 

안에 내용을 쓰고 글 등록을 했는대도 게시글이 없는것 처럼 

나오더라구요..

 

어떻게 고쳐야될까요?

 

풀 소스입니다.

</p><p>function save_remote_image($url, $save_path)</p><p>{</p><p>    $ch = curl_init ($url);</p><p>    curl_setopt($ch, CURLOPT_HEADER, 0);</p><p>    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);</p><p>    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);</p><p>    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);</p><p>    $data=curl_exec($ch);</p><p>    curl_close ($ch);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", basename($url));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>shuffle($chars_array);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$shuffle = implode("", $chars_array);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$change_filename = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename))); </p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$out_path = $save_path.$change_filename;</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p>    if(file_exists($out_path)) @unlink($out_path);</p><p>    $fp = fopen($out_path,'x');</p><p>    fwrite($fp, $data);</p><p>    fclose($fp);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p><span class="Apple-tab-span" style="white-space:pre">	</span>return $change_filename;</p><p>}</p><p> </p><p> </p><p> </p><p>if ($w == '' || $w == 'r'){</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$data_dir = G5_DATA_PATH.'/file/'.$bo_table.'/';</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$data_url = G5_DATA_URL.'/file/'.$bo_table.'/';</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$img_content = str_replace(">", ">", str_replace("<", "<", stripslashes($_POST[wr_content])));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$patten = "/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i";</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>preg_match_all($patten, $img_content, $match); </p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p><span class="Apple-tab-span" style="white-space:pre">	</span>if ($match[1]) {</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>foreach ($match[1] as $link) {</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$url = parse_url($link);</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>if ($url[host] && $url[host] != $_SERVER[HTTP_HOST]) {</p><p><span class="Apple-tab-span" style="white-space:pre">				</span>$img_content = str_replace($link, ($data_url.save_remote_image($link, $data_dir)), $img_content);</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">		</span></p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$sql = "update ".$write_table." set wr_content = '".mysql_real_escape_string(trim($img_content))."' where wr_id = '".$wr_id."'";</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>sql_query($sql);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">	</span></p><p>}</p><p>

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
8년 전

mysqli_real_escape_string에는 DB링크가 필요합니다. 

 

mysql_real_escape_string($g5['connect_db'], trim($img_content)) 

로 소스를 바꾸어보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

초초동
8년 전
$sql = "update ".$write_table." set wr_content = '".mysqli_real_escape_string($g5['connect_db'], trim($img_content))."' where wr_id = '".$wr_id."'";

이케 하니깐 되네요 ㅎㅎ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인