0

我正在为此创建一个 HTML,它有很多可选的输入字段。PHP 服务器脚本获取用户输入的数据并基本上形成一个句子。

Hello my name is <?php echo $_POST["name"]; ?> and I am <?php echo $_POST["age"]; ?>

现在,如果用户提交输入姓名和年龄的表单,则没有问题。但是,如果您省略一个或两个输入,PHP 输出会在句子中嵌入一条错误消息。我希望它通过简单地将区域留空来处理所有遗漏。

例子:

姓名:本
年龄:(空白)

你好,我的名字是本,我是。

这可以实现吗?另外,有没有办法编写一个 if/else 语句,如果用户输入了任何值,请执行此操作?

谢谢!

4

2 回答 2

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.';
于 2013-03-15T23:36:21.457 回答
0

嗨,你应该isset()像 Julian H 说的那样使用,如果设置了年龄,你可以在条件下使用它来制作不同的句子

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攻击

所以最后我可以得到这些句子:

你好,我叫阿库奥

你好,我叫阿库奥,今年 23 岁

你好,我今年 23 岁

于 2013-03-16T00:53:48.377 回答