Goedeavond,

Ik heb een probleem met dit fromulier:


<?php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// post verzoek afhandelen
// ...
//echo '<pre>' . print_r($_POST, 1) . '</pre>';
$msg = "<div>tekst1</div> <div>tekst2</div>

header('location: http://www.website.nl/pagina.php?id=$id';);
}
?>
<html>
...
<fotm ...> ...
</form>
...
</html>

?>

Het formulier werkt, maar ik krijg de msg niet te zien. Dus hij leest het variabel $msg niet (Denk ik!).

Dus ik dacht ik zal het variabel zo oproepen (In de url):

header('location: http://www.website.nl/pagina.php?id=$id&msg=$msg');

maar ik kreeg deze foutmelding: Warning: Header may not contain more than a single header, new line detected. in /hsphere/local/home/xxxxx/xxxx.nl/pagina.php on line 288

Hoe moet ik dat oplossen?
Alvast bedankt,
Sara
waarschijnlijk staan er in de msg variabele karakters die niet in url mogen voorkomen.
je zou rawurlencode() kunnen gebruiken.

met de post methode heb je dit probleem niet

Ja, passeer de variabelen door urlencode (of dergelijke functies...)
<?php
header('location: http://www.website.nl/pagina.php?id='; . (int) $id . '&msg=' . urlencode($msg) );
?>

en dan daar aangekomen ...
<?php
$msg = urldecode($_GET['msg']);
?>
Note:

The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.

Van de [php]urldecode[/php] manual pagina. Dus geen urldecode gebruiken als je met GET parameters werkt!
Je heb je variabele $message niet afgesloten met een " aan het eind.
Komt dit stuk code letterlijk uit je php pagina ?
waarom geef je volledige url mee aan header? Je kunt toch gewoon header('pagina.php?id=" . $_GET['id']);
En vanuit t stuk code, staat ook nergens een echo $msg;
Dennis WhoCares op 27/12/2012 12:30:14

Komt dit stuk code letterlijk uit je php pagina ?
waarom geef je volledige url mee aan header? Je kunt toch gewoon header('pagina.php?id=" . $_GET['id']);
En vanuit t stuk code, staat ook nergens een echo $msg;




Als je goed kijkt, heeft ze de pagina ingekort om honderden regels text te voorkomen :)
Wat is het probleem?
In je topictitel gaat het over header en in je vraag gaat het om het tonen van $msg.

Je kent wel een waarde toe aan $msg, maar je doet er verder niets mee (in de getoonde code).
De waarde in de variabele $msg 'verdwijnt' op het moment van de header.

Zou overigens bij echo ' gebruiken en de variabel $id buiten quotes halen.
Voeg een exit toe na de header.

Reageren