Passing sessions problem [SOLVED]

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

Passing sessions problem [SOLVED]

Post by lyleyboy »

Hi, I am building a site that uses one navigation pane that I include on each page. I now need to pass a url to this page.

I have tried to pass this url via sessions and just via a variable.
If I browse to the nav page the session works ok but when it is included into the rest of the script (where the session is created) nothing displays.

HELP!
Last edited by lyleyboy on Mon Sep 17, 2007 11:34 am, edited 1 time in total.
User avatar
CoderGoblin
DevNet Resident
Posts: 1425
Joined: Tue Mar 16, 2004 10:03 am
Location: Aachen, Germany

Post by CoderGoblin »

Can you give a sample of your code..
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

My Code

Post by lyleyboy »

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


This is the main page.

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css_style.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<style type="text/css"> 
/* place css fixes for all versions of IE in this conditional comment */
.twoColElsLt #sclassebar1 { padding-top: 30px; }
.twoColElsLt #mainContent { zoom: 1; padding-top: 15px; }
/* the above proprietary zoom property gives IE the hasLayout it needs to avoclass several bugs */
</style>
<![endif]-->
<title>Flittermouse.com Web based programming</title>
</head>

<body>

<div class="container">
  <div class="left">

		
<?php
//Include the navigation pane.
include('includes/nav_mail.php');

//Page content goes between here
echo "<br/><br/><span class=\"blue_title\">What were working on</span><br/><br/>";
$File = "includes/site_news.txt";
	$fh = fopen($File, 'r');
	$Data = fread($fh, 150);
	fclose($fh);
	echo $Data . "...";
?>
			
  <!--End of page Content-->
  <!-- end #left --></div>
  <div class="right">
    <div class="title"><img src="images/title.png"></div>
		<br />
        
<!--This is the start of the right hand pane-->
		<img src="images/about_fm.png">
		<br />
			
<?php

include('../includes/config.php');

?>
<span class="blue_title"><a href="free/">Free Webscripts and Snippets</a></span><br/>
<?

$query = "SELECT * FROM script_list WHERE price='free' and active='on' ORDER BY NAME"; 
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
	
	echo "<span class=\"plain_text\">";

	echo "<a href=\"" . $row['url'] . "\">" . $row['name'] . " (Version " . $row['version'] . ") <span class=\"red\">Free</span></a><br/>";
	
	echo "</span>";

}

?><br/>
<span class="blue_title"><a href="premium/">Premuim Webscripts</a></span><br/>
<?

$query = "SELECT * FROM script_list WHERE price!='free' and active='on' ORDER BY NAME"; 
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){
	
	echo "<span class=\"plain_text\">";
	echo "<a href=\"" . $row['url'] . "\">" . $row['name'] . " (Version " . $row['version'] . ") </a><br/>";
	//echo $row['name'] . " (Version " . $row['version'] . ") <br/>";

	echo "</span>";
}

?>
			
	<!-- end of right right hand pane--></div>
	<br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>
This is the include.

Code: Select all

<?php
echo $_SERVER['PHP_SELF'];
$url = $_SESSION['url'];
echo $url;
echo $_SESSION['url'];
?>
<img src="images/nav_bg_top.png"><br/>
		<div class="nav">
			
<div><a href="<?php echo $url; ?>/index.php"><img src="images/nav_home.png" alt="Home Link" border="0">SCRIPT HOME</a><br/></div>

<div><a href="<?php echo $url; ?>/sys_req.php"><img src="images/settings.png" alt="System Requirements" border="0">SYSTEM REQUIREMENTS</a><br/></div>

<div><a href="<?php echo $url; ?>/demo"><img src="images/nav_demo.png" alt="Demo" border="0">DEMO</a><br/></div>

<div><a href="<?php echo $url; ?>/rel_notes.php"><img src="images/nav_releasenotes.png" alt="Release Notes" border="0">RELEASE NOTES</a><br/></div>          

<div><a href="<?php echo $url; ?>/download"><img src="images/snav_download.png" alt="Search Scripts" border="0">DOWNLOAD</a><br/></div>

<div><a href="scripts/free"><img src="images/nav_left.png" alt="Back to free scripts" border="0">BACK TO FREE SCRIPTS</a><br/></div>
		
		</div><!--nav-->
		<img src="images/nav_bg_bottom.png">
The first few lines of the include are my desperate attemptes to get this to work.


feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
User avatar
CoderGoblin
DevNet Resident
Posts: 1425
Joined: Tue Mar 16, 2004 10:03 am
Location: Aachen, Germany

Post by CoderGoblin »

Where do you have session_start() ? Note that this command must be used before any output to avoid a headers already sent error.
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

Session

Post by lyleyboy »

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


The session_start() is the first line. I magically didnt copy that part but it is there. It also only occurs once in the index.php I have not put it into the included nav_free.php file as this is then included into the index.

Bit of background to hopefully make things clearer. The index and nav_free are not in the same folder.

Code: Select all

