Home > database >  Having Issue on Redirecting With Session in WordPress
Having Issue on Redirecting With Session in WordPress

Time:07-01

I am trying to create a simple login system in WordPress using core PHP but I am getting this error message

Warning: Cannot modify header information - headers already sent by (output started at /www/www/www/wp-content/themes/mytheme/header.php:20) in /www/www/www/wp-content/themes/mytheme/page-solutions.php on line 9

In the header.php template I have

<?php
session_start();
/**
 * The header.
 *
 */
?>
<!doctype html>
<html lang="en">
<head>
...

and in the page-solutions.php page

<?php
/**
 * Template Name: Solutions
 *
 */
get_header();

if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: home");
exit;
}

As you can see I am trying to redirect not logged users to front-page.php which I called it Home but I am getting error on header("location: home"); Can you please let me know how to fix this?

CodePudding user response:

Functions that modifies headers must be called before any output is made. In this case you're calling get_header() functions which sends an output, and then youre trying to modify the header. Try changing the order that you execute the code, like this:

<?php
/**
* Template Name: Solutions
*
*/

 if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
 header("location: home");
 exit;
 }

 get_header();
  • Related