User Tag List

Ergebnis 1 bis 18 von 18

Thema: [PHP] Schema-wechsel??

  1. #1
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [PHP] Schema-wechsel??

    So ick mal wieder.
    Hab lediglich ein kleines Problem.

    Und zwar möchte ich auf meiner Website mit verschiedene Farb-Schemen arbeiten.
    Was ich dann über die Administration schnell ändern kann über Kontrollkästchen.

    Und nu zu meiner Frage:
    Ich will das meine Index.php bei der Auswahl eines Shemas mit einer anderen Seite überschrieben wird. Also zum Beispiel soll die Seite dann Schwarz werden. sinnbildlich so :

    index.php

    *blaues schema wird aus gesucht*

    index_blue.php ----> index. php


    gibt es einen Befehl womit man das bewerkstelligen kann? oder muss ich dafür viele If Anweisungen verwenden?

    danke schon ma.
    [align=center]

    Mein Blog ^^


    [/align]

  2. #2
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    <?php
    switch($_GET['color']){
     case blue:
       include("index_blue.php");
       break;
    
     case red:
       include("index_red.php");
       break;
    
     default:
       include("index.php");
       break;
    }
    ?>
    Sowas in etwa? Das color, das ausgelesen wird, ist dann die php Variable, die in der URL steht:
    www.meine-seite.de/bla/index.php?color=red

    -------------------------

    Alternativ kannst du auch einfach immer ein anderes Style Sheet benutzen.
    Das Sheet selbst wird geladen mit

    Code:
    <link rel="stylesheet" type="text/css" href="pfad/zum/sheet.css">
    im head-Bereich.

    Statt dem regulären Pfad gibst du aber an

    Code:
    href="<?php echo styleselect(); ?>">
    Die Funktion, mit der du das Sheet auswählst, wäre dann wieder mit Switch:

    Code:
    <?php
    
    function styleselect()
    
    {
    switch($_GET['color']){
     case blue:
       return 'blue_style.css';
       break;
    
     case red:
       return 'red_style.css';
       break;
    
     default:
       return 'default_style.css';
       break;
    }
    
    ?>

  3. #3
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hmm..

    die include funktion bleibt doch nur temporär oder?
    und der switch doch auch.
    oder bleiben die auf meinem ftp gespeichert?

    was heißt wenn andere die seite betreten dann sehn die mein aktuelles shema nicht.
    [align=center]

    Mein Blog ^^


    [/align]

  4. #4
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wenn du ein Schema beibehalten willst, musst du dem User einen Eintrag in der SQL Table geben, in dem das momentane Schema gespeichert ist. ZB. ne Spalte mit "red" oder so. Oder über Cookies, welche dann ausgelesen werden.

    EDIT: Die Switch Funktion an sich ist nicht temporär. Temporär wäre nur das hinter dem Fragezeichen.

  5. #5
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hmm..
    hab im php handbuch nachgelesen.

    werd es wohl über sql machn müssen..
    wenn es keinen befehl gibt um eine php mit einer anderen zu überschreiben. v__v

    Hab ich mir aber beinahe so gedacht. ^^"

    also würde das in der theorie so aussehen:

    Abfrage:
    red -----> sql eintrag zu red
    blue ----> sql eintrag zu blau
    black ----> sql eintrag zu schwarz

    ich kontaktiere dann die datenbank mit dem jeweiligen eintrag

    und dann mit der ersten variante die du beschrieben hast wird per include eine der drei phps ausgewählt ^^
    [align=center]

    Mein Blog ^^


    [/align]

  6. #6
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Original von DragStyles
    hmm..
    hab im php handbuch nachgelesen.

    werd es wohl über sql machn müssen..
    wenn es keinen befehl gibt um eine php mit einer anderen zu überschreiben. v__v

    Hab ich mir aber beinahe so gedacht. ^^"

    also würde das in der theorie so aussehen:

    Abfrage:
    red -----> sql eintrag zu red
    blue ----> sql eintrag zu blau
    black ----> sql eintrag zu schwarz

    ich kontaktiere dann die datenbank mit dem jeweiligen eintrag

    und dann mit der ersten variante die du beschrieben hast wird per include eine der drei phps ausgewählt ^^
    Jop, genau das meinte ich, mit der SQL Version. ^^
    Aber da du ja von Usern sprichst, wirst du sicher eh ne SQL Table haben. ;D

    Solltest du mal in die Verlegenheit kommen, dass du KEINE Usertabelle hast, kannst du es wie gesagt auch über Cookies machen, deren Wert du dann ausliest.

    Code:
    <?
    setcookie("Fabrschema","red",Time()+360000);
    ?>

  7. #7
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    mit anderen meinte ich normale surfer di emeien seit esehn

    keine anmeldung und so.

    wie sähe den die switch abfrage aus bei den cookies?
    [align=center]

    Mein Blog ^^


    [/align]

  8. #8
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ähnlich



    Code:
    <?php
    switch($_COOKIE['Farbschema']){
     case blue:
       include("index_blue.php");
       break;
    
     case red:
       include("index_red.php");
       break;
    
     default:
       include("index.php");
       break;
    }
    ?>
    Im Fall von Cookiebenutzung solltest du aber vorher feststellen, ob das Cookie existiert und ob es einen Inhalt hat und es, wenn nicht existent, erstmal erstellen bzw ihm einen Wert zuweisen.

  9. #9
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok..
    also ich benutzt am besten erst setcookie um den cookie festzulegen? öö
    [align=center]

    Mein Blog ^^


    [/align]

  10. #10
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Jop. So mit ner Abfrage wie hier:

    Code:
    <?php 
    if(!isset($_COOKIE['Farbschema']))
    {
    setcookie("Farbschema","red",Time()+360000);
    }
    
    switch($_COOKIE['Farbschema']){
     case blue:
       include("index_blue.php");
       break;
    
     case red:
       include("index_red.php");
       break;
    
     default:
       include("index.php");
       break;
    }
    
    ?>
    In meinem Beispiel würde, wenn das Cookie Farbschema noch nicht existiert, erstmal Standartmäßig den roten Style nehmen. Gültig vom jetztigen Zeitpunkt an genau einen Tag. Danach wird das, dem Cookie entsprechende Farbschema included.

    EDIT: eig könnte man den default-case dann auch weglassen. Aber sicher ist sicher.

  11. #11
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok..

    wie sähe denn dann die auswahl aus ? öö
    Bin da jetzt bissl bverwirrt..


    das formular sieht ja so ohne php aus:

    <body>



    <input type="radio" name="Farbschema" value="red" /> Rot

    <input type="radio" name="Farbschema" value="blue" /> Blau

    <input type="radio" name="Farbschema" value="black" /> Schwarz
    </p>


    <input type="submit" name="Submit" value="Farbwechsel" /></p>
    </body>


    wie läuft das dann ab? öö
    [align=center]

    Mein Blog ^^


    [/align]

  12. #12
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Es liese sich bestimmt auch rein mit php verwirklichen, aber ich würde jetzt an dieser Stelle JavaScript ins Spiel bringen. Über das OnClick Event der Radiobuttons rufst du dann eine JavaScript -Funktion auf, in welcher das Cookie gesetzt wird. Cookie ist Cookie. Du kannst es mit JavaScript setzen und mit php auslesen.

    EDIT: ne, noch besser. Du speicherst beim Klick auf einen Radiobutton erst die gewünschte Farbe in einer Variabel, ergänzt dein Formular um einen "Bestätigen"-Button und das Klicken auf diesen Button erzeugt dann das Cookie mit dem Wert aus der Variabel. (Sry, dass ich das jetzt in meinem Zustand nichmehr hinbekomm, auch noch als Code auszuformulieren. ^^'')

    Zu dem Setzen von Cookies mit JavaScript vielleicht diese Seite, ich bin schon zu müde, jetzt noch selbst was zu schreiben und leg mich erstmal aufs Ohr. Viel Erfolg für heute noch damit. Ich schau morgen nochmal rein. xD

  13. #13
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    waaah

    jetzt schon java ? öÖ
    ich würde das so machen dass ich eins der radio button anklicke und dann auf bestätigen gehe. dann wird der cookie anhand dieser auswahl definiert und daran dann das schema.

    ein cookie bleibt nicht temporär?
    also bleibt bestehen?
    cookies sind doch vom browser abhängig. öÖ
    wäre das ganze über ne datenbank zu machn nicht sinnvoller?
    es is grad sehr verwirrend...

    naja ich schau mal morgen wie es weitergeht...
    muss mich eh irgendwann mit java beschäftigen
    [align=center]

    Mein Blog ^^


    [/align]

  14. #14
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Genau so sagte ich es ja. :3
    [PS: oh, du hattest ja schon von dir aus diesen Absenden Button drin - sorry XD]
    Du musst jetzt nur überlegen, in welche Sprache du es machst. Php finde ich dafür ungeeignet, weil php immer komplett von oben nach unten ausgelesen wird, wenn du nicht if oder case etc reinbringst. Pseudo-Code-Beispiel:

    Radiobutton1-click: setcookie "red";

    Radiobutton2-click: setcookie "blue";

    Radiobutton3-click: setcookie "black";

    Eig erwartest du von diesem "Code", dass beim Click auf den zweiten Radio Button die Farbe auf blue gesetzt wird, beim ersten auf red etc.
    Hier würde php das ganze einfach von oben nach unten durchlesen und beim Reload die Farbe zuerst auf red, dann sofort auf blue und letztendlich auf black setzen, sodass dein Farbschema immer schwarz wäre, egal, was du anklickst.
    Wie gesagt - es geht bestimmt auch nur mit php, vermutlich mit Funktionen o.Ä. - aber ich habs bisher immer über eine Kombination mit JavaScript gemacht, womit ich eig recht gut gefahren bin.

    Cookies sind temporär. Wie temporär bestimmst allerdings du. Hier zum Beispiel hast du ein Cookie, das einen Tag lang bestehen bleibt: setcookie("Cookiename",Wert,Time()+60*60*24)

    Kannst die Zeit hinten noch mit 365 multiplizieren und schon haste ein Jahr.

    Die letzte Alternative OHNE Cookies wären Sessions. Da diese (glaube ich mich zu erinnern) indirekt aber auch mit Cookies arbeiten, beißt sich die Katze da in den Schwanz.


    Also letztendlich sähe es ungefähr so aus (nicht getestet!! Mittlerweile getestet ) :


    <head>
    <script type="text/javascript">
    function Farbauswahl() {
    var a = new Date(); a = new Date(a.getTime() +1000*60*60*24*365);

    if (document.colorform.Farbschema[0].checked == true) {
    document.cookie = 'Farbschema=red; expires='+a.toGMTString()+';';

    } else if (document.colorform.Farbschema[1].checked == true) {
    document.cookie = 'Farbschema=blue; expires='+a.toGMTString()+';';

    } else if (document.colorform.Farbschema[2].checked == true) {
    document.cookie = 'Farbschema=black; expires='+a.toGMTString()+';';

    }else {
    alert("Bitte eine Auswahl treffen");
    }
    }
    </script>
    </head>


    <body>
    <form action="_self" name="colorform" method="get" target="Farbe">



    <input type="radio" name="Farbschema" value="red" /> Rot

    <input type="radio" name="Farbschema" value="blue" /> Blau

    <input type="radio" name="Farbschema" value="black" /> Schwarz
    </p>
    </form>


    <input type="button" name="Submit" value="Farbwechsel" Onclick="Farbauswahl()"/></p>


    </body>

    [s]Für eventuelle Fehler möchte ich micht entschuligen - ist wie gesagt nicht getestet[s]. Aber von der Grundidee her sollte es funktionieren.
    Da die verschiedenen Paramternamen alle gleich oder zumindest ähnlich sind, hab ich sie farblich hervorgehoben, damit sie besser unterscheidbar sind.

    Erklärung:
    Beim Click auf den Button wird die Funktion Farbauswahl() aufgerufen, welche prüft, welche der Radioboxes angeklickt ist und dementsprechend ein Cookie für die Dauer eines Jahres setzt. (Die erste Zeile des Scripts ist nur da, um die Variable 'a' zu definieren, in welcher die Zeitdauer von einem Jahr gespeichert ist). Sollte kein Radiobutton angeklickt sein, wird eine Fehlermeldung ausgegeben "Bitte eine Auswahl treffen".
    Bei Fragen einfach nachhaken.

  15. #15
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok

    aber genau da ist das problem. es soll nicht temporär sein. öö
    vielleicht hab ich mich da auch falsch ausgedrückt also versuch eich das nochma zusammengefasst.

    also:
    Ich als Administrator kann mich als einziger auf der Seite Anmelden. Und kann auch al seinziger dadurch auf das Formular für den Schemawechsel zugreifen. Wenn ich dann zum Beispiel rot auswähle soll er halt meine website rot darstellen.

    besucher der seite sehen dann genau das rot was ich als admin ausgewählt hab. und können nix dran ändern.
    [align=center]

    Mein Blog ^^


    [/align]

  16. #16
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ah, ich verstehe.
    Also nochmal zu den Cookies. Ist zwar temporär aber stell die Dauer auf 100 Jahre dann hast du fast etwas unbegrenztes.

    Das, was du jetzt meinst, würde ich unbedingt mit SQL machen. Also wohl doch die Möglichkeit, wie du sie auch schon im Blick hattest. =P

  17. #17
    Mitglied
    Registriert seit
    02.2007
    Beiträge
    398
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok meen ick doch ^^

    war einfach blöd von mir ausgedrückt.
    k
    nur noch die frage wie ich sql ne änderung übermittel in der datenbank. ^^
    [align=center]

    Mein Blog ^^


    [/align]

  18. #18
    Mitglied Avatar von Anonymo
    Registriert seit
    12.2002
    Ort
    Hell
    Beiträge
    695
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Da ich auf dem Bereich noch nicht selbst gearbeitet hab, möchte ich dich jetzt nicht dazu verleiten, deine Tabelle durch mein Halbwissen zu verpfuschen. Aber im Grunde sollte es der Replace Command tun. Vielleicht kann dir das hier weiterhelfen:
    http://www.java2s.com/Code/SQL/Funct...acecommand.htm

    Viel Erfolg.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Das Splash-Netzwerk: Splashp@ges - Splashbooks - Splashcomics - Splashgames
Unsere Kooperationspartner: Sammlerecke - Chinabooks - Salleck Publications - Splitter - Cross Cult - Paninicomics - Die Neunte
Comicsalon Erlangen
Lustige Taschenbücher