我曾尝试在stackoverflow上寻找问题的解决方案,但似乎找不到适合我的情况。
<?php
if (empty($userName)){
print <<<HERE
<form>
Please enter your name:
<input type="text" name="userName">
<br>
<input type="submit">
</form>
HERE;
}
else {
print "<h3>Hi there, $userName!</h3>";
} //end
?>
当我在表单字段中输入值时,将其分配给变量$ userName,但是当在添加该值后未触发else语句时,就会出现问题。
我希望我已经足够清楚,期待可能的解决方案。
谢谢。
答案 0 :(得分:1)
此代码仅在启用register_globals
的情况下有效,并且从PHP 5.4.0开始删除了register_global,因此该代码在PHP 5.4+中将不起作用,而在禁用register_globals
的情况下也将不起作用在PHP.ini中(并且自PHP 4.2.0起默认已禁用它),请尝试
if (empty($_GET['userName'])){
相反。同样,您似乎在这里对XSS敞开了大门,必须先对变量进行转义,然后将其回显给用户,或者打开网站进行黑客的xss攻击。
尝试
function hhb_tohtml(string $str):string
{
return htmlentities($str, ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE | ENT_DISALLOWED, 'UTF-8', true);
}
print "<h3>Hi there, ".hhb_tohtml($_GET['userName'])."!</h3>";
答案 1 :(得分:0)
如何从变量中检索值?在您的问题中我没有看到。
<?php
if(isset($_POST['userName'])) {
$userName = $_POST['userName']; //This will take the userName input and put it into a variable for you to test.
}
if (empty($userName)){
print <<<HERE
<form>
Please enter your name:
<input type="text" name="userName">
<br>
<input type="submit">
</form>
HERE;
}
else {
print "<h3>Hi there, $userName!</h3>";
} //end
?>