Hallo.

Ik ben een site aan het maken met een inlog script.
Het inlog formulier geeft de huidige pagina mee, in dit voorbeeld index.php?page=rwl&id=1.
Ik heb deze data in de variabele $nextpage gezet.
Als ik deze echo staat er gewoon het volledige adres,
maar zodra ik
header("Location: ".$nextpage);
gebruik, kom ik uit op index.php?page=rwl.
Het &id=1 gedeelte wordt dus weggelaten.
Iemand enig idee hoe ik dit kan oplossen?

Mvg Daniel Hartman
Ja, jij haalt hem uit de GET. Dan moet je eerst urldecode gebruiken.
Oke, ik ga even opzoeken hoe dat werkt,
maar als ik gewoon echo $nextpage; doe, staat er wel met &id=1
Hoort dit?
Ja dat klopt, je zou moeten doen:

<?php
    $nextpage = urldecode ($_GET['page']);
?>
Geprobeerd, ik heb nu:

<?
$return = $_GET['returnurl'];
$nextpage = "http://www.danielhartman.nl";
$nextpage .= urldecode($return);
    header ('Location: ' . $nextpage);
    exit ();
?>

Dit geeft nog steeds niet het gewenste effect.
En heb je de url wel gezet met urlencode?

Edit: probeer eens zo:
<?php
$return = $_GET['returnurl'];
$nextpage = "http://www.danielhartman.nl/";;
$nextpage .= urldecode($return);
header ('Location: ' . $nextpage);
exit ();
?>
Dat heb ik nu staan, en dat werkt ook niet.
Ik heb de url niet gezet met urlencode.
Ik geef de url nu zo weg:

<form method=POST action=login.php?returnurl=<? echo $return; ?>>
Doe eens zo:
<form method=POST action=login.php?returnurl=<? echo urlencode ($return); ?>> 
Ontzettend bedankt!!
Op wat sleshes te veel, werkt de doorstuur nu.
Nogmaals bedankt voor uw hulp!
Okee, graag gedaan hoor.
In LOCATION: hoef je -zover ik weet - de & niet te escapen. Ik doe het tenminste nooit :P

in window.location MOET HET NIET! Ook daar zit weer een uitzonderin op wanneer je window.location in een HTML attribute heb gezet.

voor de duidelijkheid:

& moet je alleen veranderen in &amp; wanneer deze in een HTML attribute staat. Zelfde voor alle andere vreemde tekens.

<a href="index.php?a=1&b=2"> is dus eigenlijk fout.
dat hoort

<a href="index.php?a=1&amp;b=2"> te zijn.

<body onload="window.lcation='index.php?a=1&amp;b=2' "> is goed omdat het & teken in een HTML attribute staat, namelijk 'onload'.

wanneer je dit echter in de javascript file zet hoef je em niet te escapen. Sterker nog: je mag em niet escapen, want anders doet je link het niet.

ALLES in een HTML tag's attribute tussen " en " moet escaped worden met uitzondering van 'standaard' tekens.

Een korte zelfbedachte vuistregel:
Alle tekens die je op een US international toetsenbord NIET kan intypen met 1 toetsencombinatie ZONDER gebruik van CTRL of ALT, moet je escapen.

de é moet je dus escapen, want je hebt 2 toestencombinaties nodig: Eerst [SHIFT] + ['"] en daarna de [E].

De E hoef je niet te escapen, want die typ je in 1x met [SHIFT] + [E]

De € moet je WEL escapen, want om die te typen moet je [CTRL] + [ALT] + [5] gebruiken. Het is wel 1 toetsencombinatie, maar je maakt gebruik van CTRL + ALT, en dan telt het niet volgens de vuistregel.

Enige uitzonderingen:
in HTML attributen moet je " escapen naar &quot;
buiten tags moet je < en > escapen naar &lt; en &gt;

PHP heeft een ingebouwde functie voor het omzetten van speciale tekens, namelijk htmlentities();.

veel succes :P
lees het vooral rustig door als je het wilt snappen :P

Reageren