php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.02.2005, 13:21  
Gast
 
Beiträge: n/a
Standard [Erledigt] probleme mit php-style-switcher

hallo phpfriend.de community!

ich wollte für mein portfolio einen style-switcher coder, doch leider habe ich ein problem mit den cookies.
hier einmal der code im head-bereich der .php dokumente:
[quote
PHP-Code:
<? 
$_GET
["style"]; 

if (!isset (
$_COOKIE["style"])) 

switch(
$style){ 
   case 
"org": echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"tsdv3.css\">"setcookie("style"$_GET["style"], time()+3600);break; 

   case 
"earth": echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"nav/earth/earth.css\">"setcookie("style"$_GET["style"], time()+3600);break; 

  default: echo 
"<link rel=\"stylesheet\" type=\"text/css\" href=\"tsdv3.css\">"; break; 
     } 
  } 
else 
    { 
switch(
$style){ 
   case 
"org": echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"tsdv3.css\">"setcookie("style",$_GET["style"], time()-4600); setcookie("style"$_GET["style"], time()+3600); break; 

   case 
"earth": echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"nav/earth/earth.css\">"setcookie("style",$_GET["style"], time()-4600); setcookie("style"$_GET["style"], time()+3600);break; 

   default: echo 
"<link rel=\"stylesheet\" type=\"text/css\" href=\"tsdv3.css\">"; break; 


?>
[/quote]
wenn kein cookie gesetzt ist, setz einen und wenn ein cookie gesetzt ist und ein anderer case (also style) gewählt wird, lösche den alten cookie und setze dann einen neuen.

mit der hilfe von $_GET variablen überge ich die verschiedenen cases:
so nun mein problem, wenn ich einen anderen style wählen will, muss ich den link zweimal drücken, ich schätze es liegt also an den cookies, entweder werden die nicht sofort gelöscht. ich weiss aber nicht warum, das verfallsdatum liegt in dervergangenheit.

vielleicht kann mir ja einer von euch helfen, wäre sehr fein.

lg
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.02.2005, 13:35  
Gast
 
Beiträge: n/a
Standard

3 Fragen:

1. Aus welchem Hut zauberst du $style
2. Welchen Sinn soll die Zeile $_GET["style"]; haben?
3. Welchen Sinn hat setcookie("style",$_GET["style"], time()-4600); setcookie("style",$_GET["style"], time()+3600);

Außerdem sieht dein Quellcode grausam aus.

Gruß
phpfan
 
Alt 09.02.2005, 13:37  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

benutzt vieleicht mal die [php]-tags und quellcode einrücken schadet nie ?
robo47 ist offline  
Alt 09.02.2005, 13:40  
Gast
 
Beiträge: n/a
Standard

mein tip: arbeite ohne cookies:

PHP-Code:
<?php

    $style
=(isset($_GET['style']) AND ($_GET['style']=="org" OR $_GET['style']=="earth"))?$_GET['style']:"org";

    if (
$style=="org") {
        echo 
"<link rel=\"stylesheet\" type=\"text/css\" href=\"org.css\"/>";
    } else if (
$style=="earth") {
        echo 
"<link rel=\"stylesheet\" type=\"text/css\" href=\"earth.css\"/>";
    }

    
// Link auf eine andere Seite, gleiche Abfrage drinne wie oben..
    
echo "<a href=\"seite2.php?style=".$style."\">Seite2</a>
"
;

?>
gruss
 
Alt 09.02.2005, 13:42  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von phpfan
3 Fragen:

1. Aus welchem Hut zauberst du $style
2. Welchen Sinn soll die Zeile $_GET["style"]; haben?
3. Welchen Sinn hat setcookie("style",$_GET["style"], time()-4600); setcookie("style",$_GET["style"], time()+3600);
ad 1) die wird bei den links als get-variable übergeben -> sieh index.php?style=org

ad2) soll auch bei register_globals off_ die variable $style korrekt übergeben

ad3)
Zitat:
setcookie("style",$_GET["style"], time()-4600);
soll einen cookie löschen, wenn einer vorhanden ist und
Zitat:
setcookie("style",$_GET["style"], time()+3600);
soll den neuen cookie mit dem neuen style setzen.

ich weiss das mein quellcode hier grauenhaft aussieht, beim schreiben rück ich es eh immer ein - also in den dokumenten.
 
Alt 09.02.2005, 13:45  
Gast
 
Beiträge: n/a
Standard

dann setz doch wenigstens [php]-tags drum, dann ist es schonmal eingefärbt.

[php:f72e73e15c]<?php

echo "gruss";

?>[/php:f72e73e15c]
 
Alt 09.02.2005, 13:47  
Gast
 
Beiträge: n/a
Standard

