[PHP] sessie blijft bestaan bij winkelwagen en in/uitloggen*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
ik ben nu bezig met een site waar ik een winkelwagen op heb zitten en een admin gedeelt waar ik in en uit kan loggen.
maar deze site heb ik opgebouwt door middel van smarty (template engine)
Nu leek het eerst via localhost allemaal prima te doen en hij logt gewoon goed uit en blijft de producten niet onthouden.
Maar nu heb ik hem op een host gezet en vertoon de website kuren.
Wanneer ik dan inlog op het admin gedeelte en weer uitlog heb ik bij het uitloggen soms last van dat hij de sessie niet goed eindigt op een of andere manier.
en bij het bestellen van een aantal producten en ik bestel ze daadwerkelijk en ik klik op bestellen en hij bestelt het dan maar dan ga ik een paar pagina's verder en dan staan de bestelde producten nog steeds in het winkelwagentje.
ik werk door middel van sessie's.

Iemand enig idee? of ooit voor hetzelfde probleem gestaan? want ik kom er zelf niet meer uit en weet echt niet meer waar het aan kan liggen. :)

werk via PHP en Mysql :)

localhost van me pc:
PHP Version 4.3.10
Mysql versie: 4.0.16

Host:
PHP Versie: 4.3.10
MySQL Version: 4.0.18

[ Voor 11% gewijzigd door mydogisgone op 09-06-2005 00:59 ]

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

Als je gewoon de sessie unset dan kan er zo ver ik weet echt weinig overblijven (unset($_SESSION["winkelmand"]))

Wat een probleem kan zijn is de client side caching. Maar daar kan je met wat headers voor het grootste gedeelte wel keijt raken.

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Je werkt toch niet met session_register he? :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    function login() {
        if ((isset($_POST['username'])) && (isset($_POST['password']))) {
            $result = mysql_query('SELECT administratorid, password FROM administrators WHERE username = "' . $_POST['username'] . '" AND password = "' . md5($_POST['password']) . '"');
            if (mysql_num_rows($result) == 1) {
                $temp = mysql_fetch_row($result);
                $_SESSION['_administratorid'] = $temp[0];
                $_SESSION['_password'] = $temp[1];
                header('Location: ' . $this->makelink('admin.php', null, null, true));
            } // if
        } // if
    } // function

    function checklogin() {
        $result = mysql_query('SELECT administratorid, username, password, products_add, products_change, products_changeprice, products_delete, orders, categories_add, categories_change, categories_delete, configurations, changeadministrators, superuser FROM administrators WHERE administratorid = "' . $_SESSION['_administratorid'] . '" AND password = "' . $_SESSION['_password'] . '"');
        if (mysql_num_rows($result) == 1) {
            $temp = mysql_fetch_assoc($result);
            while (list($RightName, $RightValue) = each($temp)) { $this->$RightName = $RightValue; }
        } // if
    } // function

    function logout() {
        session_unregister('_administratorid');
        session_unregister('_password');
        header('Location: ' . $this->makelink('index.php', null, array('action'), true));
    } // function

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Uit de documentatie:
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
en
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().
Lijkt me duidelijk. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op donderdag 09 juni 2005 @ 01:20:
Uit de documentatie:

[...]

en

[...]

Lijkt me duidelijk. :)
dus nu kan ik beter unset gebruiken ipv unregister ?

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Inderdaad. Je zal het $_SESSION-array moeten aanspreken. De session-functies die je nu gebruikt zijn IMO een beetje uit de tijd en zorgen altijd voor verrassingen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • AttiX
  • Registratie: Maart 2001
  • Laatst online: 03:47
Nu ben ik nog maar een PHP-beginner, maar ik gebruik:

loguit.php
code:
1
2
3
4
5
<?
session_start();
session_destroy();
header('Location: index.php');
?>

Wat zijn daarvan de voor en nadelen?

