Avatar billede kawsper Nybegynder
27. juli 2005 - 07:26 Der er 10 kommentarer og
1 løsning

Cookie bliver ikke oprettet

Har flgn. kode:

<?php
session_start();

require_once("Consumer.class.php");

if(isset($_COOKIE['ShopUserId']))
{
    $user = new Consumer("$_COOKIE[ShopUserId]");
    echo"Already exists<br>";
}
else
{
    $user = new Consumer();
    $lol = setcookie ("ShopUserId", $user->getId(), time()+1209600, "/~shop/", ".kawsper.dyndns.dk", 0);
    echo"Didnt exists<br>$lol<br>";
}
print_r($_COOKIE);
?>

Men ligemeget hvor mange gange jeg refresher, udskriver den flgn.:
Didnt exists
1
Array ( [PHPSESSID] => b7d5f3e118bddc41b10b3d5f238808fa )

Nogen der har nogen forslag?
Avatar billede blackscorpion Nybegynder
27. juli 2005 - 07:39 #1
har du tjekket din Consumer. class.php for fejl? for lige hvad jeg kan se af, er der ikke nogle fejl.
Avatar billede kawsper Nybegynder
27. juli 2005 - 07:52 #2
<?php
class Consumer
{
    var $id; // Consumers ID
    var $db; // Database variable
   
    function Consumer()
    //Constructor
    {
        $this->createid();
    }
   
    function createid()
    // Is creating a unique and wierd ID
    {
        $this->id=md5(time());
    }
   
    function getId()
    //Returnerer ID-nummeret
    {
        return($this->id);
    }
}
?>

Doh, min constructor var ikke samme navn som min klasse.
Men ligenu gør den det samme :/

Didnt exists
1
Array ( [PHPSESSID] => b7d5f3e118bddc41b10b3d5f238808fa )
Avatar billede blackscorpion Nybegynder
27. juli 2005 - 08:06 #3
hmm spooky...
Avatar billede blackscorpion Nybegynder
27. juli 2005 - 08:08 #4
nu kan det godt være mig der er skrup forkert på den, men skal du ikke gøre de forskellige variabler globale for at du kan bruge dem i hele din class element?
Avatar billede kawsper Nybegynder
27. juli 2005 - 08:12 #5
Nej.
var $var; er klassevariabler som er tilgængelige igennem hele din klasse. $this->var viser at det er et element i klassen jeg vil have fat i, fx. $id.
Avatar billede blackscorpion Nybegynder
27. juli 2005 - 08:14 #6
ahh okey, har ikke så meget forstand på classer osv. *G* ;)

kunne bare kende noget fra java. ;)

må nok melde pas på denne her, og så vente til de helt kloge hoveder kommer på. ;)
Avatar billede kawsper Nybegynder
27. juli 2005 - 08:16 #7
setcookie ("ShopUserId", $user->getId(), time()+1209600);
Virkede åbenbart fint nok.

Ved du hvordan man gør så en variabel ikke er krævet, men kan være der i en funktion eller klasse?

Fx. function($id) {

}

men sådan så man også kan udelukke den hvis man ikke skal bruge den når man kalder funktionen?
Avatar billede blackscorpion Nybegynder
27. juli 2005 - 15:00 #8
det smarteste ville nok være

if(!$id) {
$id = $submitted_id;
}

osv osv osv. ;)
Avatar billede sukos Juniormester
27. juli 2005 - 19:07 #9
Med lidt uheld, vil du jo kunne få to brugere med samme id
$this->id=md5(time());

Og når nu du alligevel bruger sessions, så brug den i stedet, altså session_id()


Og ved ik' lige, men du sætter jo 6 ting med din setcookie.

Kan kun se 5 mulige i min manual?
Og det virker jo for dig når du bruger:
setcookie ("ShopUserId", $user->getId(), time()+1209600);

Så prøv med
setcookie ("ShopUserId", $user->getId(), time()+1209600, "/~shop/");
eller
setcookie ("ShopUserId", $user->getId(), time()+1209600, "/");
for at cookien også findes på domænets indexfil
Avatar billede kawsper Nybegynder
06. august 2007 - 12:15 #10
Aha du fangede den, vil du oprette svar?
Avatar billede kawsper Nybegynder
04. november 2008 - 01:19 #11
Går ud fra at vi lukker nu. Men skriv gerne hvis du vil have dine point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester