Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

msession til handlevogn?

0 views
Skip to first unread message

Håkon Helgesen

unread,
Jan 28, 2006, 5:51:07 PM1/28/06
to
Heisan!

Jeg sitter og har prøvd å laget min egen handlevogn, men får det
ikke helt til.
Er det noen som kan sette meg i riktig retning.
Er litt usikker på metoden jeg bør bruke.
Har prøvd litt med bare sessions på

http://www.nettserver.com/nettbutikk/

Men har ikke helt troen på at dette er riktig.
Hva med msession, er dette noe jeg bør se litt på?

Det jeg sliter med er dette med å legge til flere like artikler
underveis i handlingen, og dette med å kunne fjerne en vare.
Hvordan bør jeg lagre dette, og hva bør strengen inneholde liksom?

Noen som har ett tips og to til hva jeg bør sjekke ut?
Bruker PHP 5.1.1
--
Mvh
Håkon Helgesen

Håkon Helgesen

unread,
Jan 31, 2006, 5:12:22 PM1/31/06
to
Hmmm ingen som har peil på dette?
Er msession en ny funksjon i php siden
det er så lite omtale rundt dette?

--
Mvh
Håkon Helgesen

Erlend Klakegg Bergheim

unread,
Jan 31, 2006, 5:52:41 PM1/31/06
to
Håkon Helgesen skrev:

> Hmmm ingen som har peil på dette?
> Er msession en ny funksjon i php siden
> det er så lite omtale rundt dette?

<URL: http://www.php.net/msession >

Eldste kommentaren er fra 2002, så den er nok ikke helt ny. Hadde det
sittet masse folk med erfaring om denne saken hadde du nok fått vite det
innen nå.

Alternativt kan jo gjøre som andre må med ny teknologi; sette deg inn i
det, også kan du være resursperson på msession på no.it.programmering.php.


--

Vennlig hilsen

Erlend Klakegg Bergheim

Glenn O Larsen

unread,
Feb 1, 2006, 2:01:18 PM2/1/06
to
> Er litt usikker på metoden jeg bør bruke.

Jeg bruker session på alt, har ikke kommet til noen "problem" områder
enda.. Om du kan forklare meg hvordan du har bygget sessions objektet
ditt, kanskje jeg kan bidra litt mer.

Jeg lagrer ofte handlekurven som en array eller som et klasse objekt i
sessionen. Dette har gått smertefritt enn så lenge..

> Hvordan bør jeg lagre dette, og hva bør strengen inneholde liksom?

Se svar over..

--
mvh
Glenn O Larsen

Håkon Helgesen skrev:

Thomas

unread,
Feb 2, 2006, 2:14:34 PM2/2/06
to
* Erlend wrote:

> Håkon Helgesen skrev:
>> Hmmm ingen som har peil på dette?
>> Er msession en ny funksjon i php siden
>> det er så lite omtale rundt dette?
>
> <URL: http://www.php.net/msession >
>
> Eldste kommentaren er fra 2002, så den er nok ikke helt ny. Hadde det
> sittet masse folk med erfaring om denne saken hadde du nok fått vite det
> innen nå.


En god grunn til ikke å benytte msessions i scriptene dine er at du da
ikke lenger har portabel kode.

Les mer: http://www.mohawksoft.org/?q=node/2


--
Thomas

Håkon Helgesen

unread,
Feb 3, 2006, 3:37:03 AM2/3/06
to
Hei Glenn!

Ok, så det holder lenge med vanlig sessions og arrays det er bra.
Er litt bedre dokumentert der ja.
Vil hver array kunne søkes opp og erstattes dersom du ønsker varen
fjernet eller at du vil ha flere av samme varen?
Tenker på om du alerede har lagt inn 1 artikkel med 1 i antall, vil
det være lett å kunne bytte ut antallet med f.eks 2 eller slette bare
den varen?

Hva bør jeg se nærmere på?
Dette med sessions er helt nytt for meg ser du...

Takker for innspill Glenn.

--
Mvh
Håkon Helgesen

Erlend Klakegg Bergheim

unread,
Feb 3, 2006, 3:47:32 AM2/3/06
to
Håkon Helgesen skrev:

Vi snakker da virkelig om en array her...

if (isset($minHandlekurv[$varenummer]))
{
// Varen eksisterer i handlekurven, så endring av antall
// eller sletting kan utføres.
} else {
// Varen eksisterer ikke i handlekurven, så da må den
// legges til eller trengs ikke å fjernes.
}

$_SESSION er en array, så det blir akkurat samme prinsipper som vanlig
bruk av array.

Håkon Helgesen

unread,
Feb 3, 2006, 7:24:26 AM2/3/06
to
Flotte greier, man lærer litt hver dag.
En annen ting:
Bør jeg lage tre arrays da?
en for antall, en for varetype og en for prisen per enhet?
Noe ala dette:

$vareantall[0]="2";
$vareantall[1]="1";
$vareantall[2]="3";

$varetype[0]="Tennis sokker hvite.";
$varetype[1]="Grandiosa pizza";
$varetype[2]="Blyant";