[ Voor 10% gewijzigd door AttiX op 09-06-2005 01:25 ]


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op donderdag 09 juni 2005 @ 01:24:
Inderdaad. Je zal het $_SESSION-array moeten aanspreken. De session-functies die je nu gebruikt zijn IMO een beetje uit de tijd en zorgen altijd voor verrassingen. ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    function TAdmin($AdminText) { // constructor
        if ((isset($_POST['submitted'])) && ($_POST['submitted'] == 'login')) { $this->login(); }
        elseif ((isset($_SESSION['_administratorid'])) && (isset($_SESSION['_password']))) { $this->checklogin(); }
        if (isset($_POST['submitted'])) {
            if (($_POST['submitted'] == 'logout') && (isset($this->administratorid))) { $this->logout(); }
            if (($_POST['submitted'] == 'product_add') && (($this->products_add == 'Y') || ($this->superuser == 'Y')) ) { $this->add_product(); }
            if (($_POST['submitted'] == 'product_change') && (($this->products_change == 'Y') || ($this->products_changeprice == 'Y') || ($this->superuser == 'Y')) ) { $this->change_product(); }
            if (($_POST['submitted'] == 'product_delete') && (($this->products_delete == 'Y') || ($this->superuser == 'Y'))) { $this->delete_product(); }
            if (($_POST['submitted'] == 'quickproductprice') && (isset($_POST['retailprice'])) && (isset($_POST['profitmargin'])) && (($this->products_changeprice == 'Y') || ($this->superuser == 'Y'))) { $this->quickproductprice(); }
            if (($_POST['submitted'] == 'category_add') && (($this->categories_add == 'Y') || ($this->superuser == 'Y'))) { $this->add_category(); }
            if (($_POST['submitted'] == 'category_change') && (isset($_POST['categoryid'])) && (is_numeric($_POST['categoryid'])) && (($this->categories_change == 'Y') || ($this->superuser == 'Y'))) { $this->change_category(); }
            if (($_POST['submitted'] == 'category_delete') && (isset($_POST['categoryid'])) && (is_numeric($_POST['categoryid'])) && (($this->categories_delete == 'Y') || ($this->superuser == 'Y'))) { $this->delete_category(); }
            if (($_POST['submitted'] == 'order_create') && (($this->orders == 'Y') || ($this->superuser == 'Y'))) { $this->create_order(); }
            if (($_POST['submitted'] == 'order_create_price') && (($this->orders == 'Y') || ($this->superuser == 'Y'))) { $this->create_order_price(); }
            if (($_POST['submitted'] == 'order_delete') && (isset($_POST['orderid'])) && (is_numeric($_POST['orderid'])) && (($this->orders == 'Y') || ($this->superuser == 'Y'))) { $this->delete_order(); }
            if (($_POST['submitted'] == 'order_change') && (isset($_POST['orderid'])) && (is_numeric($_POST['orderid'])) && (($this->orders == 'Y') || ($this->superuser == 'Y'))) { $this->change_order(); }
            if (($_POST['submitted'] == 'configuration_add') && (($this->configurations == 'Y') || ($this->superuser == 'Y'))) { $this->add_configuration(); }
            if (($_POST['submitted'] == 'configuration_change') && (isset($_POST['configurationid'])) && (is_numeric($_POST['configurationid'])) && (($this->configurations == 'Y') || ($this->superuser == 'Y'))) { $this->change_configuration(); }
            if (($_POST['submitted'] == 'configuration_delete') && (isset($_POST['configurationid'])) && (is_numeric($_POST['configurationid'])) && (($this->configurations == 'Y') || ($this->superuser == 'Y'))) { $this->delete_configuration(); }
            if (($_POST['submitted'] == 'configurationcategory_add') && (($this->configurations == 'Y') || ($this->superuser == 'Y'))) { $this->add_configurationcategory(); }
            if (($_POST['submitted'] == 'configurationcategory_change') && (isset($_POST['configurationcategoryid'])) && (is_numeric($_POST['configurationcategoryid'])) && (($this->configurations == 'Y') || ($this->superuser == 'Y'))) { $this->change_configurationcategory(); }
            if (($_POST['submitted'] == 'configurationcategory_delete') && (isset($_POST['configurationcategoryid'])) && (is_numeric($_POST['configurationcategoryid'])) && (($this->configurations == 'Y') || ($this->superuser == 'Y'))) { $this->delete_configurationcategory(); }
            if (($_POST['submitted'] == 'administrator_add') && (($this->changeadministrators == 'Y') || ($this->superuser == 'Y'))) { $this->add_administrator(); }
            if (($_POST['submitted'] == 'administrator_change') && (isset($_POST['administratorid'])) && (is_numeric($_POST['administratorid'])) && (($this->changeadministrators == 'Y') || ($this->superuser == 'Y'))) { $this->change_administrator(); }
            if (($_POST['submitted'] == 'administrator_delete') && (isset($_POST['administratorid'])) && (is_numeric($_POST['administratorid'])) && (($this->changeadministrators == 'Y') || ($this->superuser == 'Y'))) { $this->delete_administrator(); }
        } // if
        $this->makeadminarray($AdminText);
    } // function

    function login() {
        if ((isset($_POST['username'])) && (isset($_POST['password']))) {
            $result = mysql_query('SELECT administratorid, password FROM administrators WHERE username = "' . $_POST['username'] . '" AND password = "' . md5($_POST['password']) . '"');
            if (mysql_num_rows($result) == 1) {
                $temp = mysql_fetch_row($result);
                $_SESSION['_administratorid'] = $temp[0];
                $_SESSION['_password'] = $temp[1];
                header('Location: ' . $this->makelink('admin.php', null, null, true));
            } // if
        } // if
    } // function

    function checklogin() {
        $result = mysql_query('SELECT administratorid, username, password, products_add, products_change, products_changeprice, products_delete, orders, categories_add, categories_change, categories_delete, configurations, changeadministrators, superuser FROM administrators WHERE administratorid = "' . $_SESSION['_administratorid'] . '" AND password = "' . $_SESSION['_password'] . '"');
        if (mysql_num_rows($result) == 1) {
            $temp = mysql_fetch_assoc($result);
            while (list($RightName, $RightValue) = each($temp)) { $this->$RightName = $RightValue; }
        } // if
    } // function

    function logout() {
        session_unset('_administratorid');
        session_unset('_password');
        header('Location: ' . $this->makelink('index.php', null, array('action'), true));
    } // function


