tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
23
ZUGRIFFE
882
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    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.
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
     
    Markus Wulftange

  3. #3
    hans_schmid hans_schmid ist offline Mitglied Gold
    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.:

    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">';} 
    Ungefähr so würd ich das versuchen...

    MfG
    Hans
     

  4. #4
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    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.
     

  5. #5
    Avatar von modo
    modo modo ist offline Rookie
    Registriert seit
    Aug 2004
    Ort
    Zürich (Schweiz)
    Beiträge
    7
    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:
    PHP-Code:
    <?php
        session_start
    ();
         if(isset(
    $_POST['stil'])){
             
    $_SESSION['stil'] = $_POST['stil'];
         }
         elseif(!isset(
    $_SESSION['stil'])){
             
    $_SESSION['stil']= 'Standart';
         }
    ?>
    nun im header das über Radiobuttons gewählte style dynamisch anzeigen:
    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>
    Das Formular sieht folgendermassen aus:
    PHP-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>
    Die werte der Radiobuttons und der Dateiname der CSS Datei sollten identisch sein

    Der Komplette Code hier als zip

    Hoffe du kannst das gebrauchen

    Gruss Modo
    Angehängte Dateien Angehängte Dateien
     
    Modo
    the world is crazy

  6. #6
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Zitat Zitat von hans_schmid
    Naja... ein Formular erstellen, dass via PHP_SELF auf sich selbst verweist und dann im Head des Scripts z.B.:

    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">';} 
    Ungefähr so würd ich das versuchen...

    MfG
    Hans
    Das geht auch einfacher.
    Wenn Du, wie im Beispiel als Werte die Namen der CSS-Files angibst kannst Du mit folgendem Code arbeiten:
    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">';
     } 
    Der Vorteil ist, dass Du diesen Code unabhaengig von der Anzahl der angebotenen Styles nutzen kannst.
    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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Hier noch ein Verweis zu einem verwandten Thema im HTML-Forum. Dort gibt es auch noch ein paar weiterführende Verweise.
     
    Markus Wulftange

  8. #8
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    Hallo,

    super, ich habs geschaft, es klapt. Vielen Jungs/Mädels ihr seid die besten.

    Grüße
    feh
     

  9. #9
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    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?
     

  10. #10
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    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

  11. #11
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    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.
     

  12. #12
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    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:

    PHP-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"$styletime()+31536000'/switcher/''contrastsweb.com''0');
             }
    if(isset(
    $_SERVER['HTTP_REFERER'])){
    header("Location: "$_SERVER['HTTP_REFERER']);
    exit;
    }
    else {
             
    header("Location: http://localhost/index6.php");
             exit;
    }
    ?>
    Dort habe vom original aus unter
    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:
    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>
    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.

    Ich könnte also wieder mal Hilfe gebrauchen.
     

  13. #13
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    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'$styletime()+31536000'/'$_SERVER['HTTP_HOST']);
        


    ?>
     
    Markus Wulftange

  14. #14
    Avatar von son gohan
    son gohan son gohan ist offline Mitglied Diamant
    Registriert seit
    Dec 2004
    Beiträge
    1.742
    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:

    PHP-Code:
    NoticeUndefined indexHTTP_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:13in 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:13in C:\Programme\OmniSecure\htdocs\switcher.php on line 17 
    Kann man das ganze etwas nur übers Internet testen oder müsste es auch über mein virtuellen OmniSecure Server gehen?

    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?
     

  15. #15
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    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

  1. VBA Anfrage
    Von jensr2 im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 09.09.07, 18:58
  2. GET Anfrage
    Von downset04 im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 16.10.05, 19:21
  3. Anfrage Formular
    Von xppx im Forum PHP
    Antworten: 40
    Letzter Beitrag: 30.09.04, 16:44
  4. | SQL DB2 Anfrage |
    Von dbtutorials im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 17.08.04, 22:21