![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam pewien problem i nie wiem jak go rozwiązać. Jestem dosyć początkującym w dziedzinie php i mam taki oto problem.
Stworzylem formularz w, którym odwiedzający wypełnia dane, potem naciska wyślij i pokazuje się strona podsumowująca zamówienie. Na tej stronie jest możliwość potwierdzenia zamówienia, powrotu do formularza w celu poprawienia danych lub wydrukowania zamowienia. Tutaj się z zaczynają schody. Po kliknięciu w drukuj gość jest przenoszony na ładnie przygotowaną do druku stronę, tylko na niej danych brak. Zmienne z formularza się już tutaj nie pokazują. Pola są puste. Tutaj niżej kod tego wszystkiego.
To kod formularza. A teraz kod strony podsumowującej
A tutaj niżej kod strony, która ma się drukować.
Na stronie podsumowującej dane są jaknajbardziej. Do strony do druku już nie sięgają. Nie wiem jak je przekazać dalej. Kombinowałem coś z sesjami ale nie wychodzi. Proszę o pomoc, to chyba dosyć proste w realizacji tylko nie wiem jak to zrobić. Ten post edytował Zawleka 1.08.2006, 23:16:31 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 25.02.2006 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
Sądzę, że najlepszym sposobem przekazywania "dalej" danych będzie użycie sesji (sessions) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Zagłębiając się bardziej w temat, to używanie sesji jest bardzo proste, ponieważ polega ono na uruchomieniu mechanizmu sesji i dodanie/odczytanie danych ze sesji. Poniżej przedstawiam przykład owego użycia (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Wracając do Twojego skryptu, to musisz zapisać wszelkie dane z formularza do sesji i później możesz je bez problemu odczytać gdzie-kolwiek chcesz (w obrębie Twojego serwisu) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
PS session_start() wpisujesz na samym początku Twojego skryptu oraz do każdego pliku, gdzie chcesz mieć możliwość odczytu albo zapisu do sesji (czyli tam gdzie chcesz coś robić z tablicą $_SESSION) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) PS1 Zauważyłem, że nie przykładasz zbyt dużej wagi do określania "lokalizacji" zmiennych. Mam na myśli użycie odwołań do odpowiednich tablic (poniższy przykład powinien łatwo wytłumaczyć, co mam na myśli) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dlaczego jest to ważne? Jest to ważne, gdy wgrasz pliki, swój skrypt, na zdalny serwer który będzie miał wyłączoną opcję register_globals i w efekcie Twój skrypt przestanie działać, bo nie będzie miał dostępu do danych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
A jaki to ma związek z php5?
Przenoszę na Przedszkole. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po wpisaniu session_start(); na początku mojego skryptu dodaje takie dwa oto komunikaty:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /infograf/main/comp/print.php:10) in /infograf/main/comp/print.php on line 24 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /infograf/main/comp/print.php:10) in /infograf/main/comp/print.php on line 24 Co z tym fantem zrobić ? Probowałem też bez session_start(); bo gdzieś czytałem, że serwer może automatycznie włączać sesje. Komunikaty się nie pojawiają ale sesje też nie działają (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Serwer na, którym to testuje to home.pl |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Prosze wpisac sobie do wyszukiwarki forum:
"headers already sent" i poszukac odpowiedzi na jakze popularne zagadnienie |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dodałem w każdym pliku session_star(); jeszcze przed header. Teraz komunikat nie jest wywalany ale sesje i tak chyba nie działaja. Dodam, że deklaracje zmiennych do sesjii robie już dalej w kodzie strony.
W czym problem ? Ktoś mi powie dokladnie w jakim miejscu musze umieścić deklaracje zmiennych i sesion_start() ? bo męcze się z tym cały czas i nie wychodzi. ////////////// Posunełem się troche dalej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Lecz nie do końca wszystko działa. Mianowicie po wypełnieniu formularza dana pokazują się na następnej podstronie tak jak trzeba. Ale kiedy nasne przycisk " Drukuj " który ma następujący kod
To przechodzi do podstrony, ktora ma się wydrukować, ale nie ma danych. Kiedy natomiast na stronie z potwierdzeniem zamówienia wpisze ręcznie adres strony która ma się drukować pojawia się ona z danymi bez problemu. Tak jakby kliknęcie w link drukuj kasowało sesje i strona drukuj nie miala skąd wczytać danych. Prosze o pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:56 |