browse: forums | FAQ
Connecting Tech Pros Worldwide

Hey there! Do you need PHP help?

Get answers from our community of PHP experts on BYTES! It's free.

Accessing variables on different pages

James
Guest
 
Posts: n/a
#1: Jul 17 '05
Hi, I am trying to build a shopping cart for my DVD website and am having
trouble reading variable over different pages.

I have a page that allows the user to add things to their cart and this page
also display what they have selected. I also am trying to build a 'checkout'
page that displays the DVDs they have chosen, the cost and allows them to
remove a DVD from their cart.

However, I can't even get the checkout page to display the list of DVDs that
is displayed on the other page. Globals variables have been turned off on
the server I am using.

Any help with this would be great.

Here is the code I was referring to:

<?php

// this section creates a session, connects to the db and handles the two
buttons being pressed.
session_start();
session_register("trolley");

require ('mysql.php');
mysql_connect ($host, $user, $passwd);
mysql_select_db ($dbName);

if (isset ($_GET['add']))
$_SESSION['trolley'][] = $_GET['add'];
else if ($_GET['op'] === 'clear')
$_SESSION['trolley'] = "";

$_GET['getdvds_query'];
$_GET['search_text'];
$_GET['search_in'];
$_GET['genrename'];
?>

<html>
<head>
<title>PHP & MySQL</title>
</head>

<table>
<?php

if ($search_in == "title") {
$getdvds_query = mysql_query ("SELECT dvdid, title, duration, rel, descr,
genre, stock, price FROM dvd where title LIKE '%$search_text%'");
}
else if ($search_in == "director") {
$getdvds_query = mysql_query ("select dvd.dvdid, dvd.title, dvd.duration,
dvd.rel, dvd.descr, dvd.genre, dvd.stock, dvd.price from dvd, director where
director.name like '%$search_text%'");
}
else if ($search_in == "actor") {
$getdvds_query = mysql_query ("select dvd.dvdid, dvd.title, dvd.duration,
dvd.rel, dvd.descr, dvd.genre, dvd.stock, dvd.price from dvd, actordvd,
actor where actor.actorid = actordvd.actorid and actordvd.dvdid = dvd.dvdid
and actor.name like '%$search_text%'");
}

else

$getdvds_query = mysql_query ("SELECT dvdid, title, duration, rel, descr, ge
nre, stock, price FROM dvd where genre LIKE '%$genrename%'");

if(!$getdvds_query) {
die("No result, error: ".mysql_error());
}

echo "<table bgcolor=\"ddeeff\"><thead><tr>";
for ( $i = 1 ; $i < mysql_num_fields($getdvds_query) ; $i++ ) {
echo "<th bgcolor=\"abcdef\">" .
mysql_field_name($getdvds_query,$i) . "</th>\n";
}

if ( mysql_num_rows($getdvds_query) > 0 )
{
while ( $row = mysql_fetch_assoc($getdvds_query) )
{
$dvd[$row['dvdid']] = $row;
echo "<tr>\n";
echo "<td>{$row['title']}</td>\n";
echo "<td>{$row['duration']}</td>\n";
echo "<td>{$row['rel']}</td>\n";
echo "<td>{$row['descr']}</td>\n";
echo "<td>{$row['genre']}</td>\n";
echo "<td>{$row['stock']}</td>\n";
echo "<td>{$row['price']}</td>\n";

echo "<td><a
href=\"start.php?main=search&add={$row[dvdid]}\">add to basket</a></td>";
echo "</tr>\n";
}
}

?>
</table>
<a href="start.php?main=search&op=clear">empty trolley</a><br /><br />
<a href="start.php?main=checkout&trolley<?=SID?>">Che ckout</a><br /><br />

<?php
//this section outputs basket contents
if (!empty ($_SESSION['trolley']))
{
echo 'Trolley contents:<br />';

foreach ($_SESSION['trolley'] as $trolley_item)
echo $dvd[$trolley_item]['title']."<br />";
}
else
echo 'Trolley is empty!';
?>

</body>
</html>

Here is my checkout page:

<?php

// this section creates a session, connects to the db and handles the two
buttons being pressed.
session_start();
session_register("trolley");
session_register("add");

require ('mysql.php');
mysql_connect ($host, $user, $passwd);
mysql_select_db ($dbName);

$_SESSION['trolley'];

if (!empty ($_SESSION['trolley']))
{

echo 'Trolley contents:<br />';
echo "<table bgcolor=\"ddeeff\"><thead><tr>";

foreach ($_SESSION['trolley'] as $trolley_item)
echo "<tr>\n";
echo $dvd[$trolley_item]['title']."<br />";
echo $dvd[$trolley_item]['price']."<br />";
echo "</tr>\n";
}
else
{
echo 'Trolley is empty!';
}

?>







Pedro Graca
Guest
 
Posts: n/a
#2: Jul 17 '05

re: Accessing variables on different pages


James wrote:
(snip)[color=blue]
> Any help with this would be great.
>
> Here is the code I was referring to:
>
><?php[/color]

// make PHP report the use of unintialized variables
error_reporting(E_ALL);
ini_set('display_errors', '1');
[color=blue]
>
> // this section creates a session, connects to the db and handles the two
> buttons being pressed.
> session_start();
> session_register("trolley");[/color]

http://www.php.net/session_register

Caution: If your script uses session_register() it will not work in
environments where the PHP directive *register_globals* is disabled.


(snip)[color=blue]
></table>
><a href="start.php?main=search&op=clear">empty trolley</a><br /><br />
><a href="start.php?main=checkout&trolley<?=SID?>">Che ckout</a><br /><br />[/color]
_________________________________^^^^^^^^^^^^^^^^

Something like "&trolleyfedcba9876543210fedcba9876543210" ?
Are you perhaps missing a '=' after "trolley" ?

(snip)


You have quite a few statements without effect throughout your code:

<?php

$_GET['id']; // statement without effect
// AFAICT this does absolutely nothing

?>
--
USENET would be a better place if everybody read: : mail address :
http://www.catb.org/~esr/faqs/smart-questions.html : is valid for :
http://www.netmeister.org/news/learn2quote2.html : "text/plain" :
http://www.expita.com/nomime.html : to 10K bytes :
James
Guest
 
Posts: n/a
#3: Jul 17 '05

re: Accessing variables on different pages


Pedro, thanks for your advice. It's a bit late now but I'll work on the code
some more tomorrow. If anyone else has any more help I would be very
grateful.


Closed Thread