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()ジュリアン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攻撃を回避するために使用します

だから最後に私はこれらの文を得ることができます:

こんにちは、私の名前はAcuaoです

こんにちは、私の名前はAcuaoです。23歳です。

こんにちは、私は23歳です

于 2013-03-16T00:53:48.377 に答える