Project

General

Profile

Actions

Bug #31967

closed

typoLink_URL leaves port untouched

Added by Hendrik Becker over 12 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Frontend
Target version:
-
Start date:
2011-11-21
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
4.5
PHP Version:
5.2
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

In case of a special formed HTTP-request the return value of $this->cObj->typoLink_URL() is wrong.
This occurs in a basic TYPO3 4.5.7 installation.

Expected return value (correct):
https://domain.tld/index.php?id=5

Delivered return value (wrong):
https://domain.tld:80/index.php?id=5

Reproduction steps:

1. Create a new page
2. Edit the page properties and set "Use Protocol" to "https://"
3. Create a fe-plugin and put it in any other page (create one if necessary) with "Use Protocol" set to "http://" (or "Default")
4. Put this php code inside the fe-plugin:

echo $this->cObj->typoLink_URL(array('parameter' => 5));
exit;

The id 5 must be replaced by the id of the page created in step 1 of course.

5. Access the page containing the fe-plugin with your browser through the frontend

The result is the expected result until this step because the HTTP-request looks somewhat like this:

GET /index.php?id=7 HTTP/1.1
Host: domain.tld
User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

But if the request gets changed in this form (only the port gets defined also, which is legitimated by: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23):

GET /index.php?id=7 HTTP/1.1
Host: domain.tld:80
User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive

Then the returned value includes the same port definition as in the request. But since "http" is changed into "https" the port must be omitted or changed into 443.

This behaviour can be tested by using e.g. the "Live HTTP headers" Plugin for Firefox.

Actions

Also available in: Atom PDF