is dit beter? :>

[ Voor 19% gewijzigd door mydogisgone op 09-06-2005 01:26 ]

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Nee, zie de logout-functie.
AttiX.SkategoaT schreef op donderdag 09 juni 2005 @ 01:24:
Nu ben ik nog maar een PHP-beginner, maar ik gebruik:

loguit.php
code:
1
2
3
4
5
<?
session_start();
session_destroy();
header('Location: index.php');
?>

Wat zijn daarvan de voor en nadelen?
Dat kan voor zover ik weet inderdaad wel prima in combinatie met de $_SESSION-array. :)

[ Voor 89% gewijzigd door NMe op 09-06-2005 01:27 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op donderdag 09 juni 2005 @ 01:27:
Nee, zie de logout-functie.


[...]

Dat kan voor zover ik weet inderdaad wel prima in combinatie met de $_SESSION-array. :)
ik snap niet hoe je dat dan bedoelt.
zo heb ik het namelijk geleerd op school dus als je me een stap in de goede richting zou willen geven dan zou dat wel heel super zijn.

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

mydogisgone schreef op donderdag 09 juni 2005 @ 01:31:
ik snap niet hoe je dat dan bedoelt.
zo heb ik het namelijk geleerd op school dus als je me een stap in de goede richting zou willen geven dan zou dat wel heel super zijn.
Dat heeft disfja toch al gedaan in de eerste reactie in dit topic? Je gebruikt nog steeds session_unregister, wat niet verstandig is, zoals ik hierboven al zei. In plaats daarvan kun je unset gebruiken zoals disfja al zegt, of je kan kijken of je wat kan met de oplossing van AttiX.SkategoaT.

Dat je school nog met session_register werkt getuigt ervan dat ze oude boeken gebruiken uit het pre-register_globals-tijdperk. Geen goede zaak, ik zou het maar eens aankaarten bij je leraar als ik jou was. :)

[ Voor 16% gewijzigd door NMe op 09-06-2005 01:35 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Ik ben zelf ook een php prutser. (nadruk op prutser). Ik gebruik dit als uitlog/sessie verwijder script. Werkt prima op php 4.3.1

PHP:
1
2
3
4
5
session_name('winkelwagen'); 
session_start(); 
session_unset();   
session_destroy(); 
header("location:login.php");

Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
code:
1
2
3
4
5
    function logout() {
        unset($_SESSION["_administratorid"]);
        unset($_SESSION["_password"]);
        header('Location: ' . $this->makelink('index.php', null, array('action'), true));
    } // function


ik dacht dat het dan zo beter zou kunnen zijn toch?
het werkt iig wel ;)

