Jump to content

PHP Cookie Help


Rushy

Recommended Posts

Hey all,

 

i'm learning PHP at the moment and i'm having a bit of trouble with cookies. I know how to create a single cookie with a set name, but how do I create a cookie that takes its name/value from a form? The form itself is in a loop that spits out info from a database, and the form name also is taken from the database as it loops through.

 

I was trying to use the Post method but it didn't work so obviously this isn't the way to do it.

 

Could anyone point me in the right direction? :)

 

 

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/
Share on other sites

How about showing us the code you have? There is no reason why you wouldn't be able to set a cookie from post data.

 

Show us what you've done so far, and tell us what happens when you try that code.

 

Ok, this is the loop:

    for ($i = 0; $i < $nrows; $i++ )
    {
      echo "<form method=post><tr>\n"; 
      echo "<td><input type=checkbox name=products value=" . $results["TITLE"][$i] . " | $" . $results["PRICE"][$i] . "> <font color=white> " . $results["TITLE"][$i] . "</td>";
    **Rest of code removed**
    }
  ?>

 

So as you can see, the form name is taken from the DB.

 

Now please don't laugh if this code is absolute crap, i've been using PHP for a few days :P But this is what I tried:

 

<?php
    setCookie('Products', $_POST, time()+3600);
?>

 

And then I tried making "value=$POST" in the form tags.

 

I'm guessing this is completely wrong? :P Because PHP wouldn't even parse it.

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/#findComment-376863
Share on other sites

Well there you go then. The value of the cookie that you store must be a string, not an array. $_POST is an array containing all of the information that has been sent to the page via the post method.

 

What is it that you actually want to store?

 

I want to store the name of each checkbox.. which is taken from the DB as you can see from the code. Is there a better way of doing it?

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/#findComment-376871
Share on other sites

I assume you mean the value?

 

Im not quite sure why you would want to, but you have two options. You could either set a different cookie variable for each of your checkboxes, or you could serialize the array and store the serialized array as a single variable in your cookie.

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/#findComment-376985
Share on other sites

Where abouts in my code would I put that? It's just being parsed as text on the top of my page..

 

Oops. I didn't realise I already had an account here!

 

Anyway ignore that, I forgot to put it in <? .. ?> tags!  :-\

 

Although now the cookie isn't being set. Do I define value as value=$_POST? OR something else?

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/#findComment-377345
Share on other sites

Bump. Some help would be appreciated, i'm still a bit stuck :(

 

Oops. I didn't realise I already had an account here!

 

Anyway ignore that, I forgot to put it in <? .. ?> tags!  :-\

 

Although now the cookie isn't being set. Do I define value as value=$_POST? OR something else?

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/#findComment-378923
Share on other sites

Hmm now i'm getting this error with the following code:

 

<?php
if(isset($_POST['checkbox1']))
{
  setcookie("checkbox1", true)
{
  
if(isset($_POST['checkbox2']))
{
  setcookie("checkbox2", true)
}
?>

 

 

Parse error: syntax error, unexpected '{' in C:\Web\WebServer\Apache2\htdocs\products.php on line 5

Link to comment
https://forums.phpfreaks.com/topic/74566-php-cookie-help/#findComment-379115
Share on other sites

Archived

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

×
×
  • Create New...

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.