input 질문드려요

input 질문드려요

QA

input 질문드려요

본문

echo '<div style="">';

echo '<form>';

echo '<input type="hidden" name="bo_table" value=" 특수문자 "/>';

 

여기에 특수문자가 외계어로 출력되는데, 정상출력되려면 어떻게 해야 할까요?

이 질문에 댓글 쓰기 :

답변 5

위의 내용을 그대로 복사해서 메모장에 붙여넣고,

문자셋을 UTF-8 로 정하고 위의 파일명으로 저장해도 이상 없이 돌아갑니다. 

 

<?php --- ?> php 부분은 그냥 사용하는 윈도우 환경이 아닌, 서버 환경만에서 작동합니다.

 

비주얼 스튜디오코드에 php.exe 를 따로 설치하고, 설정해 주지 않았다면 제대로 되지 않을 겁니다.

 

 

말씀주신대로 메모장으로 html 파일 만들어서 서버 메인에 올렸는데
역시나 출력은 </td 이렇게 나옵니다;;

그리고 한가지 더 이 코드가 정상작용해도 어떻게 적용해야 할지 감이 안오네요 ㅠ
그래도 성심성의껏 답변주셔서 감사한 마음에 채택드리겠습니다!

홈피 문자셋과 작업중인 파일의 문자셋이 같은지 확인해 보세요.

 

답변 감사드립니다
다른 일반 문자는 정상 출력되고 '%' 나 '=' 등의 특수문자만 '+%26', '%3D' 이런 식으로 출력되는데
이것도 문자셋 문제인지요?

그리고 혹시 encodeURIComponent 함수를 어떻게 이용해서 될 수는 없을까요? 사용방법 자체를 잘 몰라서.. 혹시 도움주신다면 정말 감사드리겠습니다!

한글.."특수문자"가 value 값이 아닌 실제의 특수문자였군요..^^

 

해당 스크립트 부분(폼값 확인하는 부분)에 

 

form.bo_table.value = encodeURIComponent(form.bo_table.value);
이렇게 넣어 보세요.

 

 

스크립트 부분이 없이 그냥 넘기는 것이라면 

form 값을 받는 파일 맨위에 

<?php

htmlspecialchars($bo_table);

?>

을 넣어 보식구요..

 

 

 

 

 

아, 감사합니다!
다만 htmlspecialchars($bo_table); 요거는 안먹는것같고요,

스크립트는 완전히 까막눈이라서 이 파일에서 폼값 확인하는 부분이 어딘지 잘 모르겠지만,
일단 먼저 검색 등 먼저 시도해보고 정 안되면 다시 질문 드리겠습니다!

상단에 멀티카테고리 플러그인 체크박스를 클릭할시에
조건에 따라 이동하는 페이지 url에 추가 문자열을 포함하고 싶은데

지금 질문에 value= 부분에 추가하는것까지는 했는데
특수문자가 인코딩되서 정상적인 url이 나오지가 않아서
encodeURIComponent 함수가 있다는 것 까지는 찾았는데 적용을 못하고 있는 상태입니다ㅠㅠ

입력하고 싶은 글자는 &list_type=ok

입니다~

테스트 해보세요..

 

==========input.html===============


<html lang="ko">
<head>
<meta charset="utf-8">
</head>
<body>
<form name=form method='post' action='inputexe.html'>
  <table>
  <tr>
    <td>특수문자만 넣어 보세요</td>
    <td><input type='text' name='title' value=''> </td>
  </tr>
  <tr>
    <td><input type='submit' value='값 전송하기'> </td>
  </tr>
  </table>
</form>
</body>
</html>

 

=================inputexe.html=============================


<html lang="ko">
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$title = stripslashes($title);
# input 에 값 보여주기 위해 변환을 한다.
$title2 = htmlspecialchars($title);
?>
<form>
<table>
<tr>
  <td>입력값 출력</td>
  <td><input type=text name=title value=<?=$title?> </td>
</tr>
<tr>
  <td>변환값 출력</td>
  <td><input type=text name=title value=<?=$title2?> </td>
</tr>
</table>
</form>
<a href='javascript:history.back();'>BACK</a>
</body>
</html>

 

 

각각의 내용을 해당 이름의 파일로 저장해서 서버에 올려 놓고 테스트 해보세요.

소울e님.. 

 

두개의 파일을 만드셨고, 이를 모두 서버에 올려 놓았다면,

(각각 input.html , inputexe.html 로 저장...했다면.)

http://사이트 주소/input.html 

을 주소창에 넣어 보세요

2049712671_1567883115.0863.jpg

 

이런 화면이 나옵니다.

입력칸에 특수 문자를 입력하고 값 전송하기를 클릭해 보시면, 특수문자가 모두 제대로 나올겁니다.

 

님의 경우, inputexe.html 만을 주소창에서 불러 왔거나,

입력칸에 아무런 내용을 넣지 않고 "값전송하기"를 클릭한 것 같네요.

 

 

님이 입력하고자 하는 내용을 넣었습니다.

2049712671_1567883590.4596.jpg

 

값전송하기를 클릭하면,

 

2049712671_1567883612.3986.jpg

입력값이 정확히 출력됩니다.

 

입력값이 정확히 출력된다면, 적용방법은

입력 페이지는 손댈 것이 없고,

 

입력값을 받는 php 파일을 열어

<?php

바로 아래,

$저장될이름 = htmlspecialchars($입력창이름);

이렇게 넣어주면 됩니다.

 

 

 

 

 

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 177
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT