通过发布后传递表单数据

时间:2013-07-15 18:20:51

标签: php html

任何人都可以看到一个问题,阻止此代码不会将'id1'文本框发布到'updateUser.php'页面吗?我一直坐在她身上盯着这个30分钟而且不能为我的生活弄清楚出了什么问题,对于故障排除,我让它在另一边回响而且$ newUser和$ username有正确的数据但$ id永远不会填写,即使我在表格中输入了一个字符串。

<table>
<form method="post" action="updateUser.php">
<tr>
<td></td><td align="right"><input type="text" id="id1"  value="<?php echo "$id" ; ?     >" ></input></td>
</tr>
<tr>
<td align="right">Enter your current password:</td><td align="right"><input type="text" id="user1"></td>
</tr>
</br>
<tr>
<td align="right">Enter your new username:</td><td align="right"><input type="text" id="user2"></td>
</tr>
<tr>
<td></td><td><input type="submit" value="Change"></input></td>
</form>
</tr>

这是相关的updateUser.php:

 $id = $_GET['id1'];
 $password = $_GET['user1'];
 $newUser = $_GET['user2'];
 $username = $_SESSION['username'];

1 个答案:

答案 0 :(得分:2)

您在此处的表单存在一些问题。

从中获取数据所需的任何输入都应具有name=属性。

关闭一段PHP代码应该看起来像?>

观察以下代码中<input>元素的关闭方式。

一些HTML结构问题:我认为<form>应该包围<table>,如果表行之间需要空格,则应该使用样式而不是<br />来完成

以下是已清理的代码:

<form method="post" action="updateUser.php">
    <table>
        <tr>
            <td></td>
            <td align="right"><input type="text" id="id1" name="id1" value="<?php echo htmlentities("$id", ENT_QUOTES); ?>" /></td>
        </tr>
        <tr>
            <td align="right">Enter your current password:</td>
            <td align="right"><input type="text" id="user1" name="user1" /></td>
        </tr>
        <tr>
            <td align="right">Enter your new username:</td>
            <td align="right"><input type="text" id="user2" name="user2" /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Change" /></td>
        </tr>
    </table>
</form>

另请注意,htmlentities()调用,以防$id有奇怪的字符,或者不是整数。可能没有必要,但只是确定。

使用method ='post',您获取这些变量的代码如下:

$id = $_POST['id1'];
$password = $_POST['user1'];
$newUser = $_POST['user2'];