TeoTN Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 Zrobiłem coś takiego: <center><a href="index.php?style=style-white-spring"><img src="img/style-white-spring.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-white-summer"><img src="img/style-white-summer.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-white-autumn"><img src="img/style-white-autumn.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-white-winter"><img src="img/style-white-winter.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-black-spring"><img src="img/style-black-spring.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-black-summer"><img src="img/style-black-summer.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-black-autumn"><img src="img/style-black-autumn.png" border="0" width="24" height="18"></a></td> <td><a href="index.php?style=style-black-winter"><img src="img/style-black-winter.png" border="0" width="24" height="18"></a></center> <?php if (isset($_GET[style])==TRUE) { $_COOKIE[wyglad]=$_GET[style]; echo "<link rel=\"Stylesheet\" type=\"text/css\" href=\"$_COOKIE[wyglad].css\">"; } else { echo "<link rel=\"Stylesheet\" type=\"text/css\" href=\"$_COOKIE[wyglad].css\""; } ?> I wszystko pięknie działa, ale gdy usunę z adresu fragment, np. "style=style-white-autumn" to cookie zyskuje swoją wartość z setcookie czyli "" . Dlaczego? Moim celem jest stworzenie kodu, który po kliknięciu linku zmienia zawartość cookie, a jednocześnie ustawia styl na zawartość cookie (nie get!). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 Z tego co się orientuję to do zmiany wartości cookie używało się setcookie. Chyba, że w PHP się zmieniło coś o czym nie słyszałem, ale tak to jest jak się żyje na localhoście. =P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 28 Grudnia 2008 Autor Udostępnij Opublikowano 28 Grudnia 2008 Tak myślałem, tylko słyszałem, że setcookie to tylko na początku, przed dokumentem, a później to $_COOKIE[nazwa]="" . No ale spróbuję, zerknę, dam znać ^^ Kiszka. setcookie("wyglad",$_GET[style],time()+60*60*24*30); echo "<link rel=\"Stylesheet\" type=\"text/css\" href=\"$_COOKIE[wyglad].css\">"; nie działa :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 W sumie to tak: <?php $css = 'domyslny'; if( isset( $_GET['css'] ) ) { setcookie( 'css', $_GET['css'], time() + 86400 ); $css = basename( $_GET['css'] ); } if( isset( $_COOKIE['css'] ) ) $css = basename( $_COOKIE['css'] ); echo '<link rel="stylesheet" href="' . $css . '.css" type="text/css">'; ?> Najprostsze co można zrobić. =P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 28 Grudnia 2008 Autor Udostępnij Opublikowano 28 Grudnia 2008 Dobre :) Ok, dzięki za pomoc i uświadomienie jak się manipuluje cookies :D EDIT: Jednak źle. Po wykasowaniu np. ?css=style-white-summer z adresu zmienia na domyślny :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 A masz w ogóle włączoną obsługę cookies? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 28 Grudnia 2008 Autor Udostępnij Opublikowano 28 Grudnia 2008 Przeglądarkowo tak, czy serwerowo to nie wiem, bo na cba.pl w ogóle możliwości włączenia/wyłączenia cookies nie widziałem... EDIT: Krótki teścik wykazał, że nie: echo "Styl:" . $_COOKIE['css']; Wyświetla tylko "Styl:" - czyli nie chodzi... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 Cookies masz po stronie przeglądarki tylko. =P Zobacz tak: <?php $css = 'domyslny'; if( isset( $_GET['css'] ) ) { setcookie( 'css', $_GET['css'], time() + 86400, '/' ); $css = basename( $_GET['css'] ); } if( isset( $_COOKIE['css'] ) ) $css = basename( $_COOKIE['css'] ); echo '<link rel="stylesheet" href="' . $css . '.css" type="text/css">'; ?> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kryniak Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 Czy wstawiłeś ten kod na początku skryptu zanim zdążyłeś wypisać tekst funkcją echo() lub print()? Sprawdź, czy nie wywala Ci błędu "headers already sent". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 28 Grudnia 2008 Autor Udostępnij Opublikowano 28 Grudnia 2008 Dalej nic =P Jeśli zmieniłeś tylko ścieżkę cookie na "/", a wygląda mi na to, że tak , to już wcześniej to zrobiłem =P @up: żadnego błędu nie wywala. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kryniak Opublikowano 28 Grudnia 2008 Udostępnij Opublikowano 28 Grudnia 2008 Może ustaw error_reporting(E_ALL)? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TeoTN Opublikowano 28 Grudnia 2008 Autor Udostępnij Opublikowano 28 Grudnia 2008 Okej, działa, moja wina, dzięki za pomoc, nie mówię co ja robiłem, bo aż siara ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się