• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

neuer User / erste Frage

MH223

Neues Mitglied
Hallo allerseits,
habe mich hier angemeldet, um etwas schlauer zu werden.
Bin 64, Rentner und allem gegenüber aufgeschlossen, was Internet betrifft.
Habe mir im Lauf der Zeit eine Webseite zurechtgebastelt ( mittels Try and Error ) und bin auch soweit ganz zufrieden damit.
Meine heutige Frage:
Da die üblichen Styleswitcher-Programmcodes bei mir oder mit meinem IQ nicht funktionierten, habe ich mir ein eigenes Konzept ausgedacht:
Der HTML-Code wird durch PHP am Server erzeugt, soweit normal. Beim Aufruf von index.php werden zwei Variable mitgegeben, $seite für die einzufügende Seite und $stil für den einzubindenden Stylesheet.
Hier der Codeausschnitt :

PHP:
<?php
if ( !isset ( $_GET['stil']    ))   {  $stil="1";   }  else  {  $stil=$_GET['stil'];  }
if ( !isset ( $_GET['seite'] ))   {  $seite="neustart";  }  else  {  $seite=$_GET['seite'];  }
.
.
.
<style type=\"text/css\">@import url(../stylesheet$stil.css); </style>
.
.
.
PHP:
switch ($seite) 
    {
    case "neustart":        $text="Nur eine Empfehlung"; include 'headline.php'; 
                        echo "<div id='main'>\n"; include 'zeigen_neustart.php';      echo "\n\n</div>";    
                        break;
    case "max herla":        $text="Hallo an alle, willkommen auf meiner Webseite"; include 'headline.php'; 
                        echo "<div id='main'>\n"; include 'zeigen_start.php';     echo "\n</div>";    
                        break;
.
.
.

Hiermit wird der je nach $stil ( =1, 2, 3 oder 4 ) der zu importierende stylesheet1.css, stylesheet2.css ..... definiert.
Das funktioniert bestens, ich vermisse nur die Möglichkeit den eingestellten Stil als Cookie zu speichern. Alle Versuche meinerseits mit SetCookie gingen schief, ich konnte zwar beim ersten Mal ein Cookie speichern, aber dann nicht mehr ändern.
Kann mir da einer einen Tip geben ???

Danke im Voraus
Max
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
willkommen bei uns ;-)

also am nächsten käme es, wenn du den style-namen per cookie speichern und bei wiederabruf der seite auslesen würdest:

PHP:
<?php
//muss vor jeglicher (HTML-)ausgabe stehen
set_cookie('style', .$stil);
?>

und die ganze prozedur rückwärts, wenn jemand den keks hat, ablaufen lässt um den cookie-wert wieder in die style-definition einzufügen.

Nils aka XraYSoLo
 
ok, das hab ich auch gemacht, der Cookie war auch gesetzt, ich brachte es aber nicht fertig, ihn dann nach Ändern von $stil auf den neuen Wert zu setzen .

das mit den Cookies hab ich glaub ich vom Grundsatz her noch nicht begriffen :cry:

Mal noch ne Frage zwischenrein:
ist das so, wie ich das mache, eigentlich gut oder gibt es bessere Wege ?
Gibt es bei euch ein Forum, wo man seine Web-Ergüsse beurteilen lassen kann ?

Tschuldigung, habs grade gefunden.
 
Zuletzt bearbeitet:
Werbung:
[...] ich brachte es aber nicht fertig, ihn dann nach Ändern von $stil auf den neuen Wert zu setzen .

ja, bei jedem wechsel muss das alte cookie gelöscht und ein neues erstellt werden. kekse updaten funktioniert nicht.


das mit den Cookies hab ich glaub ich vom Grundsatz her noch nicht begriffen :cry:

da bist du bei leibe nicht der einzige, man braucht sie auch so gut wie nie...


ist das so, wie ich das mache, eigentlich gut oder gibt es bessere Wege ?

datenbanken, aber nur bedingt, da du sonst die benutzer nicht eindeutig auseinanderhalten kannst.


Gibt es bei euch ein Forum, wo man seine Web-Ergüsse beurteilen lassen kann ?

--> Websitecheck

Nils aka XraYSoLo
 
ja, bei jedem wechsel muss das alte cookie gelöscht und ein neues erstellt werden. kekse updaten funktioniert nicht.

wie heisst der Befehl zum Cookie-löschen :roll:
soll das so gehn ? :
<?php
$stil= $_COOKIE["Style"];
setcookie ("Style", "", time() - 3600); ??? Cookie löschen ???
setcookie("Style", $stil); ??? das muss dann dahin, wo ich meinen $stil ändere ???

<a href=\"index.php?seite=$seite&stil=3\" onClick='setcookie(\"Style\", 3)'>Style3</a> ??? da hapert's ???
 
Zuletzt bearbeitet:
wie heisst der Befehl zum Cookie-löschen

neues cookie setzen, dessen lebensdauer >1 ist.


<a href=\"index.php?seite=$seite&stil=3\" onClick='setcookie(\"Style\", 3)'>Style3</a> ??? da hapert's ???

ja dass es so nicht geht, ist auch klar, die soll denn eine serverseitige funktion aus einem clientseitigen link ausgeführt werden?
musst eine if-else-abfrtage dazu schreiben, die sofort, nachdem das cookie gelöscht wurde, überprüft und ggf. ein neues erstellt.

