링크주소 표기시 암호화 하려면... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

링크주소 표기시 암호화 하려면... 정보

링크주소 표기시 암호화 하려면...

본문

<?=$list[$i][wr_link1]?> 와 같은 방식으로 링크된 곳의 주소를 표기하여
사용하고자 합니다.
여기서 링크된 주소가 보이기는 하되.. 아래와 같은 소스를 이용해서
단순히 주소위치만 노출되지 않게 하고 간단히 암호화 해서
표시되게 하고자 하는데요.. (또는 단순한 다른방법 ^^)
어떤식으로 해야하는지 .. 고수님들 도움부탁드립니다..
 
출처 : phpschool
/*

인코딩/디코딩 함수
이 함수는 get으로 값을 넘길때 사용함
(base64 -> urlencode)

$str       : 코딩할 문자열
$mode       : e = 인코딩 d = 디코딩

*/
function enc($str,$mode)
{
       if($mode=="e")
       {
       $str=base64_encode($str);
       $str=urlencode($str);
       }
       if($mode=="d")
       {
       $str=urldecode($str);
       $str=base64_decode($str);
       }

return $str;
}

인코딩일 경우에는 base64 -> urlencode으로 문자열을 변환 하며...
디코딩을 경우에는 역순으로 변환 합니다.

아직까지 멀티라인이나 한글, 특수문자의 처리에 있어서 그다지 특별한 문제점은
없는것 같네요

^^유용하게 쓰시길...

예)
<?
$str="test";

$str=enc($str,e);
echo $str;

echo "<br>";

$str=enc($str,d);
echo $str;
?>

결과)
dGVzdA%3D%3D
test
  • 복사

댓글 전체

//엔코더/디코더 평션처리
function enc($str,$mode)
{
      if($mode=="e")
      {
      $str=base64_encode($str);
      $str=urlencode($str);
      }
      if($mode=="d")
      {
      $str=urldecode($str);
      $str=base64_decode($str);
      }

return $str;
}


//<?=$list[$i][wr_link1]?> 출력시암호화

$str=$list[$i][wr_link1];

$str=enc($str,e);
//echo $str;

<?=$str?>

결과값
 http://avaschool.net/web/sub_data/Li4vc3ViX2RhdGEvYm9hcmQucGhwP2JvX3RhYmxlPXRlc3RfYm9hcmRfdGVzdDM=

직접 링크값을 엔코더 시킨후 테스트 해보니 게시판에서 넘어온 링크값을 인식을 못하며 사용할수가 없습니다.
아래 소는는 가능한지요 고수님들 부탁드립니다.
예제좀 부탁드립니다.

$url = "naver.com";
$encoded_url = "";

for ($i = 0; $i < strlen($url); $i++)
  $encoded_url = sprintf("%%%02x", ord($url{$i}));
http://www.morssola.co.kr/data/bbs/tb.php/gtest/334

단순히 보이는 것만 암호화 하려면~~

클릭하면 다 나오지만 ㅡㅡㅋ






$cnt = 0;
for ($i=1; $i<=$g4[link_count]; $i++) {
    if ($view[link][$i]) {
        $cnt++;
        $link = cut_str($view[link][$i], 70);
$code = sql_password($link);
        echo "<a href='{$view[link_href][$i]}' target='_blank'>{$code}";
    }
}
© SIRSOFT
현재 페이지 제일 처음으로