recherche

Maison  >  Questions et réponses  >  le corps du texte

La suppression du caractère "+" est-elle la bonne chose à faire lors de l'écho de variables $_GET en PHP ?

J'ai une chaîne d'URL similaire à https://example.com/path/?welcome_screen=1&email_address=something+else@example.com

En PHP, j'appelle <?php echo $_GET['email_address']; ?>

Cela produira something else@example.com

Plus précisément, le + dans l'adresse email a été remplacé par un espace.

  1. Est-ce prévu ?
  2. Si oui, existe-t-il un moyen d'empêcher que cela se produise dans le echocode ci-dessus ?
  3. Ou doit-il être traité lorsque l'adresse e-mail est collectée ?

P粉481815897P粉481815897490 Il y a quelques jours522

répondre à tous(1)je répondrai

  • P粉032900484

    P粉0329004842023-09-10 12:11:53

    1. Oui, + 是在URL中表示空格的一种方式。PHP在创建$_GETdata décode automatiquement la valeur par URL et la convertit en espaces, car elle suppose que c'est ce que la valeur dans l'URL d'origine est censée représenter.

    2. Non, il était alors trop tard.

    3. Oui, vous devez encoder l'URL avant d'inclure la valeur dans l'URL de la fonction +不被视为特殊字符。如果是PHP生成URL,您可以使用urlencode(). La plupart des autres langages de programmation ont des fonctions intégrées équivalentes.

    répondre
    0
  • Annulerrépondre