我想在表单中进行一些php测试,但我已按照教程进行操作,但没有得到想要的结果。我想确保borne的值不为null。然后将值发送到另一个页面“ exo.php”以使用它。
问题是,当我在输入的值中添加php代码时,例如,它不是将它与php代码共存,而是作为字符串,因此它会打印php代码。
这是我的代码:
<?php
if (isset($_GET["submit"])) {
$borneErr="";
$borne="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["borne"])) {
$borneErr = "Missing";
}
else {
$borne = $_POST["borne"];
}
}
}
?>
<form class="" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" >
<label> Borne : <input type="text" name="borne" value="<?php echo htmlspecialchars($borne);?>">
<span class="error">* <?php echo $borneErr;?></span> </label>
<button type="submit" value="OK"> Send !</button>
</form>
这是我在下面的这张图片中得到的结果:
您的代码引起注意
Undefined variable: borne
在这条线上:
<label> Borne : <input type="text" name="borne" value="<?php echo htmlspecialchars($borne);?>">
还有这个通知
Undefined variable: borneErr
在这条线上:
<span class="error">* <?php echo $borneErr;?></span> </label>
您可以通过在条件之外定义变量来解决此问题。
表单具有method="POST"
属性。但是您正在根据GET数据检查条件:
if (isset($_GET["submit"])) {
另外,您正在检查submit
表单数据中不包含的字段的存在,因为它是<button>
。您可以将其更改为,也可以更改<input>
您的PHP条件以检查borne字段。
<input type="submit" value="Send !">
要么
if (isset($_POST["borne"])) {
现在的检查$_SERVER["REQUEST_METHOD"]
是多余的,因此您可以摆脱它。
该代码可以进一步简化和完善,但我将保留它,以便更轻松地解决这些错误。
工作代码:
<?php
$borneErr = "";
$borne = "";
if (isset($_POST["borne"])) {
if (empty($_POST['borne'])) {
$borneErr = "Missing";
} else {
$borne = htmlspecialchars($_POST['borne']);
}
}
?>
<form class="" method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" >
<label> Borne : <input type="text" name="borne" value="<?php echo $borne; ?>">
<span class="error">* <?php echo $borneErr;?></span> </label>
<input type="submit" value="Send !">
</form>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句