任何人都可以看到一个问题,阻止此代码不会将'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'];
答案 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'];