Jestem w trakcie przenoszenia swojej pierwszej strony www na serwer. Na komputerze stacjonarnym wszystko mi śmiga. Na serwerze pojawia się problem w trakcie przenoszenia produktu do koszyka lub przechowalni, produkt co prawda zostaje dodany, ale próba zwiększenia jego ilość powoduje wyczyszczenia koszyka, a wszystkiemu temu towarzyszy błąd:
W skrypcie '/home/bujek22/domains/bujek22.ayz.pl/public_html/cart.php' wystąpił błąd w wierszu 15:
Cannot modify header information - headers already sent by (output started at /home/bujek22/domains/bujek22.ayz.pl/public_html/cart.php:1)
LINK DO STRONY
skrypt cart.php
CODE
<?php
// Skrypt odpowiedzialny za administrowanie koszykiem na zakupy.
// Dołączyłem plik konfiguracyjny:
require ('./includes/config.inc.php');
// Znajdź albo stwórz sesję usera:
if (isset($_COOKIE['SESSION'])) {
$uid = $_COOKIE['SESSION'];
} else {
$uid = md5(uniqid('biped',true));
}
// ciasteczko zostaje wysłane:
setcookie('SESSION', $uid, time()+(60*60*24*30));
// Dołączam plik z nagłówkiem:
$page_title = 'OPAŁEK- Koszyk na zakupy';
include ('./includes/header.html');
// Dołączam plik ze skryptem którego zadaniem jest nawiązanie połączenia z bazą danych:
require (MYSQL);
// Dołączam plik ze skryptem z funkjami pomocniczymi:
include ('./includes/product_functions.inc.php');
// Jeżeli adres URL zawiera numer SKU, podziel go na części:
if (isset($_GET['sku'])) {
list($sp_type, $pid) = parse_sku($_GET['sku']);
}
if (isset ($pid, $sp_type, $_GET['action']) && ($_GET['action'] == 'add') ) { // Dodanie nowego produktu do koszyka:
$r = mysqli_query($dbc, "CALL add_to_cart('$uid', '$sp_type', $pid, 1)");
} elseif (isset ($sp_type, $pid, $_GET['action']) && ($_GET['action'] == 'remove') ) { // Usunięcie produktu z koszyka.
$r = mysqli_query($dbc, "CALL remove_from_cart('$uid', '$sp_type', $pid)");
} elseif (isset ($sp_type, $pid, $_GET['action'], $_GET['qty']) && ($_GET['action'] == 'move') ) { // Przenieśenie produktu do koszyka.
// Ustala ilość:
$qty = (filter_var($_GET['qty'], FILTER_VALIDATE_INT, array('min_range' => 1))) ? $_GET['qty'] : 1;
// Dołącza produkt do koszyka:
$r = mysqli_query($dbc, "CALL add_to_cart('$uid', '$sp_type', $pid, $qty)");
// // Kasuje produkt z przechowalni:
$r = mysqli_query($dbc, "CALL remove_from_wish_list('$uid', '$sp_type', $pid)");
} elseif (isset($_POST['quantity'])) { // Odświerzenie ilości w koszyku.
// Sprawdza wszystkie pozycje:
foreach ($_POST['quantity'] as $sku => $qty) {
// Przetwarza SKU:
list($sp_type, $pid) = parse_sku($sku);
if (isset($sp_type, $pid)) {
// Ustala ilość:
$qty = (filter_var($qty, FILTER_VALIDATE_INT, array('min_range' => 0)) !== false) ? $qty : 1;
// Odświerzenie ilości w koszyku:
$r = mysqli_query($dbc, "CALL update_cart('$uid', '$sp_type', $pid, $qty)");
}
} // Zakończenie pętli FOREACH.
}// Zakończenie instrukcji IF.
// Pobiera skład koszyka:
$r = mysqli_query($dbc, "CALL get_shopping_cart_contents('$uid')");
if (mysqli_num_rows($r) > 0) { // Produkty do wyświetlenia
include ('./views/cart.html');
} else { // Jeżeli koszyk jest pusta
include ('./views/emptycart.html');
}
// Dołączam plik ze stopką:
include ('./includes/footer.html');
?>
// Skrypt odpowiedzialny za administrowanie koszykiem na zakupy.
// Dołączyłem plik konfiguracyjny:
require ('./includes/config.inc.php');
// Znajdź albo stwórz sesję usera:
if (isset($_COOKIE['SESSION'])) {
$uid = $_COOKIE['SESSION'];
} else {
$uid = md5(uniqid('biped',true));
}
// ciasteczko zostaje wysłane:
setcookie('SESSION', $uid, time()+(60*60*24*30));
// Dołączam plik z nagłówkiem:
$page_title = 'OPAŁEK- Koszyk na zakupy';
include ('./includes/header.html');
// Dołączam plik ze skryptem którego zadaniem jest nawiązanie połączenia z bazą danych:
require (MYSQL);
// Dołączam plik ze skryptem z funkjami pomocniczymi:
include ('./includes/product_functions.inc.php');
// Jeżeli adres URL zawiera numer SKU, podziel go na części:
if (isset($_GET['sku'])) {
list($sp_type, $pid) = parse_sku($_GET['sku']);
}
if (isset ($pid, $sp_type, $_GET['action']) && ($_GET['action'] == 'add') ) { // Dodanie nowego produktu do koszyka:
$r = mysqli_query($dbc, "CALL add_to_cart('$uid', '$sp_type', $pid, 1)");
} elseif (isset ($sp_type, $pid, $_GET['action']) && ($_GET['action'] == 'remove') ) { // Usunięcie produktu z koszyka.
$r = mysqli_query($dbc, "CALL remove_from_cart('$uid', '$sp_type', $pid)");
} elseif (isset ($sp_type, $pid, $_GET['action'], $_GET['qty']) && ($_GET['action'] == 'move') ) { // Przenieśenie produktu do koszyka.
// Ustala ilość:
$qty = (filter_var($_GET['qty'], FILTER_VALIDATE_INT, array('min_range' => 1))) ? $_GET['qty'] : 1;
// Dołącza produkt do koszyka:
$r = mysqli_query($dbc, "CALL add_to_cart('$uid', '$sp_type', $pid, $qty)");
// // Kasuje produkt z przechowalni:
$r = mysqli_query($dbc, "CALL remove_from_wish_list('$uid', '$sp_type', $pid)");
} elseif (isset($_POST['quantity'])) { // Odświerzenie ilości w koszyku.
// Sprawdza wszystkie pozycje:
foreach ($_POST['quantity'] as $sku => $qty) {
// Przetwarza SKU:
list($sp_type, $pid) = parse_sku($sku);
if (isset($sp_type, $pid)) {
// Ustala ilość:
$qty = (filter_var($qty, FILTER_VALIDATE_INT, array('min_range' => 0)) !== false) ? $qty : 1;
// Odświerzenie ilości w koszyku:
$r = mysqli_query($dbc, "CALL update_cart('$uid', '$sp_type', $pid, $qty)");
}
} // Zakończenie pętli FOREACH.
}// Zakończenie instrukcji IF.
// Pobiera skład koszyka:
$r = mysqli_query($dbc, "CALL get_shopping_cart_contents('$uid')");
if (mysqli_num_rows($r) > 0) { // Produkty do wyświetlenia
include ('./views/cart.html');
} else { // Jeżeli koszyk jest pusta
include ('./views/emptycart.html');
}
// Dołączam plik ze stopką:
include ('./includes/footer.html');
?>
Mógłby ktoś rzucić okiem bo jestem ciemny zupełnie. Proszę o pomoc.