Nils aka XraYSoLo
 
Werbung:
ja dass es so nicht geht, ist auch klar, die soll denn eine serverseitige funktion aus einem clientseitigen link ausgeführt werden?
musst eine if-else-abfrtage dazu schreiben, die sofort, nachdem das cookie gelöscht wurde, überprüft und ggf. ein neues erstellt.

Nils aka XraYSoLo

:shock::shock::shock:
schlafen gehn, nachdenken
:shock::shock::shock:
 
Hey erstmal im Forum,
das was du gemacht hast würde auch funktionieren wenn du set_cookie als Javascript funktion einbaust ;-)
Aber ich rate dir wie Xray zur Serverseitigen Variante

sprich das du den Cookie nach dem Link aufruf setzt im PHP script drin
 
Guten Morgen,

ich habe jetzt folgendes probiert:

if ( isset ( $_COOKIE['style'] ))
{
setcookie ("style", "", time() - 3600);
setcookie("style", $stil, time()+3600);
}
else
{
setcookie ("style", $stil, time() + 3600);
};
.
.
$tt=$_COOKIE["style"];
.
.
<title>$tt</title>
damit lass ich den Wert im Tab-titel anzeigen
.
jetzt passiert folgendes :

beim ersten Aufruf der Seite mit index.php ohne Übergabevariablen steht im Titel "null", ist logisch ...
beim zweiten Aufruf über einen Menuepunkt steht im Titel die etwas gestauchte url, also "http://max-he...herla&stil=1"
ab dem dritten Aufruf nur noch "null"

Im Firefox steht unter Cookies zwar der Cookie-Name, aber im Wert grundsätzlich null.

Wo mach ich da was falsch ??????????
 
Werbung:
nein, vorher steht
if ( !isset ( $_GET['stil'] )) { $stil="1"; } else { $stil=$_GET['stil']; }

die Variable $stil ist definitiv belegt, sonst würde die ganze Seite nicht funktionieren.

mittlerweile steht beim zweiten Aufruf tatsächlich die "1" im Titel, dann aber nur noch "null"
kannsts ja probieren, unten steht die Adresse
 
Zuletzt bearbeitet:
Also bei mir in Firefox funktioniert das mit den Styles. Jetzt ist die Frage ob eine Session nicht ausreichen würde. heisst man würde zwar bei jedem schließen des Browsers den alten Style wieder haben. Ich hab für meine Benutzer (mit Login) den Style in der Datenbank gespeichert. So wird beim Login der Style ausgelesen und in die Session gesetzt. Somit ist es egal, von wo er sich einloggt, er hat immer den Style, den er will. Vor allem gibts du ja bei jedem Link den Stil mit. ist das so gewollt?
Ich würde einfach je nach Stil eine andere CSS File reinladen. Und den Stil kriegt man ja in deinem Fall aus dem Cookie oder in meinem Fall aus der Session :)
Sorry, wenn meine Antwort nicht deine Frage beantwortet. Wollte dir nur ein paar Tipps geben :)
Dann noch gutes Gelingen
 
Werbung:
Also bei mir in Firefox funktioniert das mit den Styles. Jetzt ist die Frage ob eine Session nicht ausreichen würde. heisst man würde zwar bei jedem schließen des Browsers den alten Style wieder haben. Ich hab für meine Benutzer (mit Login) den Style in der Datenbank gespeichert. So wird beim Login der Style ausgelesen und in die Session gesetzt. Somit ist es egal, von wo er sich einloggt, er hat immer den Style, den er will. Vor allem gibts du ja bei jedem Link den Stil mit. ist das so gewollt?
Ich würde einfach je nach Stil eine andere CSS File reinladen. Und den Stil kriegt man ja in deinem Fall aus dem Cookie oder in meinem Fall aus der Session :)
Sorry, wenn meine Antwort nicht deine Frage beantwortet. Wollte dir nur ein paar Tipps geben :)
Dann noch gutes Gelingen
Danke,
das ist auch so gewollt, ich übergebe den Style als 1,2,3 oder 4 und lade den jeweiligen Stylesheet, so funktioniert die Seite auch.
Nur, jetzt wollte ich das mit den Cookies mal probieren und den Style im Cookie speichern und es geht nicht. Ich lass im Moment nur die Variable $_COOKIE['style'] in den Titel schreiben um sie zu prüfen und das geht nicht bzw. nur einmal. Irgendwie scheint er den Cookie nur einmal zu setzen und dann nicht mehr.
Nur das ist mein Problem, da ist ein blöder Computer, der nicht das tut, was ICH will. :twisted::twisted::twisted:
 
Zuletzt bearbeitet:
ich seh grade:
wenn ich im Firefox die Cookies anzeigen lasse, steht meiner schön brav da drin, Name=Style aber mit Wert=null und ohne Gültigkeit, die ich ja eigentlich mit einer Stunde definiert habe, hier steht aber Gültigkeit bis Ende der Sitzung.
Komisch
 
Hallöchen,

die Thematik von wegen PHP und Cookie ist sicherlich eine nützliche Seite, aber es wäre auch ratsam, wenn du vorher deine HTML-Kentnisse erweiterst :) Die Seite ist noch recht benutzerunfreundlich vom Code her.

Ansonsten ist es sehr schön, dass du Interesse zeigst und dich im Forum erkundigst. Weiter so!


Gruß
Loon3y
 
Werbung:
Zurück
Oben