2013-05-29 106 views
0

我试图使用PHP与XAMPP(Apache和MYSQL)做一个简单的注册表单。我目前有一个密码字段的问题,目前显示它的输入为明文,而不是隐藏它从视图。回显密码输入字段显示为文本

?php 
$regfields=array("remail"=>"Email","remail2"=>"Re-enter  Email","rusername"=>"Username","rpassword"=>"Password","rpassword2"=>"Re-enter Password","rbiz"=>"BizName","rdesc"=>"Desc"); 
?> 

<html> 
<body> 
<h3>Registration</h3> 
<form action="Login.php" name="RegisterForm" method="post" > 
<table border="0"> 

<?php 

if(isset($errormsg)) 
{ 
    echo"$errormsg"; 
} 

foreach($regfields as $field=>$value) 
{ 

    if($field!=="rdesc") 
    { 
     echo"<tr>"; 
     echo"<td>"; 
     echo"<label for='$field'>$value: </label>"; 
     echo"</td>"; 
     echo"<td>"; 
     echo"<input type='text' name='$field' size='40' maxlength='50' /> </td></tr>"; 

    } 
    else if($field=="remail"||$field=="remail2") 
    { 
     echo"<tr>"; 
     echo"<td>"; 
     echo"<label for='$field'>$value: </label>"; 
     echo"</td>"; 
     echo"<td>"; 
     echo"<input type='text' name='$field' size='40' maxlength='50' /></td></tr>"; 

    } 
    else if($field=="rpassword"||$field=="rpassword2") 
    { 
     echo"<tr>"; 
     echo"<td>"; 
     echo"<label for='$field'>$value: </label>"; 
     echo"</td>"; 
     echo"<td>"; 
     echo"<input type='password' name='$field' size='40' maxlength='50' /></td></tr>"; 

    } 
    else 
    { 
     echo"<tr>"; 
     echo"<td>"; 
     echo"<label for=$field>$value: </label>"; 
     echo"</td>"; 
     echo"<td>"; 
     echo"<input type='text' name='$field' size='300' maxlength='300' style='width:400px;height:100px; \n'/>"; 
     echo"</td>"; 
     echo"</tr>"; 
    } 
} 

?> 
</form> 
</table> 
<input type="submit" name="Button" value="Register" /> 
</body> 
</html> 

我怀疑此行

echo"<input type='password' name='$field' size='40' maxlength='50' /></td></tr>"; 

其中输入类型不是由于使用了单引号注册我的问题,茎,而不是双引号,导致输入型从字面上并没有解释被用作价值?

我将不胜感激任何输入。 谢谢!

+0

移除!纠正你的代码是这样被显示在输入为纯文本或提交后..? –

+0

您在表格和提交之前关闭表单标记在表单之外。这将如何工作? – Rahul11

+0

尝试使用'\“字符尝试转义此行'echo'

回答

2

哦~~看看这个

下面

代码一直处于执行状态,除非该字段为rdesc。因此,通过从if($field!=="rdesc")

if($field!=="rdesc") 
    { 
     echo"<tr>"; 
     echo"<td>"; 
     echo"<label for='$field'>$value: </label>"; 
     echo"</td>"; 
     echo"<td>"; 
     echo"<input type='text' name='$field' size='40' maxlength='50' /> </td></tr>"; 

    } 
+0

斑点 - +1 – allen213

+0

Arghhhh这是一个明显的错误!谢谢你的帮助 –

1

如果发现单引号和双引号混淆的使用,试试这个

<?php 
else if($field=="rpassword"||$field=="rpassword2") 
    {?> 

<tr> 
    <td> 
     <label for="<?php echo $field?>"><?php echo $value?>: </label> 
     </td> 
     <td> 
     <input type="password" name="<?php echo $field?>" size='40' maxlength='50' /></td></tr> 
<?php 
    }?> 

它不被视为一个良好的practie呼应HTMLPHP