<?php
session_start();
include('../../../includes/config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="http://www.flittermouse.com/scripts/css_style.css" rel="stylesheet" type="text/css" />
<!--[if IE]>
<style type="text/css"> 
/* place css fixes for all versions of IE in this conditional comment */
.twoColElsLt #sclassebar1 { padding-top: 30px; }
.twoColElsLt #mainContent { zoom: 1; padding-top: 15px; }
/* the above proprietary zoom property gives IE the hasLayout it needs to avoclass several bugs */
</style>
<![endif]-->
<title>Flittermouse.com Web based programming</title>
</head>

<body>

<div class="container">
  <div class="left">

		
<?php
//Setup the navigation
$File = "inc_id.txt";
	$fh = fopen($File, 'r');
	$file_id = fread($fh, 100);
	fclose($fh);
	echo $file_id;
$query = "SELECT * FROM script_list WHERE id='$file_id'"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){

	$url = $row['url'];
	}
	$_SESSION['url'] = $url;
	echo $_SESSION['url'];
	echo $url;
//Include the navigation pane.
//include('http://www.flittermouse.com/includes/nav_free.php');
$File = "http://www.flittermouse.com/includes/nav_free.php";
	$fh = fopen($File, 'r');
	$nav = fread($fh, 10000);
	fclose($fh);
	echo $nav;

//Page content goes between here
//Read ID from file
$File = "inc_id.txt";
	$fh = fopen($File, 'r');
	$file_id = fread($fh, 100);
	fclose($fh);
$query = "SELECT * FROM script_list WHERE id='$file_id'"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
	
	$xhtml = $row['xhtml'];
	$java =  $row['java'];
	$php = $row['php'];
	$asp = $row['asp'];
	$cgi = $row['cgi'];
	$css = $row['css'];
	}
echo "<span class=\"blue_title\">Languages used</span><br/>";
	if($xhtml=="on"){
	echo "<img src=\"http://www.flittermouse.com/images/xhtml.png\" alt=\"XHTML\">";
	$xhtml_disp = "XHTML";
	}
	if ($java=="on"){
	echo "<img src=\"http://www.flittermouse.com/images/js.png\" alt=\"Javascript\">";
	$java_disp = "Javascript";
	}
	if ($php=="on"){
	echo "<img src=\"http://www.flittermouse.com/images/php.png\" alt=\"PHP\">";
	$php_disp = "PHP";
	}
	if ($asp=="on"){
	echo "<img src=\"http://www.flittermouse.com/images/asp.png\" alt=\"ASP\">";
	$asp_disp="ASP";
	}
	if ($cgi=="on"){
	echo "<img src=\"http://www.flittermouse.com/images/cgi.png\" alt=\"CGI\">";
	$cgi_disp="CGI";
	}
	if ($css=="on"){
	echo "<img src=\"http://www.flittermouse.com/images/css.png\" alt=\"CSS\">";
	$css_disp="CSS";
	}
	echo "<br/>This script was written using the following coding languages:-<br/>";
	echo $xhtml_disp . "<br/>";
	echo $java_disp . "<br/>";
	echo $php_disp . "<br/>";
	echo $asp_disp . "<br/>";
	echo $cgi_disp . "<br/>";
	echo $css_disp . "<br/>";
?>
			
  <!--End of page Content-->
  <!-- end #left --></div>
  <div class="right">
    <div class="title"><img src="http://www.flittermouse.com/images/title.png"></div>
		<br /><br /><br /><br />
        
<!--This is the start of the right hand pane-->
				
<?php
//Read ID from file
$File = "inc_id.txt";
	$fh = fopen($File, 'r');
	$file_id = fread($fh, 100);
	fclose($fh);
	
$query = "SELECT * FROM script_list WHERE id='$file_id' and active='on'"; 
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
	
	echo "<span class=\"blue_title\">" . $row['name'] . "</span><br/><br/>";
	echo $row['description'];
	}


?>
<br/>

			
	<!-- end of right right hand pane--></div>
	<br class="clearfloat" />
<!-- end #container --></div>
</body>
</html>

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Re: Session

Post by volka »

lyleyboy wrote:I magically didnt copy that part but it is there.
So this is the "real" code that replaces the first version (suggested working title:"fairy tale" )? ;)
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

Correct

Post by lyleyboy »

Not sure why it didnt copy cos it did the second time. Who knows?
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

please replace
<?php
session_start();
include('../../../includes/config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
by

Code: Select all

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('mysql.trace_mode', true);

session_start();
include('../../../includes/config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
and
$query = "SELECT * FROM script_list WHERE id='$file_id'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){

$url = $row['url'];
}
$_SESSION['url'] = $url;
echo $_SESSION['url'];
echo $url;
//Include the navigation pane.
by

Code: Select all

$query = "SELECT * FROM script_list WHERE id='$file_id'";
echo '<div>Debug query: "', htmlentities($query), "\"</div>\n";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)) {
  $url = $row['url'];
  echo '<div>Debug url: "', htmlentities($url), "\"</div>\n";
}
$_SESSION['url'] = $url;
echo $_SESSION['url'];

