<body>
<form action = "opdracht4.7.test.php" method="get">
Uw naam: <input type="text" name="naam"><br>
Uw e-mail: <input type="text" name="email"><br>
<br>
Bevalt deze website? <input type="radio" name="keuze" value="Ja" checked> Ja
<input type="radio" name="keuze" value="Nee"> Nee
<input type="radio" name="keuze" value="Weet niet"> Weet niet <br>
<br>
Uw commentaar: <br>
<textarea name="commentaar"></textarea><br>
<br>
<input type="submit" name="submit" value="submit">
</form>
为了处理数据,我有一些函数中的要求:
function check_input($input) {
$input = htmlspecialchars($input);
$input = trim($input);
$input = stripslashes($input);
return $input;
}
现在我使用$ _GET来获取所有信息:
if(isset($_GET['submit'])) {
$form = array($_GET['naam'], $_GET['email'], $_GET['keuze'], $_GET['commentaar']);
所以一切正常,现在我使用:
foreach($form as $key => $value) {
$value = check_input($value);
echo $key.' is a '.$value."<br>";
}
但这里出错了。通过$ _GET ['x']的每个值都必须替换为check_input($ value)...但它不起作用。循环中的值已更改,但如果我退出foreach循环,则$ values仍未修剪,也不会进行调整。有人可以帮帮我吗?
答案 0 :(得分:0)
我认为您正在寻找您的$form
数组,但已映射到您的check_input
函数:
if(isset($_GET['submit'])) {
$form = array($_GET['naam'], $_GET['email'], $_GET['keuze'], $_GET['commentaar']);
$form = array_map('check_input', $form);
}
答案 1 :(得分:0)
这里$ value必须存储在块foreach循环外部定义的数组中,如下所示
$value=array();
$i=0;
foreach($form as $key => $value) {
$value[$i] = check_input($value);
echo $key.' is a '.$value[$i]."<br>";
$i++;
}
print_r($value);