[PHP] Doorsturen via Header met parameters

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil gebruikers doorsturen naar een pagina die resultaten toont, nadat ze een bericht hebben toegevoegd. Als ik de 'header' opdracht geef wordt de parameter 'id' echter niet meegegeven. Is dit niet mogelijk, of doe ik het niet op de juiste manier. Is er evt. een ander manier waarop dit mogelijk is.

PHP:
1
header("Location: show_topic.php?id=".$id);


Alvast bedankt voor eventuele suggesties.

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Dat werkt gewoon :)

header.php:
PHP:
1
2
$id = 1;
header("Location: test.php?id=".$id);

test.php:
PHP:
1
print_r($_GET);

test.php geeft als resultaat:
code:
1
Array ( [id] => 1 )

apache 2.0.48 / php 4.3.4

[ Voor 34% gewijzigd door dArtagnan op 19-01-2004 21:50 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vreemd. Hoe ik de parameter ook noem, hij blijkt telkens leeg als ik em in de nieuwe pagina wil gebruiken of weergeven.

Bedankt voor je reactie in ieder geval. Ik ga nog wel even in de code spitten.

Acties:
  • 0 Henk 'm!

  • steenz
  • Registratie: Oktober 2000
  • Laatst online: 21-09-2024
Als je wordt doorgestuurd naar die pagina moet je de variabele ook in de URL te zien krijgen... als het niet werkt zal $id waarschijnlijk gewoon leeg zijn... misschien moet je $_GET[id] gebruiken als register_globals in php.ini uit staat oid.

Waarom trouwens niet gewoon:
header("Location: show_topic.php?id=$id");

Rest van de code kan misschien de oorzaak dat $id leeg is (als dat zo is) geven

[ Voor 14% gewijzigd door steenz op 19-01-2004 22:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Doe eens:
PHP:
1
echo $id;

en comment die header functie even weg om te zien wat de output is.

Als die $id afkomstig moet zijn van de client dan zou ik eens $_GET['id'] proberen in plaats van $id.
steenz schreef op 19 januari 2004 @ 22:00:
Als je wordt doorgestuurd naar die pagina moet je de variabele ook in de URL te zien krijgen... als het niet werkt zal $id waarschijnlijk gewoon leeg zijn... misschien moet je $_GET['id'] gebruiken als register_globals in php.ini uit staat oid.

Waarom trouwens niet gewoon:
header("Location: show_topic.php?id=$id");
Waarom wel, en waarom is dat gewoon? Ik vind het maar niks omdat je niet echt veel aan je syntax higlighting meer hebt.
Let trouwens ook op de quotes.
Ikzelf gebruik voor zulke dingen trouwens vaak sprintf.

[ Voor 69% gewijzigd door Verwijderd op 19-01-2004 22:05 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Als je twee pagina's maakt met gewoon een simpele header en een pagina die de header output weergeeft doet hij het dan wel. Eigenlijk even mijn voorbeeld overnemen en testen. Als dat werkt ligt het in elk geval niet aan je serverconfiguratie.

Acties:
  • 0 Henk 'm!

  • steenz
  • Registratie: Oktober 2000
  • Laatst online: 21-09-2024
Verwijderd schreef op 19 januari 2004 @ 22:02:
Doe eens:
PHP:
1
echo $id;

en comment die header functie even weg om te zien wat de output is.

Als die $id afkomstig moet zijn van de client dan zou ik eens $_GET['id'] proberen in plaats van $id.

[...]

Waarom wel, en waarom is dat gewoon? Ik vind het maar niks omdat je niet echt veel aan je syntax higlighting meer hebt.
Let trouwens ook op de quotes.
Ikzelf gebruik voor zulke dingen trouwens vaak sprintf.
De header functie hoef je niet weg te commenten; die werkt toch niet als er al output naar de browser verstuurd is.

Die opmerking over binnen/buiten quotes was niet echt belangrijk hoor. Ik gebruik zelf geen editor dus had me even niet gerealiseerd dat je er iets aan zou kunnen hebben om het op deze manier te doen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Errmm. Ik moet bekennen dat ik het probleem gevonden heb. Bedankt voor je suggestie Cheatah om de parameter VOOR het verzenden nog even te bekijken. Bleek dat hij daar ergens overschreven werd.

Sorry voor de overlast en bedankt voor jullie hulp. Het werkt nu.
Pagina: 1