//Include the navigation pane.
and try again
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

Nice pretty error message

Post by lyleyboy »

Debug query: "SELECT * FROM script_list WHERE id='4'"
Debug url: "http://www.flittermouse.com/scripts/free/javadd"
http://www.flittermouse.com/scripts/fre ... v_free.php
Home LinkSCRIPT HOME


Notice: Undefined variable: php_disp in /homepages/8/d92992469/htdocs/Flittermouse/scripts/free/javadd/index.php on line 100


Notice: Undefined variable: asp_disp in /homepages/8/d92992469/htdocs/Flittermouse/scripts/free/javadd/index.php on line 101


Notice: Undefined variable: cgi_disp in /homepages/8/d92992469/htdocs/Flittermouse/scripts/free/javadd/index.php on line 102


Notice: Undefined variable: css_disp in /homepages/8/d92992469/htdocs/Flittermouse/scripts/free/javadd/index.php on line 103



Warning: (null)() [function.mysql-free-result]: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Re: Nice pretty error message

Post by volka »

:?:
echo $_SESSION['url']; prints something else than echo '<div>Debug url: "', htmlentities($url), ""</div>\n";?

For clarity's sake please try again with

Code: Select all

echo 'session: "', $_SESSION['url'], '" ';

//Include the navigation pane.
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

I hope you know what this means

Post by lyleyboy »

Debug query: "SELECT * FROM script_list WHERE id='4'"
Debug url: "http://www.flittermouse.com/scripts/free/javadd"
session: "http://www.flittermouse.com/scripts/free/javadd" /includes/nav_free.php

Warning: (null)() [function.mysql-free-result]: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0

These two overlap on the screen due to the css so they might be in the wrong order.
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

Ok, now you have $_SESSION['url'].
Where do you want to use this variable and where is it not present?
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

The other page (Include)

Post by lyleyboy »

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


This is supposed to show in the other page. The Include.

Each Div below is simply an icon and text link for the nav. It should set up the front part of the url.

so:-

Code: Select all

<a href="<?php echo $url; ?>/index.php">
should read

Code: Select all

<a href="http://www.url.com/index.php">

Code: Select all

<?php
echo $_SERVER['PHP_SELF'];
$url = $_SESSION['url'];
echo $url;
echo $_SESSION['url'];
?>
<img src="http://www.flittermouse.com/images/nav_bg_top.png"><br/>
		<div class="nav">
			
<div><a href="<?php echo $url; ?>/index.php"><img src="http://www.flittermouse.com/images/nav_home.png" alt="Home Link" border="0">SCRIPT HOME</a><br/></div>

<div><a href="<?php echo $url; ?>/sys_req.php"><img src="http://www.flittermouse.com/images/settings.png" alt="System Requirements" border="0">SYSTEM REQUIREMENTS</a><br/></div>

<div><a href="<?php echo $url; ?>/demo"><img src="http://www.flittermouse.com/images/nav_demo.png" alt="Demo" border="0">DEMO</a><br/></div>

<div><a href="<?php echo $url; ?>/rel_notes.php"><img src="http://www.flittermouse.com/images/nav_releasenotes.png" alt="Release Notes" border="0">RELEASE NOTES</a><br/></div>          

<div><a href="<?php echo $url; ?>/download"><img src="http://www.flittermouse.com/images/snav_download.png" alt="Search Scripts" border="0">DOWNLOAD</a><br/></div>

<div><a href="http://www.flittermouse.com/scripts/free"><img src="http://www.flittermouse.com/images/nav_left.png" alt="Back to free scripts" border="0">BACK TO FREE SCRIPTS</a><br/></div>
		
		</div><!--nav-->
		<img src="http://www.flittermouse.com/images/nav_bg_bottom.png">

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

Next debug output session ;)
please replace
<?php
echo $_SERVER['PHP_SELF'];
$url = $_SESSION['url'];
echo $url;
echo $_SESSION['url'];
?>
by

Code: Select all

<?php
echo '<pre>Debug call stack: ', print_r(debug_backtrace()), "</pre>\n";
echo '<pre>Debug _SESSION: ', print_r($_SESSION), "</pre>\n";
echo $_SERVER['PHP_SELF'];
$url = $_SESSION['url'];
?>
lyleyboy
Forum Commoner
Posts: 27
Joined: Sat Mar 18, 2006 5:05 am
Location: Birmingham, UK

Could be in the wrong order

Post by lyleyboy »

Debug query: "SELECT * FROM script_list WHERE id='4'"
Debug url: "http://www.flittermouse.com/scripts/free/javadd"
session: "http://www.flittermouse.com/scripts/free/javadd"

Debug call stack: Array
(
)
1

Debug _SESSION: 1

/includes/nav_free.php



Warning: (null)() [function.mysql-free-result]: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0
Post Reply