Skocz do zawartości

Zmiana arkusza styli w PHP


TeoTN

Rekomendowane odpowiedzi

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

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

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

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

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

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...