Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why include() don't allow to work setcookie? [duplicate]

Tags:

php

i need to set cookies in my page, but it returns

Warning: Cannot modify header information - headers already sent by (output started at /home1/bsam/public_html/24kadr/index.php:1) in /home1/bsam/public_html/24kadr/basic_login.php  on line 35

on line 1 i have

include 'basic_login.php'; 

but even if i remoove include, ir returns the same warning on session_start, or mysql_connect. so i think these all functions use header when calling, but what can i do? at least i need to connect to database, and just after it i need to use setcookie(). so what can i do? thanks

update the first lines of index.php

<?include 'basic_login.php';include 'settings.php';?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
...........

in basic_login.php it starts

<?
session_start();
include 'connect.php';
ini_set("session.bug_compat_42",1);
ini_set("session.bug_compat_warn",0);

..........................................

setcookie("cookname", $_SESSION['username'], time()+60*60*24*30, "/");
setcookie("cookpass", $_SESSION['password'], time()+60*60*24*30, "/");

like image 734
Simon Avatar asked Feb 27 '23 05:02

Simon


1 Answers

You most likely have white space in /24kadr/index.php before the opening <?php. Remove it and it should be fine.

If there is no white space, maybe your PHP file was saved with a Byte Order Mark (BOM). In that case, have your editor save the file without it.

like image 128
Pekka Avatar answered Mar 05 '23 11:03

Pekka