0

任何人都可以看到阻止此代码不将“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'];
4

1 回答 1

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'];
于 2013-07-15T18:39:48.073 回答