sorry, diese funktion, hab ich bis jetzt übersehen...

wenn ich ohne cookies arbeite muss ich also jeder url den style mitübergeben...

was ich aber noch nicht ganz verstehe ist:


Zitat:
PHP-Code:
<? $style=(isset($_GET['style']) AND ($_GET['style']=="org" OR $_GET['style']=="earth"))?$_GET['style']:"org"?>
hier wird ja der style abgefragt, ist er gesetzt und "org" oder "earth - warum ist er dann immer
PHP-Code:
<? ..."))?$_GET['style']:"org"; ?>
?
 
Alt 09.02.2005, 13:53  
Gast
 
Beiträge: n/a
Standard

Zu 1. Das ist dummes Zeug!
Zu 2. Das ist dummes Zeug!
Zu 3. Das ist dummes Zeug!

Damit ist Punkt 1 und 2 abgefrühstückt:
PHP-Code:
<?
   
if (isset($_GET['style']))
     
$style $_GET['style'];
   else
     
$style "";
?>
Zu 3. Man musst einen Cookie nicht löschen, ein erneutes setzen reicht!
Ungetestet
PHP-Code:
<?
   
if (isset($_GET['style']))
     
$style $_GET['style'];
   else if (isset (
$_COOKIE["style"])) 
     
$style $_COOKIE['style'];
   else
     
$style "";

   switch(
$style)
   { 
     case 
"org":   echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"tsdv3.css\">";
                   
setcookie("style""org"time()+3600);
                   break; 
     case 
"earth": echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"nav/earth/earth.css\">";
                   
setcookie("style""earth"time()+3600);
                   break; 
     default:      echo 
"<link rel=\"stylesheet\" type=\"text/css\" href=\"tsdv3.css\">";
                   break; 
  } 
?>
Gruß
phpfan
 
Alt 09.02.2005, 14:01  
Gast
 
Beiträge: n/a
Standard

danke, phpfan - es funktioniert, ich hätte nur noch eine verständnis frage...

PHP-Code:
<?
if (isset($_GET['style'])) 
     
$style $_GET['style']; 
   else if (isset (
$_COOKIE["style"])) 
     
$style $_COOKIE['style']; 
   else 
     
$style ""?>
wenn die variable style gesetzt ist dann ist $style der mit der url-übergebene style. wenn der cookie style gesetzt ist, dann ist es der style der im cookie drinsteht und wenn kein style gesetzt ist, tritt der default-case beim switch ein oder? hab ich das so richtig verstanden?
 
Alt 09.02.2005, 14:34  
Gast
 
Beiträge: n/a
Standard

Also, dass man hier schon if/else if/else erklären muss......
Code:
Wenn style über URL kommt
   $style = $_GET['style']; 
oder wenn style per Cookie gesetzt ist
   $style = $_COOKIE['style']; 
sonst
   $style = "";
Gruß
phpfan
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Firefox / IE - Probleme HTML, Usability und Barrierefreiheit 5 20.07.2009 17:04
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
style = overflow mit dem ie probleme sysop HTML, Usability und Barrierefreiheit 2 14.10.2006 19:05
Probleme mit Rechteverteilung chmod() per script!!!??? Funky_ PHP Tipps 2006 7 17.06.2006 17:10
Probleme bei der Installation von Turck MMCache tomx992 PHP-Fortgeschrittene 2 27.09.2005 20:31
Probleme beim Datenupload zu meiner Datenbank Datenbanken 3 05.09.2005 19:47
Switcher Probleme PHP Tipps 2005-2 0 13.08.2005 15:35
Probleme mit Sonderzeichen... Datenbanken 1 02.08.2005 23:37
Style Beitragsarchiv 3 14.07.2005 15:00
[php] css style switcher nach uhrzeit PHP Tipps 2005 7 15.04.2005 13:42
[Erledigt] hilfe! probleme mit... PHP Tipps 2005 4 12.04.2005 22:55
Zwei Rechner ins Netz - Router - Hub - Probleme... imported_Ben Off-Topic Diskussionen 37 13.01.2005 21:36
[Erledigt] nur in tabelle style benutzen! HTML, Usability und Barrierefreiheit 10 17.12.2004 20:23
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
PHP Styleswitcher Probleme PHP Tipps 2004 4 25.08.2004 13:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
stylesheet switcher cookie, styleswitcher css nach uhrzeit, php style, php style link, setcookie php style, style in php, switcher.php, styleswitcher php, php styleswitcher, php style switch, switch firefox fehler php, setcookie php register_global problem, styleswitcher barrierefrei, css switcher.php, php switcher stylesheet, if(!isset($_cookie[\style\])){, php styl, .php style, styleswitcher ohne cookie, php css switcher ohne cookies

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.