Dziękuję za pomoc
Faktycznie, formularz wysyła wszystko jako string.
Mam taki kod koszyka:
if ($_SESSION['sumazakupow_brutto'] == "") {
$_SESSION['sumazakupow_brutto'] = 0;
$_SESSION['sumazakupow_netto'] = 0;
$_SESSION['dostawa_brutto'] = 0;
$_SESSION['dostawa_netto'] = 0;
$_SESSION['kupon_promocyjny'] = null;
$_SESSION['kupon_promocyjny2'] = null;
}
if ($_SESSION['koszykzamowien'] == "") {
$_SESSION['ilosckupow'] = 0;
}
if ($_SESSION['koszykzamowien'] != "") {
asort($_SESSION['koszykzamowien']);
}
////// USUWANIE POJEDYŃCZEGO PRODUKTU
if ($webid['0'] == "koszyk" && $webid['2'] == "usun" && $_GET['k'] != "") {
$_GET['k'] = czysc_sql_liczby($_GET['k']);
unset($_SESSION['koszykzamowien'][$_GET['k']]);
}
////// USUWANIE WSZYSTKICH PRODUKTÓW
if ($webid['0'] == "koszyk" && $_GET['usunall'] == "usunall") {
unset($_SESSION['koszykzamowien']);
unset($_SESSION['ilosckupow']);
unset($_SESSION['sumazakupow_brutto']);
unset($_SESSION['sumazakupow_netto']);
unset($_SESSION['dostawa_brutto']);
unset($_SESSION['dostawa_netto']);
$_SESSION['ilosckupow'] = 0;
$_SESSION['sumazakupow_brutto'] = 0;
$_SESSION['sumazakupow_netto'] = 0;
$_SESSION['dostawa_brutto'] = 0;
$_SESSION['dostawa_netto'] = 0;
$_SESSION['kupon_promocyjny'] = null;
$_SESSION['kupon_promocyjny2'] = null;
}
////// FUNKCJA SZUKAJĄCA DUPLIKATÓW
function recursive_array_search($needle, $haystack, $where1, $where2) {
foreach($haystack as $key => $value) {
$current_key=$key;
// $where1 = aj_nazwa
// $where2 = aj_rozmiar_wielkosc_X
if($needle===$value OR ((is_array($value) && recursive_array_search($needle,$value) !== false) AND ($key['aj_nazwa'] == $where1 && $key['aj_rozmiar_wielkosc_X'] == $where2))) {
return $current_key;
}
}
return false;
}
function findDubel($id, $nazwa, $rozmiar, $koszyk)
{
$find_dubel = false;
$dubel_key = false;
while ( ( list($key,$item) = each($koszyk) ) && !$find_dubel) {
if ($item['id'] == $id && $item['aj_nazwa'] == $nazwa && $item['aj_rozmiar_wielkosc_X'] == $rozmiar) {
$find_dubel = true;
$dubel_key = $key;
}
}
return $dubel_key;
}
////// DODAWANIE PRODUKTU DO KOSZYKA
if ($_POST['updatekoszyka'] == "" && $_POST['itemid'] != "" && $_POST['ilosc'] != "") {
if ($_POST['maxilosc'] >= $_POST['ilosc']) {
$_POST['i_cena'] = str_replace(",", ".", $_POST['i_cena']);
$_POST['i_transport'] = str_replace(",", ".", $_POST['i_transport']);
//$dubel = recursive_array_search($_POST['itemid'], $_SESSION['koszykzamowien'], baza_zapis($_POST['aj_nazwa']), baza_zapis($_POST['aj_rozmiar_wielkosc_X']));
$dubel = findDubel($_POST['itemid'], baza_zapis($_POST['aj_nazwa']), baza_zapis($_POST['aj_rozmiar_wielkosc_X']), $_SESSION['koszykzamowien']);
if($dubel === FALSE){
$_SESSION['koszykzamowien'][] = array('id' =>czysc_sql_liczby($_POST['itemid']), 'nazwa' =>baza_zapis($_POST['i_nazwa']), 'cena' =>baza_zapis($_POST['i_cena']), 'ilosc' =>czysc_sql_liczby($_POST['ilosc']), 'maxilosc' =>czysc_sql_liczby($_POST['aj_dostepnychX']), 'dostawa' =>baza_zapis($_POST['i_transport']), 'vat' =>czysc_sql_liczby($_POST['vat']), 'stanproduktu' =>czysc_sql_liczby($_POST['stanproduktu']), 'aj_nazwa' =>baza_zapis($_POST['aj_nazwa']), 'aj_rozmiarX' =>baza_zapis($_POST['aj_rozmiarX']), 'aj_rozmiar_wielkosc_X' =>baza_zapis($_POST['aj_rozmiar_wielkosc_X']), 'aj_kolorX' =>baza_zapis($_POST['aj_kolorX']), 'produktwpromocji' =>baza_zapis($_POST['produktwpromocji']), 'produktzkuponem' =>baza_zapis($_POST['produktzkuponem']), 'przeliczylem_rabat' => 0, 'muza' =>baza_zapis($_POST['aj_muza']));
} else{
//echo "DUBEL!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
if($_POST['maxilosc'] >= $_SESSION['koszykzamowien'][$dubel]['ilosc'] + 1){
$_SESSION['koszykzamowien'][$dubel]['ilosc'] = $_SESSION['koszykzamowien'][$dubel]['ilosc'] + 1;
}
}
//echo "==== $dubel =====";
} else
$error_message = "Brak wystarczającej ilości produktów w sklepie!! Posiadamy aktualnie: " . $_POST['maxilosc'] . " ";
}
////// AKTUALIZOWANIE PRODUKTU W KOSZYKU
if ($_POST['updatekoszyka'] != "" && $_POST['szukanawartosc']!="") {
$_POST['szukanawartosc'] = czysc_sql_liczby($_POST['szukanawartosc']);
$_SESSION['koszykzamowien'][$_POST['szukanawartosc']]['ilosc'] = czysc_sql_liczby($_POST['ilosckupna']);
}
//////////////////////////////////////////////////
if ($_SESSION['koszykzamowien'] != "") {
$_SESSION['sumazakupow_brutto'] = 0;
$_SESSION['sumazakupow_netto'] = 0;
$_SESSION['ilosckupow'] = 0;
$_SESSION['dostawa_netto'] = 0;
$_SESSION['dostawa_brutto'] = 0;
foreach ($_SESSION['koszykzamowien'] as $index => $value) {
if($value['ilosc'] == 0 || $value['ilosc'] ==""){
unset($_SESSION['koszykzamowien'][$index]);
}
// nalicz rabat
if($value['przeliczylem_rabat'] == "0" && $value['produktwpromocji'] == "0" && $_SESSION['kupon_promocyjny'] != 0 && $_SESSION['kupon_promocyjny'] !== null){
$_SESSION['koszykzamowien'][$index]['przeliczylem_rabat'] = 1;
$value['cena'] = $value['cena'] - ($value['cena'] * $_SESSION['kupon_promocyjny']) / 100;
$value['cena'] = number_format($value['cena'],2);
$_SESSION['koszykzamowien'][$index]['cena'] = $value['cena'];
}
///////////////////////////////////////////
$_SESSION['sumazakupow_brutto'] = $_SESSION['sumazakupow_brutto'] + (($value['cena'] * $value['ilosc'] * $value['vat']) / 100 + $value['ilosc'] * $value['cena']);
//$_SESSION['sumazakupow_netto'] = $_SESSION['sumazakupow_netto'] + ($value['cena'] * $value['ilosc']);
$_SESSION['ilosckupow'] = $_SESSION['ilosckupow'] + $value['ilosc'];
$_SESSION['dostawa_netto'] = $_SESSION['dostawa_netto'] + $value['dostawa'] * $value['ilosc'];
$_SESSION['dostawa_brutto'] = $_SESSION['dostawa_brutto'] + (($value['dostawa'] * $value['ilosc'] * $value['vat']) / 100 + $value['ilosc'] * $value['dostawa']);
}
}
if($_POST['updatekod'] == 1){
$stmt22a = $db->prepare("SELECT rabat, nazwa, bf_id FROM cms_users_kody_promocyjne WHERE kod=:kod and idusera=:idusera and data_uzycia is null;");
$stmt22a->bindValue(':kod', baza_zapis($_POST['kodrabatowy']), PDO::PARAM_STR);
$stmt22a->bindValue(':idusera', czysc_sql_liczby($_SESSION['cms_id']), PDO::PARAM_INT);
$stmt22a->execute();
foreach ($stmt22a as $row22a) {
$_SESSION['kupon_promocyjny'] = $row22a['rabat'];
$_SESSION['kupon_promocyjny2'] = $row22a['bf_id'];
header("Refresh:0");
}
}
echo $_SESSION['kupon_promocyjny2'];
echo "<pre>";
var_dump ($_SESSION['koszykzamowien']);
echo"</pre><br/><br/>";
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function dodaj_koszyk_porownanie($item) {
$_SESSION['koszyk_porownanie'][] = $item;
}
// produkty ulubione
if($_POST['por_poz_send_to_upd']!=""){
$save_to_por = array('id' =>czysc_sql_liczby($_POST['por_poz_send_to_por']));
dodaj_koszyk_porownanie($save_to_por);
$_SESSION['koszyk_porownanie'] = array_map("unserialize", array_unique(array_map("serialize", $_SESSION['koszyk_porownanie'])));
}
$_SESSION['porownywarka_produktow'] = 0;
foreach ($_SESSION['koszyk_porownanie'] as $value) {
$_SESSION['porownywarka_produktow'] = $_SESSION['porownywarka_produktow'] + 1;
}
function baza_zapis($string) {
$string = addslashes($string);
$string = trim((htmlspecialchars(($string), ENT_QUOTES)));
return $string;
}
function czysc_sql_liczby($string) {
if (preg_match("/[0-9]/", $string)) {
if (is_numeric($string)) {
if ($string == "")
$string = 0;
return $string;
}
} else
return 0;
}
Przed “wgraniem” produktu do koszyka mam:
array(1) {