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

PHP - Session - Styleswitcher

T!P-TOP

Mitglied
Hallo erstmal :)

Hab ihr was gefunden, was sicher ein nettes Zusatzextra für eine Homepage is.

Nur weiß ich nicht genau wie ich das zum Laufen bringe:

Erste Lösung

Von: www.css-praxis.de/scripte.html
Folgender Code sollte ganz am Anfang (vor der Doctype Angabe) der HTML-Datei angebracht werden:
<?php
session_start();
if ( isset($_GET['style']) ) {
$_SESSION['style'] = $_GET['style'];
}
elseif ( !isset($_SESSION['style']) ) {
$_SESSION['style'] = 'default';
}
?>

Weiter unten im Kopfbereich kommt die zweite Angabe:
<style type="text/css">
<!--
@import url("css/<?php echo $_SESSION['style']?>.css");
-->
</style>

oder alternativ:
<link rel="stylesheet" type="text/css" href="css/<?php echo $_SESSION['style']?>.css">
Und auf die Seite wo die verschiedenen Styles ausgelöst werden, kommen folgende Angaben:
<a href="<?php echo $_SERVER['PHP_SELF']?>?style=default">Das Standard-Design</a>
<a href="<?php echo $_SERVER['PHP_SELF']?>?style=style1">Design 1</a>
<a href="<?php echo $_SERVER['PHP_SELF']?>?style=style2">Design 2</a>

Naja gut....

Also so in etwa:

HTML:
<?php
session_start();
if ( isset($_GET['style']) ) {
$_SESSION['style'] = $_GET['style'];
}
elseif ( !isset($_SESSION['style']) ) {
$_SESSION['style'] = 'default';
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ohne_Titel_2</title>
<link rel="stylesheet" type="text/css" href="css/<?php echo $_SESSION['style']?>.css">
</head>
<body>
<a href="<?php echo $_SERVER['PHP_SELF']?>?style=style1">Vergrößern +</a>
<a href="<?php echo $_SERVER['PHP_SELF']?>?style=default">Standard </a>
<a href="<?php echo $_SERVER['PHP_SELF']?>?style=style2">Verkleinern -</a>
Hello World!
</body>
</html>

Nur versteh ich nicht, wie ich das mit den Datein machen muss!?
Ich hab jetzt drei CSS Datein, in der ersten Schriftgröße 0.9em(das wäre in meinem Fall der Standard), dann in der 2. CSS Datei die Schfrittgröße 1em (so groß soll sie bei vergrößern werden) und schließlich die 3. CSS Datei mit einer Schriftgröße von 0.8/0.85 (also verkleinern.

Ich nenn sie jetzt:

website.css (standard)
website1.css (soll bei vergrößern eingesetzt werden)
website2.css (soll bei verkleinern eingesetzt werden)

Wie muss der PHP Code jetzt in meinem Fall aussehen?

Danke schon im vorraus!

MfG,
T!P-TOP
 
Die drei CSS-Dateien müssen

- default.css (als Standard)
- style1.css
- style2.css

lauten und alle im Ordner css liegen. Dann sollte es funktionieren.

Für andere Dateinamen müsstest du entsprechende Scriptstellen ändern, was der Aufwand aber eigentlich nicht Wert ist, da das Ergebnis gleich wäre.
 
HTML:
<?php
session_start();
if ( isset($_GET['style']) ) {
$_SESSION['style'] = $_GET['style'];
}
elseif ( !isset($_SESSION['style']) ) {
$_SESSION['style'] = 'default';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Nicolas Pecher</title>
<link rel="stylesheet" type="text/css" href="website.css">
<link rel="stylesheet" type="text/css" href="<?php echo $_SESSION['style']?>.css">
</head>
<body>
<p class="styleneu">Schriftgröße ändern:</p>
<p class="styleneu"><a href="<?php echo $_SERVER['PHP_SELF']?>?style=style1">+</a></p>
<p class="styleneu2"><a href="<?php echo $_SERVER['PHP_SELF']?>?style=default">Standard</a></p>
<p class="styleneu2" ><a href="<?php echo $_SERVER['PHP_SELF']?>?style=style2">-</a></p>

<h1>Willkommen auf meiner Website!</h1>
<p>
Du findest hier aktuelle, interessante News, Tutorials zu den Bereichen (X)HTML und CSS sowie kostenlose Scripts.
</p>
</body>
</html>

Funktioniert komischer Weise nicht.

Hier der link: www.banner.3w4you.net
 
Du hast einen Leichtsinnsfehler:
PHP:
<?php echo $_SESSION['style']?>

So müsste es heißen
PHP:
<?php echo $_SESSION['style']; ?>
 
HTML:
<?php
session_start();
if ( isset($_GET['style']) ) {
$_SESSION['style'] = $_GET['style'];
}
elseif ( !isset($_SESSION['style']) ) {
$_SESSION['style'] = 'default';
}
?>
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>+</title>
 
<link rel="stylesheet" type="text/css" href="website.css">
<link rel="stylesheet" type="text/css" href="<?php echo $_SESSION['style']; ?>.css">
 
</head>
 
<body>
<p class="styleneu">Schriftgröße ändern:</p>
<p class="styleneu"><a href="<?php echo $_SERVER['PHP_SELF'] ?>?style=style1">+</a></p>
<p class="styleneu2"><a href="<?php echo $_SERVER['PHP_SELF'] ?>?style=default">Standard</a></p>
<p class="styleneu2" ><a href="<?php echo $_SERVER['PHP_SELF'] ?>?style=style2">-</a></p>
 
 
<h1>Willkommen auf meiner Website!</h1>
 
<p>
Du findest hier aktuelle, interessante News, Tutorials zu den Bereichen (X)HTML und CSS sowie kostenlose Scripts.
</p>
 
</body>
 
</html>
</body>
 
</html>

Funktioniert nachwievor nicht!? Muss ich das ganze als .php abspeichern, oder kann ichs als .htm lassen?
 
Wenn der Link an
Code:
<?php echo $_SERVER['PHP_SELF'] ?>?style=style1">
geht, solltest du es als PHP abspeichern, oder html datein durch den Parser von PHP jagen lassen:
Google :arrow: addhandler, htaccess

Ansonsten: Du musst jedes echo mit einem Semikolon beenden, damit php weis, das eine Anweisung zu ende ist.

[edit]
Okay dann hast dus ja schon, das mit dem Semikolon würde ich trotzdem beachten

[edit2]
Wie sehen denn deine Stylesheets aus? Vielleicht überschreibt er was?

[edit3]
Du musst auch die Klassen styleneu und styleneu2 ändern, da diese aufjedenfall p überschreiben, da die Definition näher ist.
 
Ok Semilikon ha ich bei den 3 Echos noch hinzugefügt. Hab aber wie ich am Server war, gesehen, das meine Datein style1.css.css heißten, also ein .css zu viel. Deswegen hat er die CSS Stylesheets wohl nicht wechseln können. Jetzt funktionierts jedenfalls :D Danke für die Hilfe.
 
Zurück
Oben