ERLEDIGT
JA
JA
ANTWORTEN
23
23
ZUGRIFFE
882
882
EMPFEHLEN
-
Hallo,
Müsste dass nicht mit PHP machbar sein?
Auswahl des Style meiner Homepage sagen wir mal per Radio-Button.
Abfrage per PHP ob ein Style gewählt wurde, wenn nicht dann default.css per echo einbinden.
Ich will zu meiner Homepage zwei verschiedene Designs anbieten. Dazu habe zwei CSS Dateien erstellt die ich jetzt irgendwie wechseln lassen können muss vom Besucher aus.
Wozu das Rad jeden Tag neu erfinden es gibt ja normalerweise schon so viele fertige Scripts, aber wonach ich da suche finde ich einfach nicht.
-
Hast du schon bei Google oder anderen Suchmaschinen gesucht?
Markus Wulftange
-
25.06.05 17:28 #3
- Registriert seit
- Jul 2003
- Beiträge
- 180
Naja... ein Formular erstellen, dass via PHP_SELF auf sich selbst verweist und dann im Head des Scripts z.B.:
Ungefähr so würd ich das versuchen...PHP-Code:if(!isset($_POST[styleauswahl])) {echo '<link rel="stylesheet" href="default.css" type="text/css">';}
elseif($_POST[styleauswahl] == "style1"){echo '<link rel="stylesheet" href="style1.css" type="text/css">';}
elseif($_POST[styleauswahl] == "style2"){echo '<link rel="stylesheet" href="style2.css" type="text/css">';}
MfG
Hans
-
Hallo,
@ Gumbo, klar hab da schon mal gesucht aber nicht gerade was richtiges gefunden. Aber mit deinem Suchwort kommt schon mehr zum Vorschein werde es mir nochmal in Ruhe anschauen ob da jetzt nicht was bei ist.
-
Hallo Feh,
also ich würde das ganze mit sessions lösen.
So hast du den vorteil dass das gewünschte Layout auf jeder nachfolgender eingesetzt wird.
Als erstes eine Session öffnen:
nun im header das über Radiobuttons gewählte style dynamisch anzeigen:PHP-Code:<?php
session_start();
if(isset($_POST['stil'])){
$_SESSION['stil'] = $_POST['stil'];
}
elseif(!isset($_SESSION['stil'])){
$_SESSION['stil']= 'Standart';
}
?>
Das Formular sieht folgendermassen aus:PHP-Code:<!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=iso-8859-1" />
<link href="<?php echo $_SESSION['stil']?>.css" type="text/css" rel="stylesheet" />
<title>StyleSwitcher</title>
</head>
Die werte der Radiobuttons und der Dateiname der CSS Datei sollten identisch seinPHP-Code:<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
<input name="stil" type="radio" value="Standart" />
Standart Layout <br />
<input type="radio" name="stil" value="Bunte" />
Buntes Layout <br />
<input type="radio" name="stil" value="Druck" />
Druck Layout <p></p>
<input type="submit" name="Submit" value="Auswählen" class="button" />
</form>
Der Komplette Code hier als zip
Hoffe du kannst das gebrauchen
Gruss ModoModo
the world is crazy
-
Das geht auch einfacher.
Zitat von hans_schmid

