recherche

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

Encodage/décodage d'URL PHP

<p>J'ai utilisé la solution acceptée dans cette question pour crypter l'identifiant, par exemple dans <strong>/index.php?id=3</strong>. Le problème est que je ne peux pas envoyer la valeur cryptée sous forme d'URL telle que <strong>/index.php?id=dsf13f3343f23/23=</strong>. Parce que parfois il y a des caractères étranges dans l'URL, par exemple, faites attention au symbole <code>=</code>
P粉512363233P粉512363233541 Il y a quelques jours631

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

  • P粉214176639

    P粉2141766392023-08-15 10:44:53

    Utilisez la fonction urlencode() de PHP pour encoder la valeur avant de la mettre dans l'URL.

    Cette fonction convertit les caractères « bizarres », tels que =, dans un format pouvant être inséré en toute sécurité dans une URL. Vous pouvez l'utiliser comme ceci :

    Header('Location: /index.php?id=' . urlencode($id))

    répondre
    0
  • P粉346326040

    P粉3463260402023-08-15 09:23:14

    Les caractères étranges dans les valeurs transmises dans les URL doivent être échappés en utilisant urlencode().

    Par exemple, l'extrait de code suivant :

    echo urlencode('dsf13f3343f23/23=');

    donnera :

    dsf13f3343f23%2F23%3D

    En tant que paramètre d'URL, ceci est valide.

    Si vous souhaitez créer une chaîne de requête avec plusieurs paramètres, consultez la fonction
    http_build_query().

    Par exemple :

    echo http_build_query(array(
        'id' => 'dsf13f3343f23/23=',
        'a' => 'plop',
        'b' => '$^@test', 
    ));

    donnera :

    id=dsf13f3343f23%2F23%3D&a=plop&b=%24%5E%40test

    Cette fonction gérera automatiquement l'échappement et l'épissage des paramètres ;-)

    répondre
    0
  • Annulerrépondre