edit:

hij heeft er nog steeds last van :( met deze php code :(

[ Voor 21% gewijzigd door mydogisgone op 09-06-2005 08:54 ]

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
zou het eventueel te maken kunnen hebben met een andere php.ini?

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Lijkt me niet, maar het zou in principe mogelijk zijn ja. Heb je de oplossing van AttiX.SkategoaT al geprobeerd? Als je de sessie in zijn geheel destroyt, dan blijven de variabelen sowieso niet over. :)

Is de host die je gebruikt trouwens Lycos? Ik las vanmiddag toevallig dat ze daar wel vaker last hebben met sessies namelijk. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op vrijdag 10 juni 2005 @ 00:55:
Lijkt me niet, maar het zou in principe mogelijk zijn ja. Heb je de oplossing van AttiX.SkategoaT al geprobeerd? Als je de sessie in zijn geheel destroyt, dan blijven de variabelen sowieso niet over. :)

Is de host die je gebruikt trouwens Lycos? Ik las vanmiddag toevallig dat ze daar wel vaker last hebben met sessies namelijk. :P
:/ kan je me uitlezen of zo?
mijn site is gehost bij lycos ja :'(

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • aex351
  • Registratie: Juni 2005
  • Laatst online: 02:04

aex351

I am the one

mydogisgone schreef op vrijdag 10 juni 2005 @ 00:38:
zou het eventueel te maken kunnen hebben met een andere php.ini?
Dat wou ik net zeggen.
Ik meen te herinderen dat in php.ini zo'n setting te vinden is, over de sessie instellingen.
php.ini (deel van mijn settings)
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; Document expires after n minutes.
session.cache_expire = 180

[ Voor 40% gewijzigd door aex351 op 10-06-2005 01:56 ]

< dit stukje webruimte is te huur >


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Beide settings in php.ini kunnen er niets mee te maken hebben. session_unset verwijdert immers direct de sessievariabelen en daardoor kunnen ze niet gevuld zijn. Echter, als Lycos daar inderdaad niet fatsoenlijk mee om kan gaan, dan kun je beter session_destroy gebruiken, zoals al een paar keer eerder is geopperd in dit topic. session_destroy gooit gewoon je hele sessie compleet weg, en dat werkte de laatste keer dat ik op Lycos werkte nog perfect. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op vrijdag 10 juni 2005 @ 02:15:
Beide settings in php.ini kunnen er niets mee te maken hebben. session_unset verwijdert immers direct de sessievariabelen en daardoor kunnen ze niet gevuld zijn. Echter, als Lycos daar inderdaad niet fatsoenlijk mee om kan gaan, dan kun je beter session_destroy gebruiken, zoals al een paar keer eerder is geopperd in dit topic. session_destroy gooit gewoon je hele sessie compleet weg, en dat werkte de laatste keer dat ik op Lycos werkte nog perfect. :)
ja sessie destroy werkt goed :)

maar de session.cookie_lifetime op me server is 3600 en hier thuis 0.
en er is geen vastgestelde session.cookie_path op lycos en bij mij thuis wel.
kan het daar aan liggen?

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Die lifetime vertelt alleen maar dat je sessie na een uur ongeldig is op Lycos, terwijl dat op jouw server nooit gebeurt zolang de browser open blijft. En wanneer session.cookie_path leeg is, dan wordt volgens mij een bepaald default pad gekozen. Als je precies wil weten waar het aan ligt, dan kun je beter even contact opnemen met Lycos, de mensen daar zullen het je wel kunnen vertellen; beter dan wij zelfs, lijkt me. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • imp4ct
  • Registratie: November 2003
  • Laatst online: 06-09 22:19
Hmm, nu weet ik niet of dit de hele juiste manier is. Maar zo doe ik het. Als mijn gebruiker inlogged zet ik iets in de $_SESSION[], zodat ik weet dat hij ingelogged is.
Nu wanneer hij uitlogged zet ik deze $_SESSION gewoon op null, bij het inloggen check ik dan of m'n $_SESSION dan niet null is en is dat niet, jah dan is hij ingelogged, hierop wordt wel nog een controle gedaan natuurlijk :).

