Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: ostoskori liian hidas tjs?

jonez [12.02.2006 14:41:28]

#

<?PHP
session_start();
if(!isset($_SESSION["tuotteet"])){
$_SESSION["tuotteet"] = array("0");
}
if($_GET["w"]=="lisaa"){
	$id=$_GET["id"];
	$tuotteet = $_SESSION["tuotteet"];
	$B = $_SESSION["tuotteet"][0]; //$tuotteet[0]:ssa on tuotteiden määrä
	$B++;
	$_SESSION["tuotteet"][0] = $B;
	$tuotteet[$tuotteet[0]] = $id;
	$_SESSION["tuotteet"] = $tuotteet;

}else if($_GET["w"]=="poista"){
	$number = $_GET["n"];
	unset($_SESSION["tuotteet"][$number]);
	$Z = $_SESSION["tuotteet"][0];
	$Z--;
	$_SESSION["tuotteet"][0] = $Z;
}
PHP?>

Siis tällä saa ostoskoriin yhden tuotteen mutta seuraavaa ei, koska php scriptan suorittaminen kestää silloin yli 30s.

Antti Laaksonen [12.02.2006 16:44:20]

#

Jostain syystä skripti jää jumiin.

Virheen voi etsiä poistamalla skriptistä koodirivejä, kunnes skripti ei enää jumiudu. Viimeksi poistettu rivi on syynä jumiutumiseen.

Kannattaa myös tarkistella muuttujien sisältöä ja mitä istuntotiedostoon tallentuu. En ymmärrä kokonaan skriptisi toimintaa.

Mazuli [12.02.2006 18:38:02]

#

no vaihda ainakin rivi

$_SESSION["tuotteet"] = array("0");

muotoon

$_SESSION["tuotteet"] = array(0);

jonez [12.02.2006 18:51:18]

#

Tuo siis saa muualta käskyn joko lisätä tai poistaa tuotteen ostoskorista:

<?PHP
    $id=$_GET["id"]; //Haetaan tuotteen id
    $tuotteet = $_SESSION["tuotteet"]; //taulukko $tuotteet on taulukko $_SESSION["tuotteet"]
    $B = $_SESSION["tuotteet"][0]; //$tuotteet[0]:ssa on tuotteiden määrä
    $B++; //lisätään tuotteiden määrää
    $_SESSION["tuotteet"][0] = $B; //:)
    $tuotteet[$tuotteet[0]] = $id;//taulukossa $tuotteet ja niin mones paikka kuin tuotteita on nyt
    $_SESSION["tuotteet"] = $tuotteet; //joo
PHP?>

Auttoiko ymmärtämään? Pystyn siis lisäämään ostoskoriin yhden tuotteen ja poistamaan sen.

edit1: Tämän jälkeen koko sivusto jolla scripti sijaitsee tuntuu olevan jumissa.

T.M. [12.02.2006 18:57:29]

#

mikä toi PHP?> lopetus on? ei sinne pitäs tollasta laittaa... pelkkä ?> kelpaa.
Oletko katsonut että $_GET["n"] on jokin arvo?

Epäilen kyllä että se vika olisi tuossa koodissa, ellei sessioiden asetuksessa ole jokin outo bugi.

jonez [12.02.2006 19:23:35]

#

Juu, näköjään tuon $tuotteet[0] arvoksi ei tulekkaan se alussa määritelty 0 vaan $id. Mistäköhän se johtuu?

edit1: dodiin, lisäsin väliin et if($tuotteet[0] = ""){$tuotteet[0] = 0} ja nyt toimii. Kiitos avusta. :)
edit2: Ei toiminutkaan, vaan ostoskoriin kun lisää toista tuotetta se menee edellisen päälle.

edit3: Laitoin alkuun, että se määrittää $_SESSION["tuotteet"][0] = 0;
ja nyt toimii numerointi kuten pitää mutta silti kun yrittää lisätä toista tuotetta niin jummii.

jonez [12.02.2006 21:05:22]

#

Joo, nyt sain toimimaan. Anteeksi tuplapostaus, en voinut enää muokata edellistä. Kiitos kaikesta avusta.

edit1: Jee taas kysymys, että kuinka poiston toteuttaisi järkevimmin kun sieltä välistä pitää poistaa tietoja?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta