input 질문드려요
본문
echo '<div style="">';
echo '<form>';
echo '<input type="hidden" name="bo_table" value=" 특수문자 "/>';
여기에 특수문자가 외계어로 출력되는데, 정상출력되려면 어떻게 해야 할까요?
답변 5
위의 내용을 그대로 복사해서 메모장에 붙여넣고,
문자셋을 UTF-8 로 정하고 위의 파일명으로 저장해도 이상 없이 돌아갑니다.
<?php --- ?> php 부분은 그냥 사용하는 윈도우 환경이 아닌, 서버 환경만에서 작동합니다.
비주얼 스튜디오코드에 php.exe 를 따로 설치하고, 설정해 주지 않았다면 제대로 되지 않을 겁니다.
홈피 문자셋과 작업중인 파일의 문자셋이 같은지 확인해 보세요.
한글.."특수문자"가 value 값이 아닌 실제의 특수문자였군요..^^
해당 스크립트 부분(폼값 확인하는 부분)에
form.bo_table.value = encodeURIComponent(form.bo_table.value);
이렇게 넣어 보세요.
스크립트 부분이 없이 그냥 넘기는 것이라면
form 값을 받는 파일 맨위에
<?php
htmlspecialchars($bo_table);
?>
을 넣어 보식구요..
테스트 해보세요..
==========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
을 주소창에 넣어 보세요
이런 화면이 나옵니다.
입력칸에 특수 문자를 입력하고 값 전송하기를 클릭해 보시면, 특수문자가 모두 제대로 나올겁니다.
님의 경우, inputexe.html 만을 주소창에서 불러 왔거나,
입력칸에 아무런 내용을 넣지 않고 "값전송하기"를 클릭한 것 같네요.
님이 입력하고자 하는 내용을 넣었습니다.
값전송하기를 클릭하면,
입력값이 정확히 출력됩니다.
입력값이 정확히 출력된다면, 적용방법은
입력 페이지는 손댈 것이 없고,
입력값을 받는 php 파일을 열어
<?php
바로 아래,
$저장될이름 = htmlspecialchars($입력창이름);
이렇게 넣어주면 됩니다.