Wenn Du, wie im Beispiel als Werte die Namen der CSS-Files angibst kannst Du mit folgendem Code arbeiten:
Der Vorteil ist, dass Du diesen Code unabhaengig von der Anzahl der angebotenen Styles nutzen kannst.PHP-Code:if (!isset($_POST['styleauswahl']))
{
echo '<link rel="stylesheet" href="default.css" type="text/css">';
}
else
{
echo '<link rel="stylesheet" href="'.$_POST['styleauswahl'].'.css" type="text/css">';
}
Du musst halt nur die Auswahl erweitern, aber brauchst nichts am PHP-Code zu aendern damit weitere Styles aktiviert werden koennen.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Hier noch ein Verweis zu einem verwandten Thema im HTML-Forum. Dort gibt es auch noch ein paar weiterführende Verweise.
Markus Wulftange
-
Hallo,
super, ich habs geschaft, es klapt. Vielen Jungs/Mädels ihr seid die besten.
Grüße
feh
-
Hallo,
neues Problem, ich kann jetzt zwar die Styles mit dem Styleswitcher ändern, aber eines der beiden Design welche man darüber auswählne kann benötigt das der IE in die Quirksmode geschaltet wird.
Ist es daher möglich irgendwie auch bei Auswahl eines Styles per Switcher eine XML Deklaration vor dem Doctype anzubringen?
-
Es kommt darauf an, wie der Style Switcher arbeitet. Ist es ein serverseitiger – beispielsweise mit PHP – sollte es kein Problem darstellen, neben der Angabe des zu verknüpfenden Style Sheets auch ein paar weitere Zeilen Quellcode auszugeben.
Markus Wulftange
-
Hallo,
gut zu wissen Gumbo das es gehen müsste, ich kann mich da auch wieder an ein PHP Script von dir erinnern das du mir mal für XHTML gegeben hattest, welches auch eine XML Deklaration einbaut wenn der Browser XHTML unterstützen tut.
Wegen dem Switcher konnte ich mich noch nicht entscheiden ob ich den von modo nehme oder das Beispiel von hans_schmid versuche.
Ich muss auch erst einmal ein Appacher Server lokal installieren zum testen. Da hab ich noch etwas Probleme mit dem XAMPP den ich mir dazu geladen habe.
-
Hallo,
ich habe mir jetzt endlich mal einen Webserver auf den Rechner installieren können und wollte jetzt mal ein PHP Switcher bauen.
Ich habe auch unter http://www.contrastsweb.com/switcher/v1/source.php einen recht simpelen Switcher gefunden.
Das ganze habe ich versucht in meine Seite einzubauen, es kommt zwar keine Fehlermeldung, aber wechseln tut er auch nicht.
Ich weis nicht woran es liegen könnte, ich habe eine schwitcher.php Datei und eine index6.php erstellt.
Die swichtcher.php sieht so aus:
Dort habe vom original aus unterPHP-Code:<?php
$accept = array('normal','different');
if(isset($_REQUEST['set'])){
$style = trim(strip_tags($_REQUEST['set']));
}
else if(isset($_POST['set'])){
$style = trim(strip_tags($_POST['set']));
}
if(in_array($style, $accept)){
setcookie("sitestyle", $style, time()+31536000, '/switcher/', 'contrastsweb.com', '0');
}
if(isset($_SERVER['HTTP_REFERER'])){
header("Location: ". $_SERVER['HTTP_REFERER']);
exit;
}
else {
header("Location: http://localhost/index6.php");
exit;
}
?>
header("Location: http://contrastsweb.com/switcher/example.php"); versucht mit der Änderung inheader("Location: http://localhost/index6.php");
was zu machen. Weiterhin steht in der swichter.php noch an einer Stelle setcookie("sitestyle", $style, time()+31536000, '/switcher/', 'contrastsweb.com', '0');dort stört mich die Angabe 'contrastsweb.com' .Ich kann das ganze leider mit meinen PHP Kentnisse noch nicht ganz nachvollziehen, aber ich vermute das dort nicht 'contrastsweb.com' stehen sollte. Nur weis ich auch nicht was passiert wenn ich es da weg nehme.
In der index6.php Datei vermute ich keine Fehler gemacht zu haben:Das ganze sieht dort simpel aus. Ich weis auch nicht so recht was ihr von den swichter halten tutu, aber den hatte ich mir am ehesten noch zugetraut nachdem ich versuchthatte erst noch alle anderen Beispiele aus diesem Tread zu bauen.PHP-Code:<link rel="stylesheet" href="<?php if(isset($_COOKIE['sitestyle'])){ print trim($_COOKIE['sitestyle']); } else { print "normal"; } ?>.css" media="screen" /><link rel="alternate stylesheet" href="normal.css" media="screen" title="Default Style" />
<link rel="alternate stylesheet" href="different.css" media="screen" title="Different Stylesheet" /> <p><a href="switcher.php?set=fkstu">Different stylesheet</a><br />
<a href="switcher.php?set=fkstyl">Normal stylesheet</a></p>
Ich könnte also wieder mal Hilfe gebrauchen.
-
Wirf einfach mal einen Blick in die Referenz der setcookie()-Funktion, dort gibt es Beschreibungen der einzelnen Funktionsparameter. So beschreibt beispielsweise der fünfte Parameter die Domain, die in deinem Fall auch der tatsächlichen Domain entsprechen sollte:
PHP-Code:<?php
…
setcookie('sitestyle', $style, time()+31536000, '/', $_SERVER['HTTP_HOST']);
…
?>Markus Wulftange
-
Hallo,
ich muss mir echt mal ein wenig was über header und vor allem session bei php.net durchlesen, aber auf Anhieb konnt ich jetzt nicht viel verstehen zum Thema Cookie dort.
In der switcher.php Datei habe ich die Zeile geändert wie du es vorgeschlagen hast, aber es kommt dann zu einer Fehlermeldung wenn ich ein anderes Styl wähle:
Kann man das ganze etwas nur übers Internet testen oder müsste es auch über mein virtuellen OmniSecure Server gehen?PHP-Code:Notice: Undefined index: HTTP_HOST in C:\Programme\OmniSecure\htdocs\switcher.php on line 13
Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\OmniSecure\htdocs\switcher.php:13) in C:\Programme\OmniSecure\htdocs\switcher.php on line 13
Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\OmniSecure\htdocs\switcher.php:13) in C:\Programme\OmniSecure\htdocs\switcher.php on line 17
Wen ja, was können da noch an Fehler sein? Die Fehlermeldungen sagen mir zwar das irgendwie kein header deffienirt ist, aber ich kann das alles nicht richtig zuordnen
)
Dann noch eine Frage wegen der anderen Lösung di du früher mal angeredet hattest oder auch die von modo, die scheinen ohne Cookies zu laufen, würdest du nicht auch eher zu denen tendieren?
-
Nun, die Meldungen sagen nur, dass einerseits kein Element der $_SERVER-Variable mit dem Index HTTP_HOST existiert (was ich mir eigentlich nicht erklären kann), und dass kein zusätzlicher HTTP-Header zum Senden der Cookie-Informationen mehr gesendet werden kann, da bereits eine Ausgabe erfolgte (siehe „Ich bekomme die Meldung 'Warning: Cannot send session cookie - headers already sent...' oder 'Cannot add header information - headers already sent...'“).
Allgemein müssen HTTP-Header vor dem Senden des eigentlichen Inhalts gesendet werden.Markus Wulftange
Ähnliche Themen
-
VBA Anfrage
Von jensr2 im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 09.09.07, 18:58 -
GET Anfrage
Von downset04 im Forum HTML & XHTMLAntworten: 1Letzter Beitrag: 16.10.05, 19:21 -
Anfrage Formular
Von xppx im Forum PHPAntworten: 40Letzter Beitrag: 30.09.04, 16:44 -
| SQL DB2 Anfrage |
Von dbtutorials im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 17.08.04, 22:21





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren