2011-04-27 5 views
0

그래서이 양식을 가지고 :Textfield에서 값을 파싱하는 데 문제가 있습니까?

<form action="welcome.php" method="post"> 
<input type="hidden" name="secret" value=<?php echo getMyValue() ?> /> 
Name: <input type="text" name="txt" value=<?php echo getMyValue() ?> /> 
<input type="submit" /> 
</form> 

당신은 텍스트 입력 요소를 참조하십시오? 값은 getMyValue()의 결과입니다. 이러한 결과는 <b> <i> 등의 HTML 태그가 포함 된 선입니다. 그리고 분명히 텍스트에 이러한 태그가 포함되어 있으면 텍스트 입력이 중단됩니다. 텍스트에 이러한 태그가 없으면 모든 것이 정상입니다.

이 구문 분석 문제를 해결할만한 아이디어가 있습니까? (실제로


EDIT 함수의 코드는 다음과 같습니다.

function getMyValue() 
{ 
$con = mysql_connect("myConnectionDataStuff"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("myUsername", $con); 

$result = mysql_query("SELECT * FROM DATA"); 

while($row = mysql_fetch_array($result)) 
    { 
    return $row["TEXT"]; 
    } 

mysql_close($con); 

답변

3

귀하의 가치는 따옴표로 묶어야합니다. 따옴표로 묶으면 모든 것을 올바르게 입력하지만 태그는 구문 분석되지 않습니다. 그들은 텍스트 필드에서 단순히 "있는 그대로"있을 것입니다.

사용하는 대신 코드 :

<form action="welcome.php" method="post"> 
    <input type="hidden" name="secret" value="<?php echo getMyValue() ?>" /> 
    Name: <input type="text" name="txt" value="<?php echo getMyValue() ?>" /> 
    <input type="submit" /> 
</form> 
+0

값이 HELLO WORLD 내 텍스트 필드는 HELLO 표시하는 경우 ... – Voldemort

+0

당신이 getMyValue() 무엇을 반환 정확히보고 확인해 봤어? 해당 함수의 소스를 게시하거나 태그의 * 정확한 * 출력, HTML 태그 등을 게시하십시오. – BraedenP

+0

좋아요, 코드를 게시했습니다. – Voldemort

3

당신이 htmlspecialchars()

Name: <input type="text" name="txt" 
value="<?php echo htmlspecialchars(getMyValue(),ENT_QUOTES) ?>" /> 

것은 알고 있어야 사용할 수 있습니다


여기에 편집 는 함수의 코드 (실제로 문제를 분석하는 경우 몰라 ...) getMyValue() 함수가 작은 따옴표 나 큰 따옴표를 반환하면 입력 텍스트가 깨집니다.

관련 문제