Jump to content

Archived

This topic is now archived and is closed to further replies.

aminnuto

HELP! Need code to make a cookie to displace different html when revisited

Recommended Posts

I have a php file that I would like to show a different .inc file to visitors the 2nd time they visit that php page.  Perhaps code that uses an inc file if no session (while also setting a session) and then if the session exists, to display a different inc file with the cookie being reset at the end of the session.

Does anyone know how I would do this?

Share this post


Link to post
Share on other sites
you mean like...

[code]
<?php
session_start();

if ($_SESSION['name'])
{
include('incfile');
} else {
include('otherincfile');
$_SESSION['name'] = "value";
}

?>
[/code]

???

Share this post


Link to post
Share on other sites
doesnt work.  i get this error at the top of the page.

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/pire/phpfile.php:7) in /home/pire/phpfile.php on line 20

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/pire/phpfile.php:7) in /home/pire/phpfile.php on line 20





this is the code i used

<?php
session_start();

if ($_SESSION['name'])
{
include('inc/DISCOUNT-file.inc');
} else {
include('inc/file.inc');
$_SESSION['name'] = "value";
}

?>

Share this post


Link to post
Share on other sites
I would imagine that one of the other include pages, either DISCOUNT-file.inc, or file.inc, is also trying to send headers.

Look at the include files and adjust accordingly.

Regards
Huggie

Share this post


Link to post
Share on other sites
ok, one more questions.  I have a different webpage on that site where i want to check and see if this cookie is set and if it is, show one page and if its not, show another BUT i dont want it to set the cookie...only check if its there and then displace an inc file if its there.

so pretty much the same cookie without setting itself.  just checking if its there and showing an inc file if it is.


How would I do that?

Share this post


Link to post
Share on other sites
You need to use isset().

[code]<?php
if (isset($_COOKIE['cookie_name'])){
  // If set do something
}
else {
  // else do something else
}
?>[/code]

Regards
Huggie

Share this post


Link to post
Share on other sites
I'm missing something.  I tried your code and it didnt work.

Here is my original code,
[code]
<?php
session_start();

if ($_SESSION['discount'])
{
include('/home/pire/www/products/DISCOUNT.php');
} else {
include('/home/pire/www/products/REGULAR.php');
$_SESSION['discount'] = "value";
}

?>
[/code]

that code works great...


on the next page, that i want to check for that cookie, i have this
[code]
<?php
if (isset($_COOKIE['discount'])){
include('/home/pire/www/products/DISCOUNT.php');
}
else {
include('/home/pire/www/products/REGULAR.php');
$_SESSION['discount'] = "value";
}
?>

[/code]



but that doesnt work.  it only displays my REGULAR.php file weather the session is set or not.

Share this post


Link to post
Share on other sites
OK, a session and a cookie, aren't technically the same.

If you mean you want to check for a session variable then use the code I've posted but with session...

[code]<?php
if (isset($_SESSION['discount'])){
  include('/home/pire/www/products/DISCOUNT.php');
}
else {
  include('/home/pire/www/products/REGULAR.php');
  $_SESSION['discount'] = "value";
}
?>[/code]

Regards
Huggie

Share this post


Link to post
Share on other sites
Does't work. 

What i'm looking to do is, if someone visits one page on my site they will see a page with the regular price of a product.

if they go back to that same page within the session, they see different html which will display a discounted price.

This is the code i'm using.
[code]<?php
session_start();

if ($_SESSION['discount'])
{
include('/home/pire/www/products/DISCOUNT-course.php');
} else {
include('/home/pire/www/products/REGULAR-course.php');
$_SESSION['discount'] = "value";
}

?>
[/code]

That code is working perfectly.




BUT, I have a different page on my site which also has the price of that product and I want that page to do the same thing but I DONT want it to set anything (cookie or session). 

I want that second page to only check and see if the first page has been visited (one or twice doesn’t matter). 

If that visitor has been to that first page, then i want to display different html

This is the code i'm using
[code]<?php
if (isset($_SESSION['discount'])){
  include('/home/pire/www/products/REGULAR-index.php');
}
else {
  include('/home/pire/www/products/DISCOUNT-index.php');
  $_SESSION['discount'] = "value";
}
?>
[/code]


This page displays the /home/pire/www/products/DISCOUNT-index.php page wheater they have been to that first page 0 times, 1 time, 2 times 10 times, doesn’t matter.  the /home/pire/www/products/DISCOUNT-index.php page is always shown and I don’t want that. 

What code would I put on the second page to check if that visitor has been to the first page and if they have, then show them different html?




By the way...
Is it possible to make the first code last longer then just the session.  I'd like it to be saved as a cookie and then expire after 10 visits (or if thats not possible, 10 days).

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.