{"action":"created","issue":{"url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/issues/5256","repository_url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads","labels_url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/issues/5256/labels{/name}","comments_url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/issues/5256/comments","events_url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/issues/5256/events","html_url":"https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5256","id":191761624,"number":5256,"title":"Force http_build_query to use `&` as the arg_seperator","user":{"login":"chriscct7","id":1324637,"avatar_url":"https://avatars.githubusercontent.com/u/1324637?v=3","gravatar_id":"","url":"https://api.github.com/users/chriscct7","html_url":"https://github.com/chriscct7","followers_url":"https://api.github.com/users/chriscct7/followers","following_url":"https://api.github.com/users/chriscct7/following{/other_user}","gists_url":"https://api.github.com/users/chriscct7/gists{/gist_id}","starred_url":"https://api.github.com/users/chriscct7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chriscct7/subscriptions","organizations_url":"https://api.github.com/users/chriscct7/orgs","repos_url":"https://api.github.com/users/chriscct7/repos","events_url":"https://api.github.com/users/chriscct7/events{/privacy}","received_events_url":"https://api.github.com/users/chriscct7/received_events","type":"User","site_admin":false},"labels":[{"id":2798126,"url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/labels/Bug","name":"Bug","color":"fc2929","default":false},{"id":95757271,"url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/labels/Has%20PR","name":"Has PR","color":"009800","default":false},{"id":81699343,"url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/labels/Needs%20Testing","name":"Needs Testing","color":"bfe5bf","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/milestones/147","html_url":"https://github.com/easydigitaldownloads/easy-digital-downloads/milestones/2.6.14","labels_url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/milestones/147/labels","id":2150080,"number":147,"title":"2.6.14","description":null,"creator":{"login":"pippinsplugins","id":1034109,"avatar_url":"https://avatars.githubusercontent.com/u/1034109?v=3","gravatar_id":"","url":"https://api.github.com/users/pippinsplugins","html_url":"https://github.com/pippinsplugins","followers_url":"https://api.github.com/users/pippinsplugins/followers","following_url":"https://api.github.com/users/pippinsplugins/following{/other_user}","gists_url":"https://api.github.com/users/pippinsplugins/gists{/gist_id}","starred_url":"https://api.github.com/users/pippinsplugins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pippinsplugins/subscriptions","organizations_url":"https://api.github.com/users/pippinsplugins/orgs","repos_url":"https://api.github.com/users/pippinsplugins/repos","events_url":"https://api.github.com/users/pippinsplugins/events{/privacy}","received_events_url":"https://api.github.com/users/pippinsplugins/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":5,"state":"open","created_at":"2016-11-21T22:23:05Z","updated_at":"2016-11-28T20:02:24Z","due_on":null,"closed_at":null},"comments":5,"created_at":"2016-11-25T20:23:17Z","updated_at":"2016-11-29T00:15:25Z","closed_at":null,"body":"HostEurope and a couple other bad-actor hosts change the `arg_seperator.output` PHP ini setting from the default `&` to `&amp;`. This setting is used in PHP core functions like `http_build_query` and a couple other functions and the change breaks the function from creating a redirectable url. \r\n\r\nWhen using `http_build_query` and related functions, the third param (optional) is the arg seperator, and only if left unused it will default to the PHP ini setting. When using it, you should always force the third param to be & for good measure.\r\n\r\n2 of 3 EDD core uses of it do not force it:\r\n- https://github.com/easydigitaldownloads/easy-digital-downloads/blob/b37acf76690486409e50f5542ae430e6b9c6f405/includes/gateways/paypal-standard.php#L287\r\n- https://github.com/easydigitaldownloads/easy-digital-downloads/blob/ad537475d57fffb880a4619501c1f6dd59d6ddb1/includes/api/class-edd-api.php#L1786\r\n\r\nImportantly the first one contains the following line:\r\n```\r\n$paypal_redirect = str_replace( '&amp;', '&', $paypal_redirect );\r\n```\r\nThis sorta fixes the issue, but we should fix it properly and then remove this line (as it would no longer be needed for the intended purpose and keeping it would breaks products or more likely fees containing an escaped ampersand for display purposes).\r\n\r\nhttps://github.com/easydigitaldownloads/easy-digital-downloads/blob/b37acf76690486409e50f5542ae430e6b9c6f405/includes/gateways/paypal-standard.php#L290\r\n"},"comment":{"url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/issues/comments/263436948","html_url":"https://github.com/easydigitaldownloads/easy-digital-downloads/issues/5256#issuecomment-263436948","issue_url":"https://api.github.com/repos/easydigitaldownloads/easy-digital-downloads/issues/5256","id":263436948,"user":{"login":"pippinsplugins","id":1034109,"avatar_url":"https://avatars.githubusercontent.com/u/1034109?v=3","gravatar_id":"","url":"https://api.github.com/users/pippinsplugins","html_url":"https://github.com/pippinsplugins","followers_url":"https://api.github.com/users/pippinsplugins/followers","following_url":"https://api.github.com/users/pippinsplugins/following{/other_user}","gists_url":"https://api.github.com/users/pippinsplugins/gists{/gist_id}","starred_url":"https://api.github.com/users/pippinsplugins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pippinsplugins/subscriptions","organizations_url":"https://api.github.com/users/pippinsplugins/orgs","repos_url":"https://api.github.com/users/pippinsplugins/repos","events_url":"https://api.github.com/users/pippinsplugins/events{/privacy}","received_events_url":"https://api.github.com/users/pippinsplugins/received_events","type":"User","site_admin":false},"created_at":"2016-11-29T00:15:25Z","updated_at":"2016-11-29T00:15:25Z","body":"PR is invalid, per comments above."}}
{"actor":{"display_login":"pippinsplugins"}}