Heim  >  Fragen und Antworten  >  Hauptteil

Ist das Entfernen des „+“-Zeichens die richtige Vorgehensweise beim Echo von $_GET-Variablen in PHP?

Ich habe eine URL-Zeichenfolge ähnlich wie https://example.com/path/?welcome_screen=1&email_address=something+else@example.com

In PHP rufe ich <?php echo $_GET['email_address']; ?>

auf

Dadurch entsteht something else@example.com

Konkret wurde das + in der E-Mail-Adresse durch ein Leerzeichen ersetzt.

  1. Ist das zu erwarten?
  2. Wenn ja, gibt es im obigen echoCode eine Möglichkeit, dies zu verhindern?
  3. Oder soll es bei der Erfassung der E-Mail-Adresse verarbeitet werden?

P粉481815897P粉481815897430 Tage vor491

Antworte allen(1)Ich werde antworten

  • P粉032900484

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

    1. 是的,+ 是在URL中表示空格的一种方式。PHP在创建$_GET数据时会自动对值进行URL解码,并将其转换为空格,因为它假设这就是原始URL中的值应该表示的内容。

    2. 不,那时已经太晚了。

    3. 是的,您应该在将值包含在URL中之前进行URL编码,以便+不被视为特殊字符。如果是PHP生成URL,您可以使用urlencode()函数。大多数其他编程语言都有等效的内置函数。

    Antwort
    0
  • StornierenAntwort