Hello,
I am trying to build a simple php form based shopping cart using a cookie with arrays. I need to use 1 cookie because each order will have over 20 items. With that said, I realize I need to serialize the data to put the array into the cookie. That part of my code is working just fine and displaying fine. The problem I’m having is when I try to unserialize and display; the data does not appear. If I remove my unserialize command line (see page 3) the data displays just fine with the serialization added to it.
So basically I need help unserializing and displaying the data so I can display it in my shopping cart nice and clean. Here is page 1(index2.php) which is a form that asks for opening name, width and height.
<?php
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'] + 1;
} else {
$count = 1;
}
setcookie('count', $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
echo "$count";
echo "<form action='add.php?id=$count' method='post'>
<input name='name' type='hidden' value='$count'>
Opening name<br>
<input name='name' type='text' size='30'>
</b></p>
<p><b> Width<br>
<input name='w' type='text' size='30'>
</b></p>
<p><b> Height<br>
<input name='h' type='text' size='30'>
</b></p>
<p>
<input type='image' src='../images/Start-Order.gif' name='submit' alt='Start Order'>
<br>
</p>
</form>";
?> The second page(add.php) receives the data, creates a serialized array and adds it to the cookie just fine.
<?php
$count= $_GET['id'];
$name= $_POST['name'];
$w= $_POST['w'];
$h= $_POST['h'];
$serialized_data = serialize (array ($count, $name, $w, $h));
setcookie("mycookie[$count]", $serialized_data, time()+13600);
echo "Opening was Added<br><br>";
echo "$count";
echo "<br><br>";
echo "$name";
echo "$w";
echo "$h";
echo "<br><br>";
echo "<a href='index2.php'>Add another opening!</a><br>";
echo "<a href='show.php'>Show!</a><br>";
?> Where the problem is when you click show (show.php) you see the serialized data.
I am trying to restore the data with an unserialize (see below line 8), but when I add that line of code, my data disappears instead of being stripped of the serialization. When I remove line 8, the data displays serialized.
So something is wrong, I guess with my unserialize method.
<?php
if($_COOKIE["mycookie"]) {
foreach( $_COOKIE[mycookie] as $key => $value)
{
$value2 = unserialize ($value);
echo "Number $key : Description $value2";
}
echo "<a href='index2.php'>Add Opening</a><br><br>";
}
else {
print "No Items in your cart<br><br>";
echo "<a href='index2.php'>Add Opening</a><br><br>";
}
?> I have tried all weekend long and could use some help! Thanks
-Mr L8Knight 4 6983 Banfa 9,065
Expert Mod 8TB
You have not provide sample input and output data (particularly value and value2 from page 3) which complicates the matter of diagnosing the problem.
However I can't help noticing that page 2 you serialize an array but on page 3 having unserialized $value2 you do not treat it like an array at all.
Thank you for your response! This is the code I am using for page 3. It is working just fine, but is displaying the data serialized.
<?php
echo "<br><br>";
if($_COOKIE["mycookie"]) {
foreach( $_COOKIE[mycookie] as $key => $value)
{
echo "Number $key : Description $value<br>";
}
echo "<a href='index2.php'>Add Opening</a><br><br>";
}
else {
print "No Items in your cart<br><br>";
echo "<a href='index2.php'>Add Opening</a><br><br>";
}
?> Here is what the data looks when outputted:
Number 1 : Description a:4:{i:0;s:1:\"1\";i:1;s:6:\"tester\";i:2;s:2:\"12 \";i:3;s:2:\"12\";}
Number 2 : Description a:4:{i:0;s:1:\"2\";i:1;s:7:\"tester2\";i:2;s:2:\"4 8\";i:3;s:2:\"48\";}
Add Opening
Maybey it would be easier to show me how I would go about unserializing the data from the code above in this post.
I have tried everything I could find on the net and still no luck, I'm sure this is something really simple to a pro!
Thanks!!!
:D
Ok I finally figured this one out, first thank you to all that have helped me with this problem; I can’t express how much it is appreciated.
Here are the 3 working pages, hope someone else finds this simple, PHP form based shopping cart usefull! Page 1 (index2.php)(the Form, which starts a cookie to keep an incremental count (Key) for each opening)
<?php
if (isset($_COOKIE['count'])) {
$count = $_COOKIE['count'] + 1;
} else {
$count = 1;
}
setcookie('count', $count, time()+13600);
echo "$count";
echo "<form action='add.php?id=$count' method='post'>
<input name='name' type='hidden' value='$count'>
Opening name<br>
<input name='name' type='text' size='30'>
</b></p>
<p><b> Width<br>
<input name='w' type='text' size='30'>
</b></p>
<p><b> Height<br>
<input name='h' type='text' size='30'>
</b></p>
<p>
<input type='image' src='../images/Start-Order.gif' name='submit' alt='Start Order'>
<br>
</p>
</form>";
?> Page 2 (add.php)(the script to get and serialize data typed in the form and add it to the cookie)
<?php
$count= $_GET['id'];
$name= $_POST['name'];
$w= $_POST['w'];
$h= $_POST['h'];
$serialized_data = serialize (array ($count,$name,$w,$h));
setcookie("mycookie[$count]", $serialized_data, time()+13600);
echo "Opening was Added<br><br>";
echo "$count";
echo "<br><br>";
echo "$name";
echo "$w";
echo "$h";
echo "<br><br>";
echo "<a href='index2.php'>Add another opening!</a><br>";
echo "<a href='show.php'>Show Cart!</a><br>";
?> Page 3 (show.php)(the show cart page that checks to see if items are in the cart (or cookie) and if so, shows the unserialized data)
<?php
if($_COOKIE["mycookie"]) {
foreach( $_COOKIE[mycookie] as $key => $value)
{
$value2 = unserialize(stripslashes($value));
echo "<br>";
print_r($value2[0]);
print_r($value2[1]);
print_r($value2[2]);
print_r($value2[3]);
}
echo "<br><br>";
echo "<a href='index2.php'>Add Opening</a><br><br>";
}
else {
print "No Items in your cart<br><br>";
echo "<a href='index2.php'>Add Opening</a><br><br>";
}
?> Thanks again everyone… Cheers!
-MrL8Knight
Thank you , MrL8Knight !
your posts save me much time !!! :D
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Gregory A Greenman |
last post by:
I'm trying to write a program in vb.net to automate filling out a
series of forms on a website. There are three forms I need to
fill out in sequence. The first one is urlencoded. My program is...
|
by: Wally |
last post by:
I have a record set (rs) that contains 25 barcodes values that I set to true
in a cookie. (see code section below)
If I read the cookie from within the same page that created it, I see all
25...
|
by: Fronky |
last post by:
Hope someone can help.
I am still learning, so no laughing please.
I am displaying records from a database using Response.Write(""); instead of
the usual datagrid method.
I am doing it this way...
|
by: Justin Engelman |
last post by:
Hi,
I have a website that uses an ISAPI filter that will redirect anyone going
to any page on the site to an SSL login page (on a different website with
the same root domain) if they do not have...
|
by: Coleen |
last post by:
Hi all :-)
I need to redirect to multiple pages on click of a transmit button, without
redisplaying each page. This redirection is to capture session variables
that are created on each page and...
|
by: sophie_newbie |
last post by:
Does anyone know how to do this? I can't seem to make it work.
I'm using:
c = Cookie.SimpleCookie()
c = "unamepwordwhatever"
c.expires = time.time() + 300
print c
|
by: bgold12 |
last post by:
When a user logs onto my site, I set some session data using php:
....
session_start();
....
$_SESSION = 'value';
....
From what I understand, this should store the session data (i.e. the...
|
by: LayneMitch via WebmasterKB.com |
last post by:
Hello.
Got another one for you folks. I'm working on this problem that wants me to
1. Prompt for name
2. Use pop-up box with name
3. Display current date on page in format "October 30, 2000."...
|
by: lenzie |
last post by:
I am having a very odd problem with a website I run. The menus have recently been changed to use javascript and some people are reporting that when they first use the site, Instead of a nicely...
|
by: Kemmylinns12 |
last post by:
Blockchain technology has emerged as a transformative force in the business world, offering unprecedented opportunities for innovation and efficiency. While initially associated with cryptocurrencies...
|
by: Naresh1 |
last post by:
What is WebLogic Admin Training?
WebLogic Admin Training is a specialized program designed to equip individuals with the skills and knowledge required to effectively administer and manage Oracle...
|
by: antdb |
last post by:
Ⅰ. Advantage of AntDB: hyper-convergence + streaming processing engine
In the overall architecture, a new "hyper-convergence" concept was proposed, which integrated multiple engines and...
|
by: BLUEPANDA |
last post by:
At BluePanda Dev, we're passionate about building high-quality software and sharing our knowledge with the community. That's why we've created a SaaS starter kit that's not only easy to use but also...
|
by: Rahul1995seven |
last post by:
Introduction:
In the realm of programming languages, Python has emerged as a powerhouse. With its simplicity, versatility, and robustness, Python has gained popularity among beginners and experts...
|
by: Ricardo de Mila |
last post by:
Dear people, good afternoon...
I have a form in msAccess with lots of controls and a specific routine must be triggered if the mouse_down event happens in any control.
Than I need to discover what...
|
by: Johno34 |
last post by:
I have this click event on my form. It speaks to a Datasheet Subform
Private Sub Command260_Click()
Dim r As DAO.Recordset
Set r = Form_frmABCD.Form.RecordsetClone
r.MoveFirst
Do
If...
|
by: ezappsrUS |
last post by:
Hi,
I wonder if someone knows where I am going wrong below. I have a continuous form and two labels where only one would be visible depending on the checkbox being checked or not. Below is the...
|
by: DizelArs |
last post by:
Hi all)
Faced with a problem, element.click() event doesn't work in Safari browser.
Tried various tricks like emulating touch event through a function:
let clickEvent = new Event('click', {...
| |