$pris[0]="29,90-.";
$pris[1]="32,00-.";
$pris[2]="4,50-.";

Så når jeg sletter en vare så sletter jeg den på nummer i alle tre
arrayene?
Beklager om det virker som om jeg spør dumt, men er ikke helt
inneforstått
dette helt enda, selv om jeg leser på php.net.....


--
mvh
Håkon Helgesen

Håkon Helgesen

unread,
Feb 3, 2006, 7:36:30 AM2/3/06
to
Har funnet litt i "manualen" om KEY's
Kansje dette er veien å gå på akkurat dette.
f.eks:

<?php
$vare = array('antall' => '1', 'type' => 'banan', 'pris' => '12.-');
reset($vare);
while (list($key, $val) = each($vare)) {
echo "$key => $val\n";
}
?>

--
mvh
Håkon Helgesen

Arnulf Sortland

unread,
Feb 3, 2006, 8:32:07 AM2/3/06
to
Håkon Helgesen skrev:

Du treng kun vare_nr og antall i array,
resten av dataene ligg jo i db.

Hva med å bruke objekter ?:
http://no.php.net/oop

$varer = new Handlevogn;
$varer->legg_til("10", 1);
$varer->fjern("10", 1);
$varer->vis_alle();
$varer->antall();
$varer->totalsum();
$varer->til_kasse();
...

arnulf @ http://s-a.no/

Erlend Klakegg Bergheim

unread,
Feb 3, 2006, 8:39:47 AM2/3/06
to
Arnulf Sortland skrev:

Tja, regner med du tenker på å ha det serialisert i session da?

Litt smart programmering når man lager klassen Handlevogn, så er man
kommer langt. Et alternativ er naturligvis å implementere Handlevogn som
Singleton på en smart måte som gjør at klassen selv unserialiserer seg
selv, og bruker __destruct()-metoden til å serialisere seg selv. :)

Det var bare et par tanker omkring saken som kan lette programmeringen
en god del.

Håkon Helgesen

unread,
Feb 3, 2006, 9:16:25 AM2/3/06
to
Ja det var jo lurt. Så kan jeg legge inn funksjoner for den enkelte
oppgave....knall

I følge "manualen" så kan jeg bruke noe slikt til legg_til
funksjonen:

function legg_til($artnr, $antall) {
$this->items[$artnr] += $antall;
}

Men må jeg ikke legge sammen dette med andre ting som ligger i vogna
alerede?
har sett på array_merge og lekt meg litt med dette, og får kun siste
varen ut liksom....

Arnulf Sortland

unread,
Feb 3, 2006, 9:17:57 AM2/3/06
to
Erlend Klakegg Bergheim skrev:

fritt valg !

http://no.php.net/manual/en/language.oop.serialization.php
http://no.php.net/manual/en/language.oop5.decon.php
...

finner en ut at en vil endre, er det bare å endre objektet,
og koden forøvrig blir som før. Det er bare å definere en
fornuftig klasse som gjør alt en ønsker at en Handlevogn
skal:

class Handlevogn
{
var $kunde, $varer;
function xxx
function yyy
}

En måte er å bare bruke cookie og lagre Handlevogn data direkte i db

Eller en kan gå videre med de tankene du har her:

Arnulf Sortland

unread,
Feb 3, 2006, 9:25:58 AM2/3/06
to
Håkon Helgesen skrev:

> Ja det var jo lurt. Så kan jeg legge inn funksjoner for den enkelte
> oppgave....knall
>
> I følge "manualen" så kan jeg bruke noe slikt til legg_til
> funksjonen:
>
> function legg_til($artnr, $antall) {
> $this->items[$artnr] += $antall;
> }
>
> Men må jeg ikke legge sammen dette med andre ting som ligger i vogna
> alerede?

Det er jo nettopp det du viser i eksempelet over:

> har sett på array_merge og lekt meg litt med dette, og får kun siste
> varen ut liksom....

virker dette ?:

class Handlevogn
...
function vis_alle(){
print_r($this->items);
}
...
}

Erlend Klakegg Bergheim

unread,
Feb 3, 2006, 9:34:16 AM2/3/06
to
Håkon Helgesen skrev:

Her er en måte å angripe dette på. Koden er ikke testet.

<?php

class Basket
{

private static $instance = null;

public static function get()
{
if ($this->instance == null)
{
@session_start();
if(isset($_SESSION["Basket"]))
{
$this->instace = unserialize($_SESSION["Basket"]);
} else
{
$this->instance = new Basket();
}
}
return $this->instance;
}

public function __destruct()
{
$_SESSION["Basket"] = serialize($this);
}

private $items = array();

public function addItem($ItemID, $Quantity)
{
if(!isset ($items[$ItemID]))
{
$items[$ItemID] = 0;
}
$items[$ItemID] += $Quantity;

if ($items[$ItemID] < 1)
{
unset($items[$ItemID]);
}
}

public function getItems()
{
$ret = array();
foreach ($this->item as $key => $value)
{
$ret[] = array("ItemID" => $key, "Quantity" => $value);
}
return $ret;
}

}

?>

0 new messages