必须使用filter_var()和html_entities()验证我的输入。
这是我无法运作的代码:
session_start();
if(empty($_POST['add']) === false ) {
$name = filter_var(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
$email = filter_var(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$phone = filter_var(INPUT_POST, 'phone', FILTER_SANITIZE_INT);
$address = filter_var(INPUT_POST, 'address', FILTER_SANITIZE_STRING);
}
?>
当我做一个测试并且放置" Frost "进入我的名字输入它以粗体显示,但它不是假设的。完成此操作后,需要写出$ _SESSION [' cart']。我迷失在这一点
答案 0 :(得分:0)
从评论到目前为止,我可以看到:
如果$ _GET变量包含该数组,则表示您没有正确发布HTML表单。使用它来发布HTML <form>
:
<form action="/path/to/script.php" method="post" enctype="multipart/form-data">
<!-- input fields -->
</form>
此外,如Peter van der Wal所说,如果您想使用filter_input()
,请使用filter_var()
函数代替INPUT_POST
。否则使用filter_var($_POST['input_name'], FILTER_SANITIZE_STRING)
。
如需更多帮助,请发布更多HTML代码
如果您不熟悉编码/ PHP,建议您熟悉W3Schools和PHP Documentation。如果您了解这些资源,那将非常有用。开始学习的好方法。
答案 1 :(得分:0)
所以在这一点上我需要将表单提交给自己进行测试,现在是我当前代码的代码:
<?php
session_start();
if(empty($_POST['add']) === false ) {
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$phone = filter_var($_POST['phone'], FILTER_SANITIZE_INT);
$address = filter_var($_POST['address'], FILTER_SANITIZE_STRING);
}
?>
<form method="post" action="cart.php" id="form1">
<label for="name">Name:</label><br>
<input type="text" name="name">
<br><br>
<label for="email">Email:</label><br>
<input type="email" name="email">
<br><br>
<label for="tel">Phone:</label><br>
<input type="tel" name="phone">
<br><br>
<label for="textarea">Address:</label><br>
<input type="textarea" name="address">
<br>
<div id="checkbox">
<input type="checkbox" value="remember">
</div>
<div id="label1">
<label for="checkbox">Remember Me</label>
</div>
<br>
<br>
<input type="submit" value="Submit">
</form>
我在页面上也有一个调试模块,现在它在$ _POST数组中而不是GET,这很好,但是当我将html实体放在名称输入字段中时,它们仍然没有被清理/删除。
调试模块:
$_POST contains:
Array
(
[name] => Frost
[email] =>
[phone] =>
[address] =>
)
*当我将BOLD html标签添加到其输入字段时,Frost以粗体显示,但这样做的目的是阻止它发生。