Avatar billede krk Nybegynder
12. juli 2006 - 13:39 Der er 8 kommentarer og
1 løsning

css og sessions

Hej
I et tidliger spørgsmål ( http://www.eksperten.dk/spm/720128 ) fik jeg hjælp til at ændre baggrundsfarven i css ved hjælpe af variabler, men jeg har nu fundet ud af at baggrundsfarven jo ændre sig tilbage når jeg klikker på et nyt link.
Jeg skalæ derfor have gang i sessions og det har jeg store probler med.
Jeg sender lidt kode.

Index.php:
<?php    session_start();?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Test eksempel</title>
<?php require("variabler.php");  ?>
<?php print"<link href='css.php?color=$color' rel='stylesheet' type='text/css'> ";?>
</head>

<body>
<?php
    $_SESSION['color'] = $_GET["color"];
    print "<br>";
    print"farven er på side 1: ";
    print $_SESSION['color'];
    print"<br>";
?>
<table width='600' border='1' cellspacing='0' cellpadding='0'>
  <tr>
    <td><a href='?page=cms'>+ &nbsp;CMS<br>
          <a href='?page=forside'>+  &nbsp;Andet  </a> </p></td>
    <td>
   
        <?php
            $page = $_REQUEST['page'];
            if(!$page){
                require("content/cms.php");   
            }
            else{
                  require("content/$page.php");
              }
      ?>
    </td>
  </tr>
</table><br><br><bR>

<?php
print"<a href='index.php?color=yellow'>gul</a>
<br><br><bR><a href='?page&color=red'>rød</a>
<br><br><bR><a href='index.php?color=green'>grøn</a>";

print"<br>Variablen er: $color";
?>

</body>
</html>

css.php:
<?php    session_start();?>
<?php header("Content-type: text/css");
    $_SESSION['color'] = $_GET["color"];

$color        =$_REQUEST['color'];?>

body{
    background-color:<?php print "$color";?>;
    text-align:center;
    }

andet.php:
<?php    session_start();
    $_SESSION['color'] = $_GET["color"];
    print"Faven er: ";
    print $_SESSION['color'];

?>
<br>Andet


Er der nogen der kan hjælpe.
Jeg er total nybegynder i sessions.
Avatar billede krk Nybegynder
12. juli 2006 - 13:44 #1
Eksemplet kan ses på http://kryt.dk/test
Avatar billede coderdk Praktikant
12. juli 2006 - 13:57 #2
Prøv at ændre:

$_SESSION['color'] = $_GET["color"];

$color        =$_REQUEST['color'];

til:

if ( !empty( $_GET['color'] ) )
{
  $color = $_SESSION['color'] = $_GET["color"];
}
else
{
  if ( empty( $_SESSION['color'] ) )
  {
      $color = '#123'; // Default
  }
  else
  {
      $color = $_SESSION['color'];
  }
}
Avatar billede krk Nybegynder
12. juli 2006 - 14:00 #3
du mener i css.php
Avatar billede krk Nybegynder
12. juli 2006 - 14:03 #4
Det virker ikke. Men jeg kan se nu at jeg slet ikke får fat i css.php. Det går ikke når der står <?php    session_start();?>
<?php header("Content-type: text/css");
Avatar billede krk Nybegynder
12. juli 2006 - 14:30 #5
Det kan godt være jeg skal glemme det ovenstående kode og prøve og starte forfra.
Det jeg gerne vil haver er et site hvor menuerne står ude til højre og midt i et tekst felt.
Nede i bunden er der nogle "knapper" hvor man kan vælge ex. baggrundsfarve.
Når jeg bagefter klikker på et menu punkt skal jeg kunne bibholde den nyvalgt bg-farve
Men hvordan laver jeg "farve knapperne" de skal jo ikke være et link der føre brugeren til et nyt dokument, men bare en "knap" der indeholder en værdie (feks. blue)
og nu skal jeg jo gerne have gemt denne værdi så den kan bruges på de andre sider.

Er der nogen den kan hjælpe mig videre??
Avatar billede horsmark Nybegynder
12. juli 2006 - 19:39 #6
.oO(lytter med da jeg har kæmpe probs med sessions der knækker i css filer)
Avatar billede krk Nybegynder
12. juli 2006 - 20:52 #7
Jeg er kommet et skridt videre, men det virker stadig ikke helt.
Jeg kan fint gå fra session.php til session1.php med den nyvalgte bg-farve, men ikke tilbage igen. Så får jeg bare en hvid baggrund.
Eksemplet kan ses på www.kryt.dk/test/sessinos.php
Koden ser sådan ud:

sessinos.php:
<?php session_start();
$_SESSION['color'] = $_GET["color"]; ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<?php print"<link href='css.php' rel='stylesheet' type='text/css'> ";?>
</head>
<body>
<?php
      print"<a href='sessinos1.php'>side 2</a>";
    print "<br>";
    print"Bg-farven er her på side 1: ";
    print $_SESSION['color'];
    print"<br>";
    print"<a href='sessinos.php?color=blue'>blå</a><br>";
    print"<a href='sessinos.php?color=red'>rød</a><br>";
    print"<a href='sessinos.php?color=green'>grøn</a>";
?>

</body>
</html>

sessinos1.php:
<?php    session_start();?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<?php print"<link href='css.php?color=$color' rel='stylesheet' type='text/css'> ";?>
</head>
<body>
<?php
    print"farven er på side 2: ";
    print $_SESSION['color'];
    print"<br>";
    print"<a href='sessinos.php'>Tilbage til side 1</a>";
?>
</body>
</html>

css.php:
<?php header("Content-type: text/css"); ?>
<?php    session_start();?>
body{
    background-color:<? print $_SESSION['color'];?>;
    text-align:center;
    }


Håber der en nogle der kan hjælpe
Avatar billede Slettet bruger
15. juli 2006 - 14:43 #8
Denne kode kan ikke virke, da der uden for php-klammerne er et linieskift. Dette linieskift tæller som output og dermed sendes headers. Når headers er sendt, er det for sent at sætte en header. (Og session_start sender også en header, så man kan ikke bare bytte om på dem.)

<?php    session_start();?>
<?php header("Content-type: text/css");

Løsningen er at lade være med at skifte ud fra php.

<?php

session_start();
header("Content-type: text/css");

?>
Avatar billede krk Nybegynder
26. september 2006 - 12:24 #9
Jeg har ikke fået det løst og været nød til at finde en anden løsning.
Så jeg lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester