header ("location: $goto_url"); ERROR
Ik heb een pagina waarop een script een update uitvoert in een database.
Aan het einde van dit script wil ik de gebruiker naar een pagina leiden waarop de updat gelijk te zien is.
Ik doe dit als volgt:
Code (php)
1
2
3
4
2
3
4
<?php
$ga_url = "../todo/todo_RS_CLOSED.php?id=" . $idU;
header ("location: $ga_url");
?>
$ga_url = "../todo/todo_RS_CLOSED.php?id=" . $idU;
header ("location: $ga_url");
?>
Ik krijg echter de volgende error te zien:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\xampp\htdocs\sup\uitvoer\U_td.php:20) in D:\xampp\xampp\htdocs\sup\uitvoer\U_td.php on line 37
Weet iemand misschien wat hier het probleem is?
Alvast bedankt.
Grt, Kabbi
En bekijk ook even de FAQ van de site
GR. mebus
Ik krijg het nog steeds niet voor elkaar om na het uitvoeren van de pdate de pagina te redirecten.
Ik zal in de faq kijken. Het zoeken in het forum leverde mij niks op.
Grt.
Kabbi
Met een meta redirection?
Bedankt i.i.g!
grt
Ik snap toch niet precies waarom het niet lukt.
Er wordt geklaagd dat de headers al verzonden zijn:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\xampp\htdocs\sup\uitvoer\U_td.php:4) in D:\xampp\xampp\htdocs\sup\uitvoer\U_td.php on line 37
Hoe is dit nu op te lossen, uitgaande van onderstaand script?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$colname_TDst = "-1";
if (isset($_GET['id'])) {
$colname_TDst = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
$idU= $colname_TDst;
mysql_select_db($database_wsup, $wsup);
$query_TDst = sprintf("SELECT * FROM todo WHERE td_id = %s ORDER BY td_datumE ASC", $colname_TDst);
$TDst = mysql_query($query_TDst, $wsup) or die(mysql_error());
$row_TDst = mysql_fetch_assoc($TDst);
$totalRows_TDst = mysql_num_rows($TDst);
mysql_free_result($TDst);
?>
$colname_TDst = "-1";
if (isset($_GET['id'])) {
$colname_TDst = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
$idU= $colname_TDst;
mysql_select_db($database_wsup, $wsup);
$query_TDst = sprintf("SELECT * FROM todo WHERE td_id = %s ORDER BY td_datumE ASC", $colname_TDst);
$TDst = mysql_query($query_TDst, $wsup) or die(mysql_error());
$row_TDst = mysql_fetch_assoc($TDst);
$totalRows_TDst = mysql_num_rows($TDst);
mysql_free_result($TDst);
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$opdracht = "UPDATE todo SET td_status = 'closed' WHERE td_id = $colname_TDst";
mysql_query($opdracht);
$date = date('Y-m-d');
$opdracht2 = "UPDATE todo SET td_dateS = '$date' WHERE td_id = $colname_TDst";
mysql_query($opdracht2);
mysql_close();
?>
$opdracht = "UPDATE todo SET td_status = 'closed' WHERE td_id = $colname_TDst";
mysql_query($opdracht);
$date = date('Y-m-d');
$opdracht2 = "UPDATE todo SET td_dateS = '$date' WHERE td_id = $colname_TDst";
mysql_query($opdracht2);
mysql_close();
?>
Code (php)
1
2
3
4
2
3
4
<?php
$ga_url = "../todo/todo_RS_CLOSED.php?id=" . $idU;
header ("location: $ga_url");
?>
$ga_url = "../todo/todo_RS_CLOSED.php?id=" . $idU;
header ("location: $ga_url");
?>
Het zou toch gewoon moeten werken?
Vrgr,
Kabbi
Even een post voor iedereen met hetzelfde probleem.
De error:
Warning: Cannot modify header information - headers already sent by(output started at.....) ..
Kan worden veroorzaakt door whitespaces voor en na de open en close tags van php
Door deze weg te halen heb ik het kunnen oplossen iig!
Grt,
Kabbi
Gewijzigd op 01/01/1970 01:00:00 door kabbi
maar het beste is gewoon header('...'); helemaal bovenaan je pagina.
Is dat netter ofzo?
Als je het goed doet kan je deze errors makkelijk vermijden hoor!
En hoef je ook geen gebruik te maken van ob_start();
GR. mebus