![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Mam nadzieje, ze trafiam do dobrego dzialu. Dobra przejde do rzeczy.
Mam strone na ktorej mam 2 style. W zaleznosci jaki zaladujesz tzn. $temat=style_blue albo $temat=style_green strona jak sie pewnie domyslacie zmienia kolor. Sek w tym, ze chce aby dany styl zostawal tak dlugo, az ja sam nie bede chcial go zmienic. To znaczy wchodze na strone standardowo laduje sie niebieska, ale po kilku kliknieciach chce zmienci ja na zielona. Zmieniam i teraz chce, aby ta strona (zielona) zostala tak dlugo, az nie zechce jej zmienic na niebieska. Pomijam tutuaj zamkniecie przegladarki, bo chce aby narazie przy otworzeniu nowego okna ladowala sie standardowa skora. Mam nadzieje, ze nie namieszalem zbytnio. Probowalem to zrobic z sesja: [php:1:101e8f4cea]<?php session_start(); if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0; } else { $_SESSION['count']++; } if ($temat == "style_blue") { session_unset( "temat" ); session_register( "temat" ); } if ($temat == "style_green") { session_unset( "temat" ); session_register( "temat" ); } ?>[/php:1:101e8f4cea] Chcialem, aby przed kazdym zarejestrowaniem wyrejestrowal zmienna i zarejestrowal ja jeszcze raz. Niestety to nie dziala. Kto powie mi dlaczego? Z gory dzieki za pomoc. ___ [scanner] Proszę używac BBCode |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
powinno być po prostu tak:
[php:1:d32a1523ae]<?php if ( in_array($temat , array("style_blue", "style_green" ) ) ) { $_SESSION['temat'] = $temat; } ?>[/php:1:d32a1523ae] a przy okazji poczytaj dokładnie do czego służy funkcja [manual:d32a1523ae]session_unset[/manual:d32a1523ae] -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 273 Pomógł: 0 Dołączył: 5.05.2003 Skąd: Mazury Ostrzeżenie: (0%) ![]() ![]() |
Mozna zrobić bez sesji, ale jest troche więcej gmatwania. Na każdej stronie ustawiasz zmienną $styl dla przykładu, ustawiasz ukryte pole formulaża z zawartością tej zmiennej i na każdej nastepnej stronie zmienna $styl zawiera tę wartość jaką określiłeś wcześniej. Na podstawie tej zmiennej ustalasz wygląd.
-------------------- <<< EB >>>
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Wiem, ze mozna to zrobic bez sesji, ale nie chcialem.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 273 Pomógł: 0 Dołączył: 5.05.2003 Skąd: Mazury Ostrzeżenie: (0%) ![]() ![]() |
Ok, to tylko propozycja...
![]() -------------------- <<< EB >>>
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie rozwiazalo to mojego problemu do konca. Strona jak wczyta jeden styl, to nie pozwala wczytac juz drugiego. Style wywoluje przez URL
?temat=style_green Drugim problemem jest brak zdefiniowanego stylu na samym poczatku strony, ale wydaje mi sie, ze moge to zrobic w ten sposob [php:1:35afd5353a] if($temat == "") $temat = "style_blue"; [/php:1:35afd5353a] Mam racje? Tylko teraz jak zrobic, zeby mozna bylo zmieniac style po zaladowaniu juz jednego z nich... Z gory dzieki za pomoc. TRACK |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A spróbuj dać przed zmianą stylu na inny
[php:1:5a0f0469c5]<?php unset($HTTP_SESSION_VARS["temat"]); $HTTP_SESSION_VARS["temat"]="nazwa_tematu"; ?>[/php:1:5a0f0469c5] I pamiętaj, żeby wszędzie stosować tablice globalne $_POST, $_GET (lub ich starsze odpowiedniki). -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zrobilem cos takiego:
[php:1:27ded24ae7] <?php if (session_is_registered("temat")) { unset($HTTP_SESSION_VARS["temat"]); $HTTP_SESSION_VARS["temat"]=$temat; } else { $HTTP_SESSION_VARS["temat"]=$temat; } ?> [/php:1:27ded24ae7] niestety nie dziala i nie wiem dlaczego Moze pomozecie? Poza tym nie mam zarejestrowanej zadnej zmiennej typu $temat = "style_green" dopiero definiuje ja poprzez adres URL index.php?temat=style_green TRACK |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja już nic nie kapuję...
To podaj cały kod, i linki które wywołują zmianę tematu. -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Link wywolujacy zmiane tematu to http://strona.pl?temat=styl_blue
kod strony to: [php:1:0568d7ec65]<?php session_start(); // mozna pominac jesli jest sie pewnym ze wlaczona jest opcja auto_start if (!isset($_SESSION['count'])) { // jesli zmienna nie jest zarejestrowana $_SESSION['count'] = 0; // przypisz jej poczatkowa wartosc } else { // jesli jest zarejestrowana $_SESSION['count']++; // zwieksz jej wartosc } echo 'Strona odczytana '.$_SESSION['count'].' razy w ciagu tej sesji'; echo "<p><b>ID sesji</b> $PHPSESSID"; if (session_is_registered("temat")) { unset($HTTP_SESSION_VARS["temat"]); $HTTP_SESSION_VARS["temat"]=$temat; } else { $HTTP_SESSION_VARS["temat"]=$temat; } ?> <html> <head> <title> Szko³a Mistrzostwa Sportowego im. Kazimierza Górskiego </title> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2"> <meta name="discription" content="Strona Szko³y Mistrzopstwa Sportowego im. Kazimierza górskiego w £odzi"> <meta name="Keywords" content="sport, pi³ka no¿na, szko³a, mistrzostwa sportowego, kazimierz górski, ³ód¼, taniec"> <meta name="robots" content="index, nofollow"> <meta http-equiv=Page-Exit content=blendTrans(Duration=0.5)> <STYLE type="text/css"> <?php include ("data/$temat.css"); ?> </STYLE> </head> <body> <table border=1 cellpadding=0 cellspacing=0 BorderColorLight=black borderColorDark=#C9CACB width=758 align=center class=strona> <tr><Td> <table border=0 cellpadding=0 cellspacing=0 width=100% height=150> <tr><Td class=top> <?php include ("data/files/logo.php");?> </td> <td class=logo> <!-- <img src=pliki/logo.gif border=0 align=right> --> </td></tr> </table> </i></b> </td></tr> <tr><Td class=top_menu> <?php include ("data/files/menu_top.php"); ?> </td></tr> <tr><Td class=glowna> <?php include ("data/glowna.php"); ?> </td></tr> <tr><td class=down> Copyright © 2002 - 2003 <a href="mailto:track@op.pl">TRACK</a> </td></tr> </table> </body> </html>[/php:1:0568d7ec65] [KaMeLeOn]: Czy kiedyś nauczycie się stosować BBcode? |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A może BBCode
![]() -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To znaczy, że nie przeczytałeś regulaminu...
Przy pisaniu posta jest na górze BUTTON "php", który powoduje że ogarniasz kod znacznikami php... a wynik wygląda mniej więcej tak: [php:1:9b351f7bb1]<?php // twoj kod ?>[/php:1:9b351f7bb1] -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja do zmiany grafiki robiłem coś takiego, że tworzyłem osobny plik, np. coś w tym stylu:
[php:1:fa96be371c]<?php // plik design.php session_start(); $design=$HTTP_GET_VARS["set"]; session_register("design"); $HTTP_SESSION_VARS["design"]=$design; header("Location: ".urlencode(base64_decode($HTTP_GET_VARS["back"]))); ?>[/php:1:fa96be371c] [php:1:fa96be371c]<?php // inne pliki echo "<a href="design.php?set=2&back=".base64_encode($HTTP_SERVER_VARS["PHP_SELF"]."?".$HTTP_SERVER_VARS["QUERY_STRING"])."">Zmień design</a>"; ?>[/php:1:fa96be371c] i zawsze działało. -------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zrób po zadeklarowaniu nowej wartości
[php:1:8c3a9d85ef]<?php echo $HTTP_SESSION_VARS["temat"]; ?>[/php:1:8c3a9d85ef] i zobacz co się pokazuje. -------------------- |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dobra zaczynamy od poczatku, bo moj kod caly czas sie zmienia.
Wyglada to teraz tak: [php:1:c2e1ab6713] <STYLE type="text/css"> <? include ("data/$temat.css"); session_start(); session_register("temat"); ?> </STYLE> [/php:1:c2e1ab6713] Standardowo nie ma ustawionego, zadnego stylu. Jesli klikam na link http://strona.pl/index.php?temat=style_blu...SID=numer_sesji (jest to dolaczane automatycznie do linkow na stronie) strona zmienia sie na niebieska i wszystko jest spoko. Niestety jak klikne na jakis link ktory nie zawiera zdefiniowanego stylu strona otwiera sie "pusta" czyli bez zadnego stylu. Mam nadzieje, ze wyraznie to napisalem. Co polecacie zrobic? |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
1. session_start() musi być wywołane zanim coś wyślesz do przeglądarki... Czyli:
[php:1:867b8c12a8]<?php session_start(); ?> <html> <head> itd...[/php:1:867b8c12a8] 2. Po co używasz session_register() ? Wystarczy tak... [php:1:867b8c12a8]<?php $_SESSION['temat'] = $_GET['temat']; ?>[/php:1:867b8c12a8] -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 0 Dołączył: 17.07.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zrobilem jak kazales.
[php:1:fe7c910ec9] <?php session_start(); ?> <html> <head> <title></title> <STYLE type="text/css"> <?php include ("data/$temat.css"); $_SESSION['temat'] = $_GET['temat']; ?> </STYLE> [/php:1:fe7c910ec9] niestety to nie dziala. Kto powie mi dlaczego? ![]() Teraz na samym poczatku (przy pierwszym zaladowaniu strony) do linkow ladnie zostaje dodany numer sesji. Niestety pozniej numer sesji zniaka z adresu URL. Oczywiscie temat jest wywolywany tak jak we wczesniejszym poscie. Pozdrawiam i czekam na pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:15 |