我开始了解网络开发。我面临一个小问题,如下所示:未定义的索引:用户名
我知道这是因为我正在使用GET,但实际的PHP脚本工作并且更改了对MS的更改 - 这很好。不正确的是向用户显示此错误的事实:未定义的索引:用户名
这是我的代码:
<!doctype html>
<form id='register' action='changeticket.php' method='POST'>
<input type="hidden" name="username" value="<?php echo $_GET['username']; ?>" >
<fieldset >
<legend>Change ticket</legend>
<label for='ticket' >Proposed ticket request number: </label>
<input type='text' name='ticketValue' id='tickets' />
<input type='submit' name='Submit' value='Submit' />
</fieldset>
</form>
<?php
require "init.php";
if(!empty($_POST['ticketValue']) && !empty($_POST['username'])){
$ticketValue = $_POST['ticketValue'];
$stmt = "UPDATE ticketTable SET ticket = ? WHERE username = ?";
$result = $dbcon->prepare($stmt);
$result->bind_param('ss', $ticketValue, $username);
$result->execute();
echo "Ticket has been changed";
}
else{
echo "Not able to make changes sorry";
}
?>
点击提交后,我不想在网址中显示参数,所以我使用的是POST。就像我说它有效,但错误未定义索引:用户名正在显示。
我该如何解决这个问题?
感谢你
答案 0 :(得分:3)
一种选择是使用$ _REQUEST而不是$ _GET。 $ _REQUEST有两个变量($ _GET和$ _POST)
答案 1 :(得分:0)
您忘记初始化$ username ..
<!doctype html>
<form id='register' action='changeticket.php' method='POST'>
<input type="hidden" name="username" value="<?php echo $_GET['username']; ?>" >
<fieldset >
<legend>Change ticket</legend>
<label for='ticket' >Proposed ticket request number: </label>
<input type='text' name='ticketValue' id='tickets' />
<input type='submit' name='Submit' value='Submit' />
</fieldset>
</form>
<?php
require "init.php";
if(!empty($_POST['ticketValue']) && !empty($_POST['username'])){
$ticketValue = $_POST['ticketValue'];
$username = $_POST['username'];
$stmt = "UPDATE ticketTable SET ticket = ? WHERE username = ?";
$result = $dbcon->prepare($stmt);
$result->bind_param('ss', $ticketValue, $username);
$result->execute();
echo "Ticket has been changed";
}
else{
echo "Not able to make changes sorry";
}
?>
答案 2 :(得分:-2)
由于您使用POST方法而不是GET方法来发送参数,因此您应该更改以下部分:
<input type="hidden" name="username" value="<?php echo $_GET['username']; ?>" >
要:
<input type="hidden" name="username" value="<?php echo $_POST['username']; ?>" >