Design wechseln mittels PHP

04/29/2014 17:31 lnqlorlouz#1
Hallo,

ich würde gerne meinen Homepagebesuchern ermöglichen, dass Sie zwischen verschiedenen Designs wählen können.

Ich habe alle Designs in einem Ordner. Nun sollen die User auswählen können, 1, 2, 3 oder 4.

Wie mache ich das nur? Eigentlich würde es doch mit $_GET = ... funktionieren oder?
04/29/2014 18:05 Syc#2
Deine Design sind .css?
Einfach per GET/Post ein Cookie setzen, in dem das Design steht.
Und entsprechend den namen der .css dynamisch aus dem cookie laden.

Edit: Ob du GET oder Post benutzten musst kommt immer drauf an. Wenn du das ganze per html-formpost machst, dann brauchst du POST.
04/30/2014 16:38 xsrf#3
So sollte das eigentlich funktionieren:

Gesamter Code:

PHP Code:
<?php

if(isset($_GET['css']) && !empty($_GET['css']))
{
    
$cookieName 'css';
    
$cookieContent $_GET['css'];
    
$cookieTime time() + 365 24 60 60;
    
    
setcookie($cookieName$cookieContent$cookieTime);
    
}

?>
<!DOCTYPE html>
<html lang="de-de">
    <head>
        <title>Title</title>
        
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="author" content="Frostgear Studios">
        <meta name="description" content="Description">
        <meta name="keywords" content="keywords">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
        <!-- <link rel="shortcut icon" href="styles/img/favicon.ico" type="image/x-icon"> -->
        
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        
        <?php
        
        
if(!isset($_COOKIE['css']) || empty($_COOKIE['css']))
        {
            
            echo    
'<link rel="stylesheet" type="text/css" href="styles/standard.css">';
            
        }
        elseif(
$_COOKIE['css'] == 'first' || $_GET['css'] == 'first')
        {
            
            echo    
'<link rel="stylesheet" type="text/css" href="styles/first.css">';
            
        }
        elseif(
$_COOKIE['css'] == 'second' || $_GET['css'] == 'second')
        {
            
            echo    
'<link rel="stylesheet" type="text/css" href="styles/second.css">';
            
        }
        
?>
        
    </head>
    
    <body>
        
        <a href="?css=first">First</a>
        <br><br>
        <a href="?css=second">Second</a>
        
        
    </body>

    
</html>

Hier nochmal die einzelnen Parts:

Links adden:
HTML Code:
<a href="?css=first">First</a>
<a href="?css=second">Second</a>
Cookie abfragen & CSS definieren

PHP Code:
<?php
        
        
if(!isset($_COOKIE['css']) || empty($_COOKIE['css']))
        {
            
            echo    
'<link rel="stylesheet" type="text/css" href="styles/standard.css">';
            
        }
        elseif(
$_COOKIE['css'] == 'first' || $_GET['css'] == 'first')
        {
            
            echo    
'<link rel="stylesheet" type="text/css" href="styles/first.css">';
            
        }
        elseif(
$_COOKIE['css'] == 'second' || $_GET['css'] == 'second')
        {
            
            echo    
'<link rel="stylesheet" type="text/css" href="styles/second.css">';
            
        }
        
?>
WICHTIG: Das hier muss wenn du nicht via ob_flush den gesamten Content ausgeben lässt ganz oben sein über dem DOCTYPE denn es darf davor kein HTML ausgegeben werden.

PHP Code:
if(isset($_GET['css']) && !empty($_GET['css']))
{
    
$cookieName 'css';
    
$cookieContent $_GET['css'];
    
$cookieTime time() + 365 24 60 60;
    
    
setcookie($cookieName$cookieContent$cookieTime);