Fall sein:htmlspecialchars() erwartet 1 Parameter-String
input_name = Abu
input_address = Earth
hobbies[0] = read
hobbies[1] = sport
hobbies[2] = eat
Erwartetes Ergebnis: Abu-Erde-Lese-Sport-eat
aber Ergebnis:
Warning : htmlspecialchars() erwartet Parameter 1 als String, Array in /opt/lampp/htdocs/tester/listen.php in Zeile 6
Abu-Earth-
Hinweis: nicht initialisierte Zeichenfolge-Offset: 0 in /opt/lampp/htdocs/tester/listen.php on line 16
Hinweis: nicht initialisierte Zeichenfolge-Offset: 1 in /opt /lampp/htdocs/tester/listen.php auf der Leitung 17
Hinweis: nicht initialisierte Zeichenfolge offset: 2 in /opt/lampp/htdocs/tester/listen.php auf Leitung 18
Wie behebe ich das? Dieses mein Code
index.php
<script src="https://code.jquery.com/jquery-3.1.1.min.js" charset="utf-8"></script>
<script src="http://cdn.jsdelivr.net/jquery.validation/1.15.1/jquery.validate.min.js" charset="utf-8"></script>
<form method="post" id="frm_test" name="frm_test">
<input type="text" name="input_name" value="" required>
<input type="text" name="input_address" value="" required>
<input type="text" name="hobbies[0]" value="">
<input type="text" name="hobbies[1]" value="">
<input type="text" name="hobbies[2]" value="">
<button type="submit">Submit Data</button>
</form>
<script type="text/javascript">
$(function(){
$('#frm_test').validate({
submitHandler: function() {
postData("frm_test","");
}
}
);
});
function postData(frm, id){
$.post("listen.php",$("#"+frm).serialize(),function(r){
console.log(r);
});
}
</script>
listen.php
<?php
function filterText($string)
{
$conn = mysqli_connect("localhost","root","","dbname");
$filter = mysqli_real_escape_string($conn, stripslashes(strip_tags(htmlspecialchars($string,ENT_QUOTES))));
return $filter;
}
foreach($_POST as $key=>$value){
${$key} = filterText($value);
}
echo $input_name."-";
echo $input_address."-";
echo $hobbies[0]."-";
echo $hobbies[1]."-";
echo $hobbies[2]."-";
?>
beginnen mit 'print_r ($ _ POST)' –