Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

session_start() and header('location:') redirect [duplicate]

Tags:

php

Possible Duplicate:
Headers already sent by PHP

I'm having a problem with session_start() and header('Location:') on a log out php file.

I'm linking to the log out file using a simple anchor tag from a html file. The logout php file is this:

<?php
session_start();
session_destroy();
header("Location: index.php");
?> 

To see where the errors where I used,

error_reporting(E_ALL);
ini_set('display_errors', '1');

I got a warning that "Warning: session_start(): Cannot send session cache limiter - headers already sent" on line 4 (where session_start(); is) and Warning: Cannot modify header information - headers already sent on line 6 (where header('Location') is).

I've had a look around for others who have had similar problems. I've made sure there's no whitespace before the session_start(). Nothing is being outputted before it. I've tried only setting session_start() if it's not already set. I've tried buffering it with ob_start(). I tried a relative and absolute path for the redirect just to make sure. But nothing has worked.

Am I missing something? Any help is much appreciated.

like image 776
nerdarama Avatar asked Dec 17 '25 14:12

nerdarama


1 Answers

check out BOM

http://en.wikipedia.org/wiki/Byte_order_mark

in notepad++ - encoding -> utf8 without BOM

EDIT

just to comment - you should use exit; after header("Location...") to make sure nothing else will run, as recommended in http://php.net/manual/en/function.header.php

like image 121
galchen Avatar answered Dec 20 '25 06:12

galchen



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!