2016-08-30 9 views
-3

I以下の二つのスニペットがあります組み合わせるヘッダとはhtmlspecialchars

<?php header('Location: example.com/login.php?name='); ?> 

<?php echo 'Hello' . htmlspecialchars($_GET["name"]) . ', welcome'; ?> 

は、私がexample.com/login.php?name==後はhtmlspecialcharsでエンコードされた名前を追加したいが、私はこれを行うにしようとしたとき、それは動作しませんでした。

どうすればよいですか?

+1

にユーザーをリダイレクトすることを想定すると、「それを試みたが、うまくいきませんでした」 - あなたは何をしようとしたのですか? – noahnu

+1

あなたのコードにこれが起こっていることを確認するために必要なことは何ですか? –

+0

@noahnu私はこれを試しました '<?php header( 'Location:example.com/login.php?name=htmlspecialchars($_GET[name"))'); ?> –

答えて

0

あなたは文字列の連結を使用することができます。

  • は私が私の後に明示的にexit()コールを追加しました:PHPで、あなたが表示されます期間(.

    <?php 
    header('Location: http://www.example.com/login.php?name=' 
          . htmlspecialchars($_GET['name'])); 
    exit(); 
    

    他のいくつかの変更と一緒に二つの文字列(CONCATENATE文字列)を組み合わせることができますLocationヘッダーを設定します。これにより、リダイレクトがコードをもう一回実行せずにリダイレクトされることがありますが、これはしばしば望ましくありません。

  • ロケーションにプロトコル(http、https)を追加しました。

$_GET['name'] = 'Mary';が、これは

http://www.example.com/login.php?name=Mary 
+0

おかげでクリス!出来た –

0

が再びそれを試してみてください - 二重引用符で

<?php header("Location: example.com/login.php?name=htmlspecialchars($_GET['name'])"); ?> 
+0

私はこれを試してみます –