![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%) ![]() ![]() |
Witam,
na początek powiem, że nie umiem programować obiektowo, ale znalazłam bardzo czytelny kawałek skryptu, który bym chciała dołączyć do swojego strukturalnego kodu. Na początek wkleje ten piękny skrypt. plik koszyk.php
plik session.php
i teraz tak, to co jest pod słowem plik session.php wkleiłam sobie na stronę pomiędzy jakieś tam <td></td> no i wyskakuje mi błąd Fatal error: Unknown(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition <b>koszyk</b> of the object you are trying to operate on was loaded _before_ the session was started więc zrobiłam tak jak napisali i wkleiłam fragment include("koszyk.php"); na górze swojej strony index.php
no ale w tym wypadku wyświetla mi się błąd: Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\sexshop\koszyk.php:60) in c:\usr\krasnal\www\sexshop\index.php on line 4 Wiec jak ja mam to rozwiązać? Pomocy |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
session_start() na samiuteńkim początku skryptu, bo musi zostać zainicjowana zanim jakikolwiek znak zostanie wysłany do przeglądarki. Było na forum z 1000 razy.
Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 17 Dołączył: 19.03.2006 Skąd: z kosmosu ;) Ostrzeżenie: (0%) ![]() ![]() |
Jak powiedział kolega z góry.
To w razie jakiś nie jasności ![]() Dziekuję, Babcia@Stefa Ten post edytował Babcia@Stefa 10.05.2007, 20:44:25 -------------------- Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Taki fajny cytacik:
Cytat If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister(). Komentarze tyczące się metod powinny być przed tymi metodami. Czy koniecznie musi być PHP4? obiekty w PHP5 są 'bardziej obiektowe'. Nazwa 'usun' sugeruje, że robi coś innego niż robi w rzeczywistości. Do tego najczęściej jest modyfikowana ilość elementów, a nie zmniejszana/powiększana. Do tego nie do końca rozumiem, co tak na prawdę to ma robić. EDIT lit. Ten post edytował Sedziwoj 10.05.2007, 21:24:19 -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%) ![]() ![]() |
Mam jeszcze jedno pytanie do tego kodu który wkleiłam na górze:
Jak to przerobić, by w koszu jeszcze przetrzymywać kolor i rozmiar produktu? Jak by miało wyglądać ciało funkcji dodaj, gdybym zrobiła tak
wywoływałabym tak: dodaj($dodaj, 1, $kolor, $rozmiar) no i jeśli ktoś wie, to w takim razie jak wyświetlić taką tablicę wielowymiarową tym sposobem while (list($key, $value) = each($stan)) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Musialaby zamiast ilosci w tej tablicy jako kolejne elementy trzymac tablice i tam w odpowiedni sposob zapisywac takie dane.
-------------------- Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie to ma być obiektowo? czy bawimy się proceduralnie?
Przecież tan koszyk to nic innego niż kolekcja... (nie wiem czy to ta nazwa) Ogólnie powinien być np.:
no i wtedy ten koszyk by wyglądał jakoś tak:
co prawda można to jeszcze ładniej... do tego nie dałem żadnej weryfikacji. Ale teraz wystarczy wiedzieć, że obiekt Produkt ma metodę getId(), która zwraca unikalny identyfikator, a reszta nas nie obchodzi, no bo oprucz co to za element i ile go jest nie powinno nas nic obchodzić. (sam kod na tej zasadzie można jeszcze lepiej zorganizować, choć się zastanawiam czy warto trzymać coś więcej niż id produktu i ilość, bo PHP i tak to wszystko traci między stronami, a nie ma sensu trzymać całych opisów w danych sesyjnych, więc iloć i id produktu wystarczyło by, a potem kiedy trzeba wyświetlić zawartość to już nie kłopot jedno zapytanie i mamy wszystkie produkty z koszyka) -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%) ![]() ![]() |
...no bo oprucz co to za element i ile go jest nie powinno nas nic obchodzić. (sam kod na tej zasadzie można jeszcze lepiej zorganizować, choć się zastanawiam czy warto trzymać coś więcej niż id produktu i ilość, bo PHP i tak to wszystko traci między stronami, a nie ma sensu trzymać całych opisów w danych sesyjnych, więc iloć i id produktu wystarczyło by, a potem kiedy trzeba wyświetlić zawartość to już nie kłopot jedno zapytanie i mamy wszystkie produkty z koszyka) No właśnie ja mam tak zrobione, że do tego koszyka jest tylko id produktu i ilość, ale niektóre produkty mają wiele kolorów i różne rozmiary i chcę zrobić tak, by klient zanim wciśnie dodaj do koszyka mógł zaznaczyć, jaki kolor i rozmiar danego produktu chce kupić i to też bym chciała trzymać w koszyku/sesji. Dla tego zależałoby mi by to było jakoś tak na podstawie takiej funkcji
>> Sedziwoj w tej Twojej funkcji nie rozumiem tego fragmentu:
czumu jest 'czarnr'.$intId z kropką, a tu z plusem 4+$intId |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli o tamten fragment chodzi, to po prostu się nie zrozumieliśmy. Bo sądziłem, że kolor i rozmiar są na stałe przypisane do produktu, a jeśli nie są to zmienia postać rzeczy.
Co do tego co przekazujesz do Koszyka, to zależy jak uniwersalny kod ma być. Bo jeśli w koszyku chcesz mieć więcej rodzajów produktów przechowywać to nie możesz na sztywno ich właściwości przekazywać, tylko obiekt z tymi właściwościami, wtedy wystarczy że konkretny rodzaj dziedziczy po produktach i jest już dobrze. Tylko trzeba umożliwić sobie identyfikacje typu produktu wyjętego z koszyka, aby móc specyficzne właściwości pobrać, choć też nie do końca, bo przy wyświetlaniu zawartości wyświetla się tylko to co mają wszystkie produkty, a jak się wejdzie w opis specyficznego to wtedy na podstawie id można rozpoznać typ, choć to akurat zależy od konkretnej budowy relacji. Co do koszyka w sesji to odpowiednie metody w obiekcie __sleep() i __wakeup(), wtedy też każda klasa produktów też by musiała mieć to wbudowane, aby swoje specyficzne wartości odtworzyć. Choć może to że próbuję to upakować w obiekty nie jest łatwiejsze/najlepsze rozwiązanie. P.S. Jest specjalne metody aby sprawdzić ilość i zawartość argumentów przekazywanych do funkcji/metody. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%) ![]() ![]() |
Na jednym z forów Pan o nicku 123456 napisał fajną klasę, którą chciałabym użyć, niestety nie działa ona w php wersji 4 tylko pod wersję 5. Wyskakuje mi błąd:
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}''
Jak należało by ją zmienić? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 23.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nalezaloby napisac do admina zeby zainstalowal PHP5 bo obciach
![]() Po co sie meczyc z OOP w PHP4 skoro w pelni go nie obsluguje? o_O |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 10.03.2005 Skąd: Elbląg Ostrzeżenie: (0%) ![]() ![]() |
Na serwerze jest PHP5, ale zanim coś tam wrzuce, to robie lokalnie na krasnalu, który ma php4. Próbowałam zainstalować PHP5, ale zaczeło mi wywalać jakieś błędy i musiałam odinstalować tą nakładkę.
![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 23.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Proponuje: Wamp5
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 21.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
W kransalu klikasz prawym na ikonkę apache (zielone piórko) -> ustawienia -> php -> php5 i już masz php5 na krasnalu
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 23:06 |