Php 带有if(isset)的Foreach循环不';行不通
我制作了一个register.php-page,而不是编写:Php 带有if(isset)的Foreach循环不';行不通,php,foreach,Php,Foreach,我制作了一个register.php-page,而不是编写: if(isset($_POST['username'])) { $username = mysqli_escape_string($mysqli, $_POST['username']); } else { $username = ''; } 多次(一次用于用户名、birtday等),我尝试将(尚未设置)变量/字符串存储在数组中: $array = array('email', 'username', 'birth'
if(isset($_POST['username'])) {
$username = mysqli_escape_string($mysqli, $_POST['username']);
} else {
$username = '';
}
多次(一次用于用户名、birtday等),我尝试将(尚未设置)变量/字符串存储在数组中:
$array = array('email', 'username', 'birth')
然后执行foreach循环:
foreach ($array as $var) {
if(isset($_POST['$var'])) {
${$var} = mysqli_escape_string($mysqli, $_POST['$var']);
} else {
${$var} = '';
}
}
我不知道我做错了什么,不知道这是否是正确的方法(猜测${$var}是错的)。有什么问题,应该如何解决?:(变量扩展不会通过
'
文本进行--请将变量用双引号括起来,或者完全跳过引号:
if(isset($_POST[$var])) {
//or
if(isset($_POST["$var"])) {
变量扩展不会通过
“
文本进行--请将变量用双引号括起来或完全跳过引号:
if(isset($_POST[$var])) {
//or
if(isset($_POST["$var"])) {
isset($\u POST['$var'])
应该是isset($\u POST[$var])
isset($\u POST['$var'])
应该是isset($\u POST[$var])
除了“$var”之外,还应该使用数组来存储转义输入,而不是直接从输入中声明变量。通过这样做,很容易意外地引入安全问题。除了“$var”之外,还应该使用数组来存储转义输入,而不是直接从输入声明变量。按您现在的方式声明变量,很容易意外引入安全问题。为什么要使用“”
为什么要使用“”
isset($\u POST['$var'])
被视为一个字符串,您需要使用isset($\u POST[“$var”]]
了解字符串'$var'
与$var
中的字符串之间的差异,将$\u POST中的“$var”更改为$var,将${$var}更改为$$var。这可能会解决您的问题。试试。isset($\u POST[$var'])
被视为一个字符串,您需要使用isset($\u POST[“$var”]]
了解字符串'$var'
与$var
中的字符串之间的区别,在$\u POST和${$var}中将'$var'更改为$var'到$$var。这可能会解决您的问题。尝试一下。谢谢您的建议!谢谢您的建议!您是对的。不过用法很奇怪。可能应该将整个内容包装在一个函数中,如getPost($key)
返回一个空字符串或值。你是对的。不过用法很奇怪。可能应该将整个过程封装在一个函数中,比如getPost($key)
返回一个空字符串或值。我认为我需要,或者这不重要。刚刚学习了PHP btw:)我认为我需要,或者这没关系。只是学习了PHP顺便说一句:)