PHP Header() werkt wel op localhost maar niet online

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 03-10 17:50
Mijn vraag

Ik ben bezig met een website waar ik een stuk code heb met een redirect.
Op localhost wordt de header() netjes uitgevoerd maar als ik de site naar een server upload negeert hij de header() regel.
De exit(); na de header wordt wel gedaan en de rest van de page word niet getoond.

code:
1
2
3
4
5
6
if(isset($_POST['remove'])) {
    $removeitem = htmlspecialchars(stripslashes(trim($_POST['number'])));
    unset($_SESSION['cart'][$removeitem]);
    header('Location: link.php'); <- Fictieve link
    exit();
}


Weet iemand hoe dit kan?

Relevante software en hardware die ik gebruik

PHP html css javascript

Wat ik al gevonden of geprobeerd heb

Uiteraard mister google gevraagd en ik kwam ook een topic op stack overflow tegen met zon zelfde probleem maar ik kreeg er geen werkende oplossing uit helaas.

Beste antwoord (via Jasper_S1985 op 19-02-2020 21:48)


  • TheBorg
  • Registratie: November 2002
  • Laatst online: 29-09 12:08

TheBorg

Resistance is futile.

De header is het aller eerste wat je naar de browser moet sturen. Zit er dus een echo of wat html voor dan werkt het niet. Al gecontroleerd?

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 29-09 12:08

TheBorg

Resistance is futile.

De header is het aller eerste wat je naar de browser moet sturen. Zit er dus een echo of wat html voor dan werkt het niet. Al gecontroleerd?

Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 03-10 17:50
Ik had de code inderdaad onder de header staan waar al html stond. Heb de code naar compleet bovenaan de pagina verplaatst maar helaas geen verschil

Acties:
  • 0 Henk 'm!

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 12:47

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Hoe staat je error reporting?

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Header location moet een complete URL zijn.

Location geeft een 302:
https://www.php.net/manua...unction.header-parameters

HTTP1.1 verwacht een volledige URL voor een 302.

[ Voor 72% gewijzigd door Snake op 19-02-2020 21:49 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 03-10 17:50
Wow oke sorry ik ben echt de grootste prutser ooit haha... Ik had de code naar het header gedeelte verplaatst maar de header zelf niet geupload.. SORRY @TheBorg Thx je antwoord was perfect!
Opgelost! :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Snake schreef op woensdag 19 februari 2020 @ 21:45:
Header location moet een complete URL zijn.
Nee hoor, een relatieve url kan/mag ook.
A relative (to the request URL) or absolute URL.
14.14 Content-Location
[...]
    Content-Location = "Content-Location" ":"
        ( absoluteURI | relativeURI )
edit: ^^ My bad, verkeerde header 8)7
7.1.2. Location
[...]
The field value consists of a single URI-reference. When it has the form of a relative reference ([RFC3986], Section 4.2), the final value is computed by resolving it against the effective request URI ([RFC3986], Section 5).
/edit

Zie ook Wikipedia. De PHP documentatie is de enige ("fatsoenlijke") bron die nog steeds straatoude clients erbij sleurt:
Most contemporary clients accept relative URIs as argument to » Location:, but some older clients require an absolute URI including the scheme, hostname and absolute path.

[ Voor 71% gewijzigd door RobIII op 20-02-2020 09:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

RobIII schreef op woensdag 19 februari 2020 @ 22:32:
[...]

Nee hoor, een relatieve url kan/mag ook.


[...]


Zie ook Wikipedia. De PHP documentatie is de enige ("fatsoenlijke") bron die deze onzin nog steeds beweert:


[...]
Accepteren <> volgens de HTTP1.1 standaard. Heel het web heeft zoveel problemen omdat teveel applicaties meer accepteren als de standaard.

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Snake schreef op woensdag 19 februari 2020 @ 22:36:
[...]
Accepteren <> volgens de HTTP1.1 standaard.
Ik edit nét de HTTP1.1 standaard erbij ;)
Snake schreef op woensdag 19 februari 2020 @ 22:36:
Heel het web heeft zoveel problemen omdat teveel applicaties meer accepteren als de standaard.
Be conservative in what you send, be liberal in what you accept
Het web is er juist groot mee geworden ;) (Overigens, in hoeverre ik 't eens ben met dat mantra is vers 2, maar dat is een heel andere discussie...)

Edit: Whoops. My bad. RFC2616 zegt absoluut (ik had eerder de verkeerde header):
14.30 Location
[...]
   Location = "Location" ":" absoluteURI
Echter: RFC7231, die RFC2616 opvolgt, zegt:
7.1.2. Location
[...]
The field value consists of a single URI-reference. When it has the form of a relative reference ([RFC3986], Section 4.2), the final value is computed by resolving it against the effective request URI ([RFC3986], Section 5).
Neemt niet weg dat, in de praktijk, elke fatsoenlijke browser sinds 't jaar knoop een relatieve URL prima vreet.

[ Voor 90% gewijzigd door RobIII op 19-02-2020 22:54 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Eigenlijk heb je dezelfde vraag als in je vorige topic?

En in je vorige topic ging het ongevraagd over escapen en encoding, maar had je geen tips nodig op dat vlak. Echter doe je hier htmlspecialchars en stripslashes op een array key. Ik denk dat je wat meer rustig moet lezen over de basics en wat bepaalde functies doen, want het lijkt er op dat je iets te lang probeert te gokken tot iets werkt.

{signature}


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Voutloos schreef op woensdag 19 februari 2020 @ 22:56:
Echter doe je hier htmlspecialchars en stripslashes
Omdat die oude zooi nog steeds in handleidingen op internet wordt verkondigd?

Alleen iemand met kennis weet dat "magic qoutes" niet meer bestaat en je je input nu om zeep helpt.

@Jasper_S1985 Ga gewoon casten zoals in elke taal.
PHP:
1
2
$number = intval($_POST['number']);
$number = (int) $_POST['number'];

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Jasper_S1985
  • Registratie: Februari 2015
  • Laatst online: 03-10 17:50
@Jasper_S1985 Ga gewoon casten zoals in elke taal.
Ik zal eens gaan nakijken wat dat inhoud haha. Ik ben relatief nieuw zoals al wel blijkt ;)
Pagina: 1