Ik was wel eens nieuwsgierig naar de opzet van een webwinkel dus ik heb even gekeken naar het idee van een lid van deze site (onder de topic: opzet webwinkel). ik kreeg veel fouten tijdens het testen van de scripts. deze heb ik allemaal kunnen oplossen maar nu zit ik er met één waarvoor ik al veel google werk heb verricht maar ik kom er niet uit.
[script]
<?php
error_reporting(E_ALL);
include ('dblog.php');


// update_cart.php

ob_flush();

// Eenzijdig, maar kijken of die bestaat
if (empty($_SESSION['cart'])) {
// Nee dus, terugsturen!
header("Location: cart.php");
} else {
// Exploden
$cart = explode("|",$_SESSION['cart']);

// Tellen
$count = count($cart);

// Alle producten langslopen
foreach($cart as $products) {
// Split
/*
$product[x] -->
x == 0 -> product id
x == 1 -> hoeveelheid
*/
$product = explode(",",$products);
$i++;

$postedProduct = "productnummer_".$i; // Deze twee om later de geposte waarde te 'spoofen'
$postedQuantity = "hoeveelheid_".$i;

if ($product[0] == $_POST[$postedProduct] && $_POST[$postedQuantity] > 0) // hier dus
{
// Update pro
$inNewCart = $product[0].",".$_POST[$postedQuantity];
$newCart = $newCart."|".$inNewCart;
}
}

// En weer die luiheid, dus die eerste | eraf...
$newCart = substr($newCart,1);

// Oude winkelwagen weg, nieuwe terug
session_unset($_SESSION['cart']);
$_SESSION['cart'] = $newCart;

// En weer terugsturen
header("Location: cart.php");
}
?>
[/code]
ik heb hem staan op: www.stefantry.nl/shop/latenzien.php en dan het updaten(moet er eerst iets in het wagentje)
Waarom roep je op regel 8 ob_flush() aan? Output buffering heb je voor dit doel niet nodig en bovendien mis ik dan nog ergens de functie ob_start()...
update_cart.php staat niet toevallig tussen de body tags of wel? Je hebt namelijk output naar de browser, header en session_start bijvoorbeeld vinden dat niet echt leuk.
ik snap niet helemaal wat je bedoelt mark maar ik denk dat als je het iets anders brengt je nog gelijk hebt ook.
wordt er html of iets boven update_cart.php weergegeven.
nee update_cart.php is alleen een phpcode (deze hoeft zowiezo geen opmaak te krijgen want hij word toch doorgelinkt)
Heb je toevallig een spatie voor [ignore]<?php[/ignore] staan? Dit kan ook al roet in het eten gooien.
ja dat was het probleem1 (nu heb ik er meteen 3bij;))
Notice: Undefined variable: i in /public/sites/www.stefantry.nl/shop/update_cart.php on line 30

Notice: Undefined variable: newCart in /public/sites/www.stefantry.nl/shop/update_cart.php on line 39

Warning: Cannot modify header information - headers already sent by (output started at /public/sites/www.stefantry.nl/shop/update_cart.php:30) in /public/sites/www.stefantry.nl/shop/update_cart.php on line 51


<?php
                   error_reporting(E_ALL);
                    include ('dblog.php');
                    session_start();

// update_cart.php



// Eenzijdig, maar kijken of die bestaat
if (empty($_SESSION['cart'])) {
  // Nee dus, terugsturen!
     header("Location: cart.php");
} else {
  // Exploden
  $cart = explode("|",$_SESSION['cart']);

  // Tellen
  $count = count($cart);

  // Alle producten langslopen
  foreach($cart as $products) {
    // Split
    /*
      $product[x] -->
         x == 0 -> product id
         x == 1 -> hoeveelheid
    */
    $product = explode(",",$products);
    $i++;

    $postedProduct = "productnummer_".$i;     // Deze twee om later de geposte waarde te 'spoofen'
    $postedQuantity = "hoeveelheid_".$i;

    if ($product[0] == $_POST[$postedProduct] && $_POST[$postedQuantity] > 0)   // hier dus
    {
      // Update pro
      $inNewCart = $product[0].",".$_POST[$postedQuantity];
      $newCart = $newCart."|".$inNewCart;
    }
  }

  // En weer die luiheid, dus die eerste | eraf...
  $newCart = substr($newCart,1);

  // Oude winkelwagen weg, nieuwe terug
  session_unset($_SESSION['cart']);
  $_SESSION['cart'] = $newCart;

  // En weer terugsturen
  header("Location: cart.php");
}
?>

Je plukt zo te zien onbekende $vars uit de lucht. Dat gaat niet. Je moet ze altijd eerst bekendmaken.

Reageren