473,378 Members | 1,403 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

header/session start question

Hi.

I am having a few header problems at the moment with a login page. I
don't have my headers at the top of the page where I've learned I need
to have them. However, I also know I'm supposed to have the
session_start(); at the top of the page as well. So when you have two
things that need to be the first which do you put first? And if I put
one before the other will that cause problems?

Below is a copy of the php from my page. It is the header("Location:
". parts at the bottom in the registering session variables section
that causes the error. Would I just lift out the header locations
parts and put them to the top?

Thanks for any help

John


<?php
session_start();
// *** Validate request to login to this site.
//session_start();
// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
?>

<?php require_once('Connections/conn_newland.php'); ?>

<?php

// *** Validate request to login to this site.
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}

if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['pwd'];
$MM_fldUserAuthorization = "userGroup";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login_failed.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn_newland, $conn_newland);

$LoginRS__query=sprintf("SELECT username, pwd, userGroup FROM
tbl_users WHERE username='%s' AND pwd='%s'",
get_magic_quotes_gpc() ? $loginUsername :
addslashes($loginUsername), get_magic_quotes_gpc() ? $password :
addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $conn_newland) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'userGroup');

//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;

//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>

Jul 17 '05 #1
6 3405
John wrote:
I am having a few header problems at the moment with a login page. I
don't have my headers at the top of the page where I've learned I need
to have them. However, I also know I'm supposed to have the
session_start(); at the top of the page as well. So when you have two
things that need to be the first which do you put first? And if I put
one before the other will that cause problems?


What header problems do you have? Starting with a call to session_start(),
followed by a header() call shouldn't cause any problems.

Even several header() calls do not cause errors, because headers are send
only when content is displayed or at the end of the script (whatever comes
first):

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");

// headers are send
print "Hello";

// Error because the headers are already sent
header("Location: http://example.com/");
?>

Or:

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");
header("Location: http://example.com/");

// No more lines of code, headers will be send
?>

Even the above examples would work when you instruct PHP to wait sending the
output through output buffering (see http://www.php.net/ob_start).
JW

Jul 17 '05 #2
On Sun, 24 Oct 2004 09:22:26 +0200, A strange species called
"Janwillem Borleffs" <jw@jwscripts.com> wrote:
What header problems do you have? Starting with a call to session_start(),
followed by a header() call shouldn't cause any problems.

Even several header() calls do not cause errors, because headers are send
only when content is displayed or at the end of the script (whatever comes
first):

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");

// headers are send
print "Hello";

// Error because the headers are already sent
header("Location: http://example.com/");
?>

Or:

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");
header("Location: http://example.com/");

// No more lines of code, headers will be send
?>

Even the above examples would work when you instruct PHP to wait sending the
output through output buffering (see http://www.php.net/ob_start).
JW


Hi.

I receive the following error:

Warning: Cannot modify header information - headers already sent by
(output started at /home/xxxxx/public_html/newland/login.php:11) in
/home/xxxxx/public_html/newland/login.php on line 55

This is line 55 to 61 below:

header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>

Do I just move that to the top then after the session start?

John

<?php
session_start();
// *** Validate request to login to this site.
//session_start();
// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
?>

<?php require_once('Connections/conn_newland.php'); ?>

<?php

// *** Validate request to login to this site.
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}

if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['pwd'];
$MM_fldUserAuthorization = "userGroup";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login_failed.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn_newland, $conn_newland);

$LoginRS__query=sprintf("SELECT username, pwd, userGroup FROM
tbl_users WHERE username='%s' AND pwd='%s'",
get_magic_quotes_gpc() ? $loginUsername :
addslashes($loginUsername), get_magic_quotes_gpc() ? $password :
addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $conn_newland) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'userGroup');

//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;

//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
Jul 17 '05 #3
John <do*@tanion.com> wrote in
news:ho********************************@4ax.com:
On Sun, 24 Oct 2004 09:22:26 +0200, A strange species called
"Janwillem Borleffs" <jw@jwscripts.com> wrote:
What header problems do you have? Starting with a call to
session_start(), followed by a header() call shouldn't cause any
problems.

Even several header() calls do not cause errors, because headers are
send only when content is displayed or at the end of the script
(whatever comes first):

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");

// headers are send
print "Hello";

// Error because the headers are already sent
header("Location: http://example.com/");
?>

Or:

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");
header("Location: http://example.com/");

// No more lines of code, headers will be send
?>

Even the above examples would work when you instruct PHP to wait
sending the output through output buffering (see
http://www.php.net/ob_start).
JW


Hi.

I receive the following error:

Warning: Cannot modify header information - headers already sent by
(output started at /home/xxxxx/public_html/newland/login.php:11) in
/home/xxxxx/public_html/newland/login.php on line 55

This is line 55 to 61 below:

header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>

Do I just move that to the top then after the session start?

John

<?php
session_start();
// *** Validate request to login to this site.
//session_start();
// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
?>

<?php require_once('Connections/conn_newland.php'); ?>

<?php

// *** Validate request to login to this site.
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}

if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['pwd'];
$MM_fldUserAuthorization = "userGroup";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login_failed.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn_newland, $conn_newland);

$LoginRS__query=sprintf("SELECT username, pwd, userGroup FROM
tbl_users WHERE username='%s' AND pwd='%s'",
get_magic_quotes_gpc() ? $loginUsername :
addslashes($loginUsername), get_magic_quotes_gpc() ? $password :
addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $conn_newland) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'userGroup');

//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;

//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>


whats in your require_once file?
Jul 17 '05 #4
On Sun, 24 Oct 2004 20:39:13 -0000, A strange species called Theo
<in*****@noemail.com> wrote:
John <do*@tanion.com> wrote in
news:ho********************************@4ax.com :
On Sun, 24 Oct 2004 09:22:26 +0200, A strange species called
"Janwillem Borleffs" <jw@jwscripts.com> wrote:
What header problems do you have? Starting with a call to
session_start(), followed by a header() call shouldn't cause any
problems.

Even several header() calls do not cause errors, because headers are
send only when content is displayed or at the end of the script
(whatever comes first):

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");

// headers are send
print "Hello";

// Error because the headers are already sent
header("Location: http://example.com/");
?>

Or:

<?php

// header not send
header("X-Header: Foo");
header("X-Header-Description: Bar");
header("Location: http://example.com/");

// No more lines of code, headers will be send
?>

Even the above examples would work when you instruct PHP to wait
sending the output through output buffering (see
http://www.php.net/ob_start).
JW


Hi.

I receive the following error:

Warning: Cannot modify header information - headers already sent by
(output started at /home/xxxxx/public_html/newland/login.php:11) in
/home/xxxxx/public_html/newland/login.php on line 55

This is line 55 to 61 below:

header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>

Do I just move that to the top then after the session start?

John

<?php
session_start();
// *** Validate request to login to this site.
//session_start();
// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
?>

<?php require_once('Connections/conn_newland.php'); ?>

<?php

// *** Validate request to login to this site.
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}

if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['pwd'];
$MM_fldUserAuthorization = "userGroup";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login_failed.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn_newland, $conn_newland);

$LoginRS__query=sprintf("SELECT username, pwd, userGroup FROM
tbl_users WHERE username='%s' AND pwd='%s'",
get_magic_quotes_gpc() ? $loginUsername :
addslashes($loginUsername), get_magic_quotes_gpc() ? $password :
addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $conn_newland) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'userGroup');

//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;

//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>


whats in your require_once file?


That contains a database with a few different tables. One of the
tables has all the usernames and passwords for people who register.
This current page that I'm having these problems with is the login
page.

Cheers

John
Jul 17 '05 #5
John <qu**@duck.com> wrote in news:r83pn091afpila6kb4kg8uj6k4bcajijcl@
4ax.com:
That contains a database with a few different tables. One of the
tables has all the usernames and passwords for people who register.
This current page that I'm having these problems with is the login
page.

Cheers

John


unless Im mistaken the line requiring that file is the one it doesnt
like. So maybe something in it is causing the problem.

I use something similar... a correct login redirects to the next page,
and its in a function call. But for it to work the call must be made
before there are any print statements or html code of any kind (not
incluind sprintf, which doesnt output anything). Also, try putting an
exit() after each header, just in case.
Jul 17 '05 #6
I would say the errors are the spaces you introduced and these were output
(Marked with "HERE >" in your code). Once a character is send, which is
HTML, no header can be sent anymore, hence the error when you send the
Location header. You should remove any text outside the PHP tags also in the
required file.
--
René
comunica2.com
Web Hosting, design and translations

<?php
session_start();
// *** Validate request to login to this site.
//session_start();
// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);
?> HERE > <?php require_once('Connections/conn_newland.php'); ?> HERE >
HERE >
HERE > <?php

// *** Validate request to login to this site.
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}

if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['pwd'];
$MM_fldUserAuthorization = "userGroup";
$MM_redirectLoginSuccess = "index.php";
$MM_redirectLoginFailed = "login_failed.php";
$MM_redirecttoReferrer = true;
mysql_select_db($database_conn_newland, $conn_newland);

$LoginRS__query=sprintf("SELECT username, pwd, userGroup FROM
tbl_users WHERE username='%s' AND pwd='%s'",
get_magic_quotes_gpc() ? $loginUsername :
addslashes($loginUsername), get_magic_quotes_gpc() ? $password :
addslashes($password));

$LoginRS = mysql_query($LoginRS__query, $conn_newland) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {

$loginStrGroup = mysql_result($LoginRS,0,'userGroup');

//declare two session variables and assign them
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;

//register the session variables
session_register("MM_Username");
session_register("MM_UserGroup");

if (isset($_SESSION['PrevUrl']) && true) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: ". $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>

Jul 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Stijn Goris | last post by:
Hi all, I have a question regarding the header function. I send a browser to a certain page (eg first.php ) wich sends no output to the browser. This page sends the browser to another page (eg...
6
by: Lochness | last post by:
I'm hoping someone can help me with this. I've seen and tried various solutions I've seen on the net, but nothing works. Of course it works perfectly on localhost, but when I upload it to the...
2
by: Fredrik Olsson | last post by:
I have dynamic library in a DLL. With a standard c header file to it. Writing a simple COM-wrapper in Visual Basic 6 was quite simple, and proves effective in providing my library's functionality...
23
by: lwoods | last post by:
I am trying to pass some info to another page on my site. I set "session_start()" in page 1, assign a session variable to a value, then execute a "header('Location: ....')." But on the target...
4
by: geshan | last post by:
In php5 I am not able to use include funciton and header("location:""" together please help.
1
by: kgcsinte | last post by:
I hope someone can help with this one. This is a include file that is used to check if a user is logged in before displaying a page. I get this error when any page that references the include...
6
by: Joseph Geretz | last post by:
I have the following class which I am serializing and passing back and forth between my Web Service application and the client. public class Token : SoapHeader { public string SID; public...
9
by: upendrajpr | last post by:
Hi everybody, I am working with site development with PHP. My problem is I have made a header file of header.inc . I use php function for session start but I when I to to php file for some...
9
by: wizardry | last post by:
hello - if session is started from the same page, and i have another script that needs to access header data with out destorying the session data. a. should i store the header info in variables...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.