Maar ik zie hier zo dingen staan van unregister, destroy, etc... Ik werk hier nooit mee. Moet dit dan, of is mijn methode ook juist ?

Bedrijf : Webtrix

Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
I_M_P_A_C_T schreef op vrijdag 10 juni 2005 @ 23:34:
Hmm, nu weet ik niet of dit de hele juiste manier is. Maar zo doe ik het. Als mijn gebruiker inlogged zet ik iets in de $_SESSION[], zodat ik weet dat hij ingelogged is.
Nu wanneer hij uitlogged zet ik deze $_SESSION gewoon op null, bij het inloggen check ik dan of m'n $_SESSION dan niet null is en is dat niet, jah dan is hij ingelogged, hierop wordt wel nog een controle gedaan natuurlijk :).

Maar ik zie hier zo dingen staan van unregister, destroy, etc... Ik werk hier nooit mee. Moet dit dan, of is mijn methode ook juist ?
tjah ik had eerst unregister gedaan maar nu door middel van destroy echt weg gewerkt.
maar mijn methode werkt wel maar niet op een server van lycos. :|
dus tjah ik moet op zoek naar een andere hosting :/

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

mydogisgone schreef op zaterdag 11 juni 2005 @ 01:05:
dus tjah ik moet op zoek naar een andere hosting :/
Ik zal de laatste zijn om dat tegen te spreken (zo'n beetje alles is al gauw beter dan Lycos :P) maar waarom zou je als het met session_destroy toch ook werkt? :)

I_M_P_A_C_T (irritant om te tikken zeg :D): jouw methode werkt ook wel, maar persoonlijk vind ik het niet erg netjes. Zoals jij het doet blijft namelijk de sessie intern wel bestaan, terwijl session_destroy de hele sessie netjes afsluit en verwijdert. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op zaterdag 11 juni 2005 @ 01:09:
[...]

Ik zal de laatste zijn om dat tegen te spreken (zo'n beetje alles is al gauw beter dan Lycos :P) maar waarom zou je als het met session_destroy toch ook werkt? :)

I_M_P_A_C_T (irritant om te tikken zeg :D): jouw methode werkt ook wel, maar persoonlijk vind ik het niet erg netjes. Zoals jij het doet blijft namelijk de sessie intern wel bestaan, terwijl session_destroy de hele sessie netjes afsluit en verwijdert. :)
ja maar ik kan destroy niet voor me winkelwagen gebruiken aangezien je het aantal producten ook wil kunnen veranderen.. en dat kan met destroy niet echt.. :> dus ik ga mooi andere host zoeken.

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

mydogisgone schreef op zaterdag 11 juni 2005 @ 02:32:
ja maar ik kan destroy niet voor me winkelwagen gebruiken aangezien je het aantal producten ook wil kunnen veranderen.. en dat kan met destroy niet echt.. :> dus ik ga mooi andere host zoeken.
Euh, het ging hier toch over uitloggen? :? Als je uitlogt, dan gooi je ofwel je winkelwagen leeg, ofwel je slaat hem op in je database voor later gebruik. Uitloggen staat over het algemeen gelijk aan het weggooien van je sessie.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Laatst online: 17:06

mydogisgone

Watskeburtwithmydog

Topicstarter
-NMe- schreef op zaterdag 11 juni 2005 @ 03:08:
[...]

Euh, het ging hier toch over uitloggen? :? Als je uitlogt, dan gooi je ofwel je winkelwagen leeg, ofwel je slaat hem op in je database voor later gebruik. Uitloggen staat over het algemeen gelijk aan het weggooien van je sessie.
ja daar ging het in 1e instantie ook om. maar de uitlog functie is voor de admin en de winkelwagen voor de mensen zeg maar :)

je kan wel kijken op www.syco-bit.nl en dan kan je wel zien wat er mis gaat.

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • imp4ct
  • Registratie: November 2003
  • Laatst online: 06-09 22:19
-NMe- schreef op zaterdag 11 juni 2005 @ 01:09:
[...]
I_M_P_A_C_T (irritant om te tikken zeg :D): jouw methode werkt ook wel, maar persoonlijk vind ik het niet erg netjes. Zoals jij het doet blijft namelijk de sessie intern wel bestaan, terwijl session_destroy de hele sessie netjes afsluit en verwijdert. :)
Met session_destroy worden dan ALLE open sessie's gesloten ? Of kan je ook een specifieke sessie sluiten, want dat laaste vond ik niet terug op php.net. Daar staat altijd "session_destroy();" maar nooit iets tussen de haakjes zelf.
En moet je altijd session_register gebruiken ? Want ik begin gewoon met een session_start(); en dan direct m'n $_SESSION vullen.

