Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Mysql] Fatal error: Cannot unset string offsets in...
Forum PHP.pl > Forum > Przedszkole
mop
Witam,
mam mały problem. Wrzuciłem strone na serwer i wywala mi błąd: Fatal error: Cannot unset string offsets in (tutaj adres pliku) on line 18
Problem dotyczy tego fragmentu kodu:

  1. if($minus == $ile){
  2. unset ($_SESSION['koszyk'][$minus]);
  3. unset ($_SESSION['nr_t'][$minus]);
  4. }


linia 18 to ten drugi unset (trochę to dziwne bo do pierwszego się nie przywala).
Co dziwne skrypt działa prawidłowo! Ma on za zadanie usuwać produkty z koszyka. Wygląda to tak:
- wchodzę do koszyka
- wybieram produkt do usunięcia
- wywala błąd
- cofam się do poprzedniej strony
- wchodzę jeszcze raz do koszyka i produktu nie ma (?!)

Dodam tylko że na loclahoscie nie wywala błędu...
varez
$_SESSION['nr_t'] jest stringiem nie tablicą. dlatego robiąc
$_SESSION['nr_t'][$minus] wywala Ci błąd.
mop
No ok, ale nie rozumiem jak to jest że $_SESSION['koszyk'] traktuje jak tablice a $_SESSION['nr_t'] jak string...
Jest jakieś rozwiązanie tego problemu?
nospor
Cytat
No ok, ale nie rozumiem jak to jest że $_SESSION['koszyk'] traktuje jak tablice a $_SESSION['nr_t'] jak string...
Bo pod indexem nr_t wkladasz string ?

var_dump($_SESSION['nr_t']);
co ci pokazuje?

Zanim zadasz kolejne pytanie zapoznaj się z:
Temat: Jak poprawnie zada pytanie
mop
W $_SESSION['nr_t'] przechowywane są liczby od 1 do 15, natomiast w $_SESSION['koszyk'] są nazwy tak więc wydaje mi się, że jeśli już coś to $_SESSION['koszyk'] powinien być potraktowany jako string...
No nic, mam pewnien pomysł... może się uda
varez
$_SESSION['koszyk']
jako string? to co, po przecinku zawartość koszyka masz w zmiennej?
mop
Cytat
to co, po przecinku zawartość koszyka masz w zmiennej?

Nie. Bo kod nie wygląda tak:
  1. $_SESSION['koszyk']

tylko tak:
  1. $_SESSION['koszyk'][$minus]

koszyk - #_SESSION[nazwa produktu][numer id]
nr_t - $_SESSION[numer produktu][numer id]

Cytat
Bo pod indexem nr_t wkladasz string ?

Skoro pod nr_t znajduja się liczby, czyli int a nie string, to dlaczego wywala mi taki błąd?
Podkreślam jeszcze raz, że kod działa i się wykonuje. Z koszyka jest usuwany wybrany produkt... tylko w trakcie wywalany jest ten błąd.
varez
to ukryj wyświetlanie błędów jak nie potrafisz ich naprawić :/
bastard13
Wpisz print_r($_SESSION['nr_t']) i napisz co ci wyrzuca.
mop
wyskakuje: Array ( )

Zastanawiam się czy to może być wina tylko tego serwera na który wrzuciłem pliki?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.