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

Problem mit .htaccess bei Designauswahl mithilfe von PHP, CSS und Cookies

xSTVNx

Mitglied
Problem mit .htaccess (?) bei Designauswahl mithilfe von PHP, CSS und Cookies

Ich würde gerne, dass der User bei einem Seitenelement mehrere Auswahlmöglichkeiten hat.

Die Ausgabe der Einträge, die im Aussehen beeinflusst werden soll.
PHP:
<section id="Entries">
    <ul class="<?php echo $style_entries;?>">
      <li>...</li>
      <li>...</li>
      <li>...</li>
    </ul>
</section>

Das Menü zum Auswählen
PHP:
<menu id="ChooseStyle">
    <span>Ansicht:</span>
    <?php
        $elements = array("Blog","Grid","Table");
        
        foreach($elements as $element):
                echo '<li><a href="?style_entries='.$element.'">'.$element.'</a></li>';
        endforeach;
    ?>
</menu>

Der Cookie, damit die Änderung gespeichert bleibt.

PHP:
$style_entries_standard = "Blog";

if (isset($_COOKIE['namevonwebseite_style_entries'])):
    $style_entries = $_COOKIE['namevonwebseite_style_entries'];
else:
    $style_entries = $style_entries_standard;
endif;

if (isset($_GET["style_entries"]) and !empty($_GET["style_entries"])):
    setcookie("namevonwebseite_style_entries",$_GET['style_entries']);    
    
    if ($_GET["style_entries"] == "standard"):
        setcookie("namevonwebseite_style_entries","", time() - 3600);    
        $style_entries = $style_entries_standard;
    else:
        $style_entries = $_GET['style_entries'];
    endif;
endif;

Das ganze funktioniert soweit auch.

Jedoch nicht, wenn ich nun die Domain umschreiben möchte.

Daraus soll soll meinedomain.tld/tagxy/ werden. (Funktioniert)

Code:
RewriteRule ^([A-Za-z-]+)/?$ links.php?tag=$1

Das daraus soll soll meinedomain.tld/tagxy/?style_entries=XY werden. (Hier funzt dann die Styleauswahl nicht!)

Code:
RewriteRule ^([A-Za-z-]+)/?style_entries=([A-Za-z-]+)?$ links.php?tag=$1&style_entries=$2

Lied das an der .htaccess oder ist meine Lösung für die komplette Problemstellung ungünstig/falsch/whatever?

Danke!
xSTVNx
 
Zuletzt bearbeitet:
Das dürfte eher am Cookie liegen. Der ist, so wie Du ihn setzt, domainspezifisch. Siehe Manual:
PHP: setcookie - Manual

Man kann zudem keine Cookie auf Domain A für Domain B setzen. Folglich solltest Du auch auf diese Weiterleitung verzichten damit es funktioniert.

Abgesehen davon: hast Du beide von dir genannten mod_rewrite-Befehle in einer htaccess-Datei stehen und in wenn ja, in welcher Reihenfolge?
 
Die mod_rewrite-Befehle stehen wie in der oben geposteten Reihenfolge.

Kannst du mir vielleicht mit eigenen Worten erklären, wie das mit dem domainspezifisch gemeint ist? Ich weiß nicht ob ich kapeirt habe. Ist damit gemeint, dass ich durch die neue Domain (via htaccess) ja quasi 'n Unterverzeichnis vorgaukle und der Cookie, dass für 'ne andere Webseite hält? :oops:
 
Schreib die Zeilen mal genau in der anderen Reihenfolge. Denn momentan greift offenbar bei dir die erste, so dass die zweite nie erreicht wird.

Cookies gelten immer nur für die Domain für die sie erstellt wurden. Eine Domain B kann die Cookies von Domain A nicht auslesen.
 
Zurück
Oben