'k Heb dit even zelf zitten aan te passen bij m'n site. Wat mij wel opvalt is dat ik voor elke session_destroy altijd een session_start() moet zetten, anders krijg ik een warning en foutmeldingen. Maar er is mij altijd gezegd geweest dat als je ergens in je script al een session_start gebruikt je dit niemeer moet gebruiken. 'k Vind het dan wel raar dat het bij session_destroy wel zo moet.

[ Voor 41% gewijzigd door imp4ct op 11-06-2005 15:31 ]

Bedrijf : Webtrix

Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

mydogisgone schreef op zaterdag 11 juni 2005 @ 11:53:
je kan wel kijken op www.syco-bit.nl en dan kan je wel zien wat er mis gaat.
Voor zover ik kan zien werkt alles zoals het hoort te werken? :P
I_M_P_A_C_T schreef op zaterdag 11 juni 2005 @ 15:14:
Met session_destroy worden dan ALLE open sessie's gesloten ? Of kan je ook een specifieke sessie sluiten, want dat laaste vond ik niet terug op php.net. Daar staat altijd "session_destroy();" maar nooit iets tussen de haakjes zelf.
session_start heeft toch ook geen parameters? ;) Met session_start ken je gewoon een bepaald sessie-ID toe aan die gebruiker die je pagina bekijkt, en met session_destroy verwijder je die sessie die open staat. Je sluit dus altijd een specifieke sessie, met daarin alle $_SESSION-vars die geset zijn.
En moet je altijd session_register gebruiken ?
Nee, gebruik die asjeblieft niet. :X
Want ik begin gewoon met een session_start(); en dan direct m'n $_SESSION vullen.
Prima. :)
'k Heb dit even zelf zitten aan te passen bij m'n site. Wat mij wel opvalt is dat ik voor elke session_destroy altijd een session_start() moet zetten, anders krijg ik een warning en foutmeldingen.
Je moet eerst session_start aanroepen omdat session_start een sessie aanmaakt als die gebruiker nog geen sessie heeft, of een bestaande sessie opnieuw koppelt aan die gebruiker die je site bekijkt. Als je session_start niet aanroept, dan bestaat de sessie wel, maar is die niet gekoppeld aan een de gebruiker voor zover ik weet, en daarom onbruikbaar. Verder: als session_start niet aangeroepen is en dus die koppeling niet is gelegd, dan weet session_destroy ook niet welke sessie er verwijderd moet worden, dus nogal wiedes dat die struikelt. ;)
Maar er is mij altijd gezegd geweest dat als je ergens in je script al een session_start gebruikt je dit niemeer moet gebruiken. 'k Vind het dan wel raar dat het bij session_destroy wel zo moet.
Wie heeft je dat verteld dan? Van PHP.net:
session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.
Wanneer je sessie open moet blijven, zul je dus altijd session_start bovenaan je pagina op moeten nemen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Gwaihir
  • Registratie: December 2002
  • Niet online
I_M_P_A_C_T schreef op zaterdag 11 juni 2005 @ 15:14:Maar er is mij altijd gezegd geweest dat als je ergens in je script al een session_start gebruikt je dit niemeer moet gebruiken. 'k Vind het dan wel raar dat het bij session_destroy wel zo moet.
Ehm, je gebruikt toch ook maar één session_start() per script (d.w.z. per geproduceerde pagina)? Da's niet hetzelfde als één session_start() per gebruikerssessie / applicatie, hoewel je mogelijk wel slechts één session_destroy() in je hele applicatie hebt zitten.

Acties:
  • 0 Henk 'm!

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 10-02 23:00
Ik vind dat uitloggen wat jullie doen en dan een header:location geven trouwens niet zo'n nette oplossing, krijgt je webserver weer een request voor een pagina. Waarom niet gewoon bij je loginscripts iets zetten wat je gebruikt om uit te loggen? Zo doe ik het iig :)
Pagina: 1