스크롤 최신글에서 제목에 큰따옴표 표시문제 정보
스크롤 최신글에서 제목에 큰따옴표 표시문제
본문
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=10127&sca=&sfl=wr_name%2C1&stx=%B9%D9%B4%D9&sop=and
한줄스크롤 최신글입니다.
그런데 게시판 제목에 큰따옴표(")가 들어가면 에러가 나고 제목이 표시가 안되네요.
자바스크립트를 잘몰라서...
어디를 수정하면 제대로 표현이 될까요?
<script language="javascript">
<!--
//Math.random()
var scrollerheight2=20; // 스크롤러의 세로
var html,total_area2=0,wait_flag2=true;
var bMouseOver2 = 1;
var scrollspeed2 = 1; // scrolling2 속도
var waitingtime2 = 4000; // 멈추는 시간
var s_tmp2 = 0, s_amount2 = 20;
var scroll_content2=new Array();
var startPanel2=0, n_panel2=0, r=0;
function startscroll2()
{ // 스크롤 시작
r=0;
for (r in scroll_content2)
n_panel2++;
n_panel2 = n_panel2 -1 ;
startPanel2 = Math.round(Math.random()*n_panel2);
if(startPanel2 == 0)
{
r=0;
for (r in scroll_content2)
insert_area2(total_area2, total_area2++);
}
else if(startPanel2 == n_panel2)
{
insert_area2(startPanel2, total_area2);
total_area2++;
for (r=0; r<startPanel2; r++)
{
insert_area2(r, total_area2);
total_area2++;
}
}
else if((startPanel2 > 0) || (startPanel2 < n_panel2))
{
insert_area2(startPanel2, total_area2);
total_area2++;
for (r=startPanel2+1; r<=n_panel2; r++)
{
insert_area2(r, total_area2);
total_area2++;
}
for (r=0; r<startPanel2; r++)
{
insert_area2(r, total_area2);
total_area2++;
}
}
window.setTimeout("scrolling2()",waitingtime2);
}
function scrolling2(){ // 실제로 스크롤 하는 부분
if (bMouseOver2 && wait_flag2)
{
for (r=0;r<total_area2;r++){
tmp = document.getElementById('scroll_area2'+r).style;
tmp.top = parseInt(tmp.top)-scrollspeed2;
if (parseInt(tmp.top) <= -scrollerheight2){
tmp.top = scrollerheight2*(total_area2-1);
}
if (s_tmp2++ > (s_amount2-1)*scroll_content2.length){
wait_flag2=false;
window.setTimeout("wait_flag2=true;s_tmp2=0;",waitingtime2);
}
}
}
window.setTimeout("scrolling2()",1);
}
function insert_area2(idx, n){
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight2*n)+'px" id="scroll_area2'+n+'">\n';
html+=scroll_content2[idx]+'\n';
html+='</div>\n';
document.write(html);
}
// 스크롤러에 들어갈 내용들을 태그와 함께 넣어 줍니다
<?
//$rows = "10"; // 자료가 숫자보다 작으면 안됩니다. - 숫자변경은 10이상 5의 배수로 하세요
$sql = " select *
from {$g4[write_prefix]}{$bo_table}
where wr_comment >= 0 and ca_name = '$sca'
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
$r = 0;$j = 0;
while($row = mysql_fetch_array($result)) {
$list[r] = $row;
$list[r][subject] = stripslashes(cut_str($row[wr_subject], 100)); //제목 글자수자르기
if($row[wr_datetime] >= date("Y-m-d H:i:s", time() - 24 * 3600)) {//새글표시---제목색상변경
$subject = "<b>{$list[r][subject]}</b>";
} else {
$subject = $list[r][subject]; //새글이 아닐경우 그냥 나타남
}
$date1 = substr($list[$r][datetime],0,10); //날짜표시형식변경
$date = explode("-", $date1);
$year = $date[0];
$month = $date[1];
$day = $date[2];
$latest_date = $month."월".$day."일";
if($r==0) {
echo "scroll_content2[".$j."]=\"";
}
//echo "<font color=#aaaaaa>[$latest_date]</font>";
echo "<a href='$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$row[wr_id]&sca=$sca'> {$subject}</a><br>";
$r++;
if($r==1) {
echo "\";\n\t";
$r = 0; $j++;
}
}
?>
//-->
</script>
<div style="position: absolute; width: 100%; height: 18px; overflow:hidden;" onMouseover="bMouseOver2=0" onMouseout="bMouseOver2=1" id="scroll_image2"><script>startscroll2();</script></div>
한줄스크롤 최신글입니다.
그런데 게시판 제목에 큰따옴표(")가 들어가면 에러가 나고 제목이 표시가 안되네요.
자바스크립트를 잘몰라서...
어디를 수정하면 제대로 표현이 될까요?
<script language="javascript">
<!--
//Math.random()
var scrollerheight2=20; // 스크롤러의 세로
var html,total_area2=0,wait_flag2=true;
var bMouseOver2 = 1;
var scrollspeed2 = 1; // scrolling2 속도
var waitingtime2 = 4000; // 멈추는 시간
var s_tmp2 = 0, s_amount2 = 20;
var scroll_content2=new Array();
var startPanel2=0, n_panel2=0, r=0;
function startscroll2()
{ // 스크롤 시작
r=0;
for (r in scroll_content2)
n_panel2++;
n_panel2 = n_panel2 -1 ;
startPanel2 = Math.round(Math.random()*n_panel2);
if(startPanel2 == 0)
{
r=0;
for (r in scroll_content2)
insert_area2(total_area2, total_area2++);
}
else if(startPanel2 == n_panel2)
{
insert_area2(startPanel2, total_area2);
total_area2++;
for (r=0; r<startPanel2; r++)
{
insert_area2(r, total_area2);
total_area2++;
}
}
else if((startPanel2 > 0) || (startPanel2 < n_panel2))
{
insert_area2(startPanel2, total_area2);
total_area2++;
for (r=startPanel2+1; r<=n_panel2; r++)
{
insert_area2(r, total_area2);
total_area2++;
}
for (r=0; r<startPanel2; r++)
{
insert_area2(r, total_area2);
total_area2++;
}
}
window.setTimeout("scrolling2()",waitingtime2);
}
function scrolling2(){ // 실제로 스크롤 하는 부분
if (bMouseOver2 && wait_flag2)
{
for (r=0;r<total_area2;r++){
tmp = document.getElementById('scroll_area2'+r).style;
tmp.top = parseInt(tmp.top)-scrollspeed2;
if (parseInt(tmp.top) <= -scrollerheight2){
tmp.top = scrollerheight2*(total_area2-1);
}
if (s_tmp2++ > (s_amount2-1)*scroll_content2.length){
wait_flag2=false;
window.setTimeout("wait_flag2=true;s_tmp2=0;",waitingtime2);
}
}
}
window.setTimeout("scrolling2()",1);
}
function insert_area2(idx, n){
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight2*n)+'px" id="scroll_area2'+n+'">\n';
html+=scroll_content2[idx]+'\n';
html+='</div>\n';
document.write(html);
}
// 스크롤러에 들어갈 내용들을 태그와 함께 넣어 줍니다
<?
//$rows = "10"; // 자료가 숫자보다 작으면 안됩니다. - 숫자변경은 10이상 5의 배수로 하세요
$sql = " select *
from {$g4[write_prefix]}{$bo_table}
where wr_comment >= 0 and ca_name = '$sca'
order by wr_id desc limit 0, $rows ";
$result = sql_query($sql);
$r = 0;$j = 0;
while($row = mysql_fetch_array($result)) {
$list[r] = $row;
$list[r][subject] = stripslashes(cut_str($row[wr_subject], 100)); //제목 글자수자르기
if($row[wr_datetime] >= date("Y-m-d H:i:s", time() - 24 * 3600)) {//새글표시---제목색상변경
$subject = "<b>{$list[r][subject]}</b>";
} else {
$subject = $list[r][subject]; //새글이 아닐경우 그냥 나타남
}
$date1 = substr($list[$r][datetime],0,10); //날짜표시형식변경
$date = explode("-", $date1);
$year = $date[0];
$month = $date[1];
$day = $date[2];
$latest_date = $month."월".$day."일";
if($r==0) {
echo "scroll_content2[".$j."]=\"";
}
//echo "<font color=#aaaaaa>[$latest_date]</font>";
echo "<a href='$g4[bbs_path]/board.php?bo_table=$board[bo_table]&wr_id=$row[wr_id]&sca=$sca'> {$subject}</a><br>";
$r++;
if($r==1) {
echo "\";\n\t";
$r = 0; $j++;
}
}
?>
//-->
</script>
<div style="position: absolute; width: 100%; height: 18px; overflow:hidden;" onMouseover="bMouseOver2=0" onMouseout="bMouseOver2=1" id="scroll_image2"><script>startscroll2();</script></div>
댓글 전체
$list[r][subject] = stripslashes(cut_str($row[wr_subject], 100)); //제목 글자수자르기
다음 줄에 아래와 같이 넣으세요
$list[r][subject]= htmlspecialchars($list[r][subject]);
다음 줄에 아래와 같이 넣으세요
$list[r][subject]= htmlspecialchars($list[r][subject]);
균이님! 감사해요~ 잘되네요^^*