Page 1 sur 1

Bug avec URLEncoder()

Publié : ven. 14/avr./2017 15:54
par celtic88
il ya des caractères illégaux qui sont renvoyé par cette fonction.. :|

Code : Tout sélectionner

Debug URLEncoder("&!#") ; = &!#
pour tester
http://meyerweb.com/eric/tools/dencoder/

Re: Bug avec URLEncoder()

Publié : ven. 14/avr./2017 16:06
par celtic88
alternatif....

Code : Tout sélectionner

Procedure.s URLEncoder_Fix(URL$ ,Format.l=#PB_UTF8)
  Protected *StringToBuf
  If Format = #PB_Ascii
    *StringToBuf=Ascii(URL$)
  Else
    *StringToBuf=UTF8(URL$)
  EndIf
  If Not *StringToBuf:ProcedureReturn "":EndIf
  Protected iReturnUrl.s,Pos.l,Asc.c
  For Pos=0 To MemorySize(*StringToBuf)-2
    
    Asc=PeekA(*StringToBuf+Pos)
    Select Asc
      Case  48 To 57, 65 To 90, 97 To 122 ;0 to 9, A to Z , a to z
        iReturnUrl + Chr(Asc)
      Case 32 ; "Space"
        iReturnUrl + "%20"
      Default; "every character except 0-9, A-Z and a-z requires conversion"
        iReturnUrl + "%" + Hex(Asc,#PB_Byte)
    EndSelect
    
  Next
  FreeMemory(*StringToBuf)
  ProcedureReturn iReturnUrl
EndProcedure

Debug URLEncoder_Fix("&!#")
Debug URLEncoder("&!#") ; = &!#


Re: Bug avec URLEncoder()

Publié : ven. 14/avr./2017 16:31
par Marc56
celtic88 a écrit :il ya des caractères illégaux qui sont renvoyé par cette fonction.. :|

Code : Tout sélectionner

Debug URLEncoder("&!#") ; = &!#
Je pense que la fonction PB est programmée comme cela pour permettre le passage de paramètres par URL (& #)
Donc l'interprétation par le serveur.
Autres: ; / ? : @ & = + $ , - _ . ! ~ * ' ( )

Si je fais un encodage PB d'une URL avec balise
(ex: sur mon site: balise en milieu de page)
Avec PB c'est OK, il laisse bien les balises serveur
http://md.acme.software.free.fr/acmedesk.php#version_us
Mais encodage strict:
[url]http://md.acme.software.free.fr%2facmedesk.php%23version_us/[/url]

:wink: