if (!isset($_POST["cart_payload"])) {
    echo "PAYLOAD NOT SET";

$items = json_decode($_POST["cart_payload"], true);
$line_items = array();
foreach ($items as $item) {
    $line_items[] = array(

$target = 'images/'; 
$target = $target . basename( $_FILES['image']['name'])
        'name' => $item["title"],
        'image' => $FILES["image"],
        'amount' => $item["price"]*100,
        'currency' => 'gbp',
        'quantity' => $item["quantity"],

// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys

$session = \Stripe\Checkout\Session::create([
    'payment_method_types' => ['card'],
    'line_items' => $line_items,
    'success_url' => 'https://skatelandnottingham.co.uk',
    'cancel_url' => 'https://skatelandnottinghamk.co.uk/events/',

Welcome to DaniWeb. I wonder if you clicked the submission button too soon and forgot to add a question such as:

Why do I get the error "failed to open stream"?