Takhir, your answer is absolute bullshit. It works using the characters, it stops working when using a variable. If you just don't know the answer admit that Inetload is broken or that nsis isn't properly passing variables.
Once again: This one works, and the next code example does not. This has zero to do with parameters or the stack or anything else. It is a direct substitution that is not syntax related.
The one that works:
Name "Testcon"
OutFile "Testcon_push.exe"
;=== Runtime Switches
CRCCheck On
WindowIcon Off
AutoCloseWindow True
SetCompressor /SOLID LZMA
SilentInstall Silent
Section "Main"
Pop $0
Push "/END"
Push "$EXEDIR\output.txt"
Push "https://www.metropipe.net/torrify/check.php?md5=df4d054a8ddcb5bcd1a59eebd6e12890"
InetLoad::load
SectionEnd
And now the one that doesn't, which is a direct substitution using a string instead of text:
Name "Testcon"
OutFile "Testcon_push.exe"
;=== Runtime Switches
CRCCheck On
WindowIcon Off
AutoCloseWindow True
SetCompressor /SOLID LZMA
SilentInstall Silent
Var AUTHURL
Var AUTHSTRING
Var AUTHMD5
Section "Main"
StrCpy $AUTHMD5 "df4d054a8ddcb5bcd1a59eebd6e12890"
StrCpy $AUTHURL "https://www.metropipe.net/torrify/check.php?md5="
StrCpy $AUTHSTRING `"$AUTHURL$AUTHMD5"`
Pop $0
Push "/END"
Push "$EXEDIR\output.txt"
Push "$AUTHSTRING"
InetLoad::load
SectionEnd
As you notice, the first code produces "1", and the second code produces "0". 1, from the server, means that the website address exists, and 0 means it does not. So that direct substitution which is entirely equivalent, should result in a "1" instead of a "0". There is no reason that the first way should succeed and the second way shouldn't, if InetLoad or NSIS didn't have errors. I seriously am waiting for an explanation about how these are both just fine and now it is some other issue.