我正在创建一个HTML,它有很多可选的输入字段。 PHP服务器脚本获取用户输入的数据,基本上形成一个句子。
Hello my name is <?php echo $_POST["name"]; ?> and I am <?php echo $_POST["age"]; ?>
现在,如果用户提交表单输入名称和年龄,则没有问题。但是,如果省略一个或两个输入,则PHP输出会在句子中嵌入错误消息。我希望通过简单地将该区域留空来处理所有遗漏。
示例:
姓名:本
年龄:(空白)
您好,我的名字是Ben,我是。
这可以实现吗?另外,有没有办法编写if / else语句,如果用户输入了任何值,那么这样做吗?
谢谢!
答案 0 :(得分:8)
$name = (isset($_POST['name']) ? $_POST['name'] : '');
$age = (isset($_POST['age']) ? $_POST['age'] : '');
echo 'Hello, my name is ' . $name . ', and I am ' . $age . ' years old.';
答案 1 :(得分:0)
大家好,你应该像朱利安一样使用isset()
如果设定年龄,你可以在条件中使用它来制作不同的句子
isset()
返回TRUE或FALSE
我为你做了这个(用_GET但是你可以使用_POST,它更容易测试
<?php
$html = 'Hi, ';
if(isset($_GET['name']) AND $_GET['name'] != '')
{
$html .= 'my name is '.strip_tags($_GET['name']).' ';
}
if(isset($_GET['name']) AND $_GET['name'] != '' AND isset($_GET['age']) AND $_GET['age'] != '' )
{
$html .= 'and ';
}
if(isset($_GET['age']) AND $_GET['age'] != '' )
{
$html .= 'i am '.strip_tags($_GET['age']).' years old ';
}
echo $html;
和非常重要:我使用strip_tags()
删除html标记,避免XXS攻击
所以最后我可以得到这些句子:
你好,我叫Acuao嗨,我叫Acuao,我23岁
嗨,我今年23岁