Avatar billede blaman Nybegynder
12. november 2002 - 12:51 Der er 33 kommentarer og
1 løsning

Cookie samt skin

Hejsa eksperter.

Jeg har en side hvor jeg har 3 forskellige skins. Altså forskellige designs til siden. Jeg har en valg box med disse skins.

Jeg kunne så godt tænke mig at når en bruger vælger et skins, smides der en cookie på vedkommendes maskine, sådan at næste gang siden indlæses er det hans valgte skins der kommer frem.

Er der nogle foreslag til hvordan dette kan laves ?
Avatar billede gybel Nybegynder
12. november 2002 - 12:57 #1
yep lige 2 sek!
Hvordan har du lavet valget mellem de forskellige skin?? en Form med 3 submit knapper eller andet??
Avatar billede blaman Nybegynder
12. november 2002 - 13:00 #2
De er blot lavet som links <A HREF="design_standart.php">Standart</A>
Og altså ikke i en form
Avatar billede gybel Nybegynder
12. november 2002 - 13:01 #3
<?PHP
$value = "det skin der er valgt"; //Dette kan komme fra en form eller hvad du ellers havde tænkt dig
//LAver en cookie med var skin
setcookie ("skin", $value);
?>
Avatar billede gybel Nybegynder
12. november 2002 - 13:04 #4
Ok Så skal du bare på de 3 forskellige sider lave denne kode:

<?PHP
$value = "1)//det nummer eller væredi du vil give siden. (skin 1)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>

<?PHP
$value = "2"; //skin 2
//LAver en cookie med var skin
setcookie ("skin", $value);
?>
Avatar billede blaman Nybegynder
12. november 2002 - 13:05 #5
Hmm.. i mit tilfælde hvor det blot er 3 links det drejer sig om.
hvad skal jeg så sætte " $value = " til ?

Er stadig på nyebegynder stadiet :D
Avatar billede gybel Nybegynder
12. november 2002 - 13:11 #6
På de forskellige sider skal der står
Side 1:
<?PHP
$value = "1"//det nummer eller væredi du vil give siden. (skin 1)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>

Side 2:
<?PHP
$value = "2"//det nummer eller væredi du vil give siden. (skin 2)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>

Side 3:

<?PHP
$value = "3"//det nummer eller væredi du vil give siden. (skin 3)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>

Håber det hjælper ;o)
Avatar billede blaman Nybegynder
12. november 2002 - 13:12 #7
Nå arbejdet kalder :/
jeg vil kigge på det senere på dagen :)

men hvis jeg har forstået det ret, skla jeg altså blot på den ene side med designet sætte value ="1";

og på den anden med value ="2";

og så videre ik?
Avatar billede gybel Nybegynder
12. november 2002 - 13:16 #8
Jo det er rigtig!
Avatar billede gybel Nybegynder
12. november 2002 - 14:17 #9
Avatar billede blaman Nybegynder
12. november 2002 - 15:36 #10
okay så er jeg her igen :)
Nu har jeg indsat koderne på de 3 forskellige sider.

Side 1 = index.php
side 2 = design_standart.php
side 3 = design_nyt.php

i mappen har jeg en .htaccess der siger at startsiden i mappen skal være index.php

og jeg så forsøger at gå ind på siden får jeg bare følgende:

Parse error: parse error, unexpected T_STRING in c:\apache\htdocs\skole\multimedie\index.php on line 4
Avatar billede Slettet bruger
12. november 2002 - 15:44 #11
Kunne det ikke også være pga din htaccess ? Den fortæller jo at det er index.php der skal være startsiden.
For php scriptet ser da godt nok ud :)
Avatar billede blaman Nybegynder
12. november 2002 - 16:03 #12
Hmm... eksemplet virker jo fint :)
Men jeg kan ikke finde ud af at sætte det op, sådan at det er de 3 sider den bruger istedet.

Kan man ikke lave det sådan, at den side kaldes index.php
Altså siden med dette script.

Og man så siger at hvis der ikke findes en cookie skal den kalde index.php
og hvis der findes en cookie med value = 2 skal den gå til siden design_standart.php

og igen hvis den findes med value = 3 skal den gå til siden desgn_nyt.php

eller noget i den stil ? for det andet her kan jeg ikke få til at virke :/
Avatar billede gybel Nybegynder
12. november 2002 - 16:13 #13
Første gang man kommer til index.php så skal man vælge mellem de 3 design.
om det er første gang testet ved at lave:

$skin = $_COOKIE["skin"];
if (!$skin) { // første gang
}
else {
if($skin == "1") { //gå til den side}
if($skin == "2") { //gå til den side}
else //gå til sidste side.

Nå man så læser de enkelte sider skal der oprettes en ny cookie hvor man gør sådan:

$value = "2";
setcookie ("skin", $value);

ellers så prøv at poste din kode!
Avatar billede blaman Nybegynder
12. november 2002 - 18:18 #14
okay .. min index.php ser sådan her ud: går ud fra det er den du gerne vil have :)


<?PHP
$value = "1" //det nummer eller væredi du vil give siden. (skin 1)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>


<html>
    <head>
        <META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
        <link href="style.css" rel="stylesheet" type="text/css">
<!-- Minus AutoDato -->
        <title> Multimedie 2002-2003 </title>
    </head>
   
    <body bgcolor="#ffffff">
   
        <center>
            <img src="gfx/logo.jpg" alt="" align="center" style="padding:0px; margin:0px;">
        </center>

        <table width="800" border="0" align="center" cellpadding="0" cellspacing="0" class="ramme"
          style="margin:0px;padding:0px">
            <tr>
                <td height="5" colspan="3" valign="top" bgcolor="#4E70C0"
            style="padding:0px;margin:0px;border-bottom:1px solid #000000">
                    <img src="gfx/ophold.gif" height="1" width="1" alt="">
              </td>
            </tr>
           
            <tr>

                <!-- Menu start -->       
                    <td width="120" valign="top" bgcolor="#666666" style="padding:5px;">
   
                        [Generelt]<br>
                                <a href="?ref=forside">Hjem</a><br>
                                <a href="?ref=ommig">Om mig</a><br>
                                <a href="?ref=opbygning">Opbygning af HPén</a><br>
                                <a href="?ref=nyhed/vis_nyhed">Nyheder</a><br>
                                <A HREF="nyhed/admin.php" TARGET="_blank">Admin</A><br><br>
                   
                        [Emner]<br>
                                <a href="?ref=animation">Animation</a><br>
                                <a href="?ref=Coreldraw">Coreldraw</a><br>
                                <a href="?ref=frontpage">Frontpage</a><br>
                                <a href="?ref=lydsampling">Lydsampling</a><br>
                                <a href="?ref=mediator">Mediator</a><br>
                                <a href="?ref=photoshop">Photoshop</a><br>
                                <a href="?ref=videofilm">Videofilm</a><br><br>

[Design]<br>
<A HREF="index.php">Normal</A><br>
<A HREF="design_jul.php">Jule stil</A><br>
<A HREF="design_standart.php">Standart</A><br>
</td>
                <!-- Menu slut -->


                <!-- indhold start -->
                    <td colspan="2" valign="top" bgcolor="#666666">
                        <div class="maincontent" style="border-color:#000000; border-width:0px 0px 0px 1px;
                border-style:solid ; padding:5px; height:400px; overflow: auto">


                            <?php
                                if (!isset($_GET['ref'])) {
                                include("forside.php");
                                } else {
                                include($_GET['ref'] . ".php");
                                }
                            ?>



                        </div>
                    </td>
            </tr>


        <!-- indhold slut -->

            <tr>
                <td height="5" colspan="3" bgcolor="#4E70C0" style="border-top:1px solid #000000">
                    <center> <FONT FACE="Symbol" SIZE="1" COLOR="#000000"><b>Ó</b></FONT><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><b> Copyright - Mads Stampe</b> </FONT>
                </td>
            </tr>
       
        </table>

        <center>
<SPAN
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('Multimedie siden')"
style="BEHAVIOR: url(#default#homepage); CURSOR: hand"><img
src="gfx/startside.gif"  ALT="Gør siden her til din startside"></SPAN>

<SPAN onclick="window.external.AddFavorite('http://cypermann.homeip.net/skole/multimedie/index.htm','Multimedie siden');"
style="CURSOR: hand"><img src="gfx/favoritter.gif"
ALT="Tilføj siden her til din fortrukne menu"></SPAN>

</center>


    </body>
</html>
Avatar billede gybel Nybegynder
12. november 2002 - 18:36 #15
<?php
$skin = $_COOKIE["skin"]; //henter cookies fra requestet
if ($skin) {
    if($skin == "1") { //send til jule design}
    if($skin == "2") { //send til standart design}
} //hvis der ikke finde nogen cookies så vil man se denne side
  //hvis der findes en cookie så man teste hvilken værdi den har og sende brugeren til den side.
?>

<html>
    <head>
        <META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
        <link href="style.css" rel="stylesheet" type="text/css">
<!-- Minus AutoDato -->
        <title> Multimedie 2002-2003 </title>
    </head>
   
    <body bgcolor="#ffffff">
   
        <center>
            <img src="gfx/logo.jpg" alt="" align="center" style="padding:0px; margin:0px;">
        </center>

        <table width="800" border="0" align="center" cellpadding="0" cellspacing="0" class="ramme"
          style="margin:0px;padding:0px">
            <tr>
                <td height="5" colspan="3" valign="top" bgcolor="#4E70C0"
            style="padding:0px;margin:0px;border-bottom:1px solid #000000">
                    <img src="gfx/ophold.gif" height="1" width="1" alt="">
              </td>
            </tr>
           
            <tr>

                <!-- Menu start -->       
                    <td width="120" valign="top" bgcolor="#666666" style="padding:5px;">
   
                        [Generelt]<br>
                                <a href="?ref=forside">Hjem</a><br>
                                <a href="?ref=ommig">Om mig</a><br>
                                <a href="?ref=opbygning">Opbygning af HPén</a><br>
                                <a href="?ref=nyhed/vis_nyhed">Nyheder</a><br>
                                <A HREF="nyhed/admin.php" TARGET="_blank">Admin</A><br><br>
                   
                        [Emner]<br>
                                <a href="?ref=animation">Animation</a><br>
                                <a href="?ref=Coreldraw">Coreldraw</a><br>
                                <a href="?ref=frontpage">Frontpage</a><br>
                                <a href="?ref=lydsampling">Lydsampling</a><br>
                                <a href="?ref=mediator">Mediator</a><br>
                                <a href="?ref=photoshop">Photoshop</a><br>
                                <a href="?ref=videofilm">Videofilm</a><br><br>

[Design]<br>
<A HREF="index.php">Normal</A><br>
<A HREF="design_jul.php">Jule stil</A><br>
<A HREF="design_standart.php">Standart</A><br>
</td>
                <!-- Menu slut -->


                <!-- indhold start -->
                    <td colspan="2" valign="top" bgcolor="#666666">
                        <div class="maincontent" style="border-color:#000000; border-width:0px 0px 0px 1px;
                border-style:solid ; padding:5px; height:400px; overflow: auto">


                            <?php
                                if (!isset($_GET['ref'])) {
                                include("forside.php");
                                } else {
                                include($_GET['ref'] . ".php");
                                }
                            ?>



                        </div>
                    </td>
            </tr>


        <!-- indhold slut -->

            <tr>
                <td height="5" colspan="3" bgcolor="#4E70C0" style="border-top:1px solid #000000">
                    <center> <FONT FACE="Symbol" SIZE="1" COLOR="#000000"><b>Ó</b></FONT><FONT FACE="Verdana" SIZE="1" COLOR="#000000"><b> Copyright - Mads Stampe</b> </FONT>
                </td>
            </tr>
       
        </table>

        <center>
<SPAN
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('Multimedie siden')"
style="BEHAVIOR: url(#default#homepage); CURSOR: hand"><img
src="gfx/startside.gif"  ALT="Gør siden her til din startside"></SPAN>

<SPAN onclick="window.external.AddFavorite('http://cypermann.homeip.net/skole/multimedie/index.htm','Multimedie siden');"
style="CURSOR: hand"><img src="gfx/favoritter.gif"
ALT="Tilføj siden her til din fortrukne menu"></SPAN>

</center>


    </body>
</html>

De 2 andre sider skal så inde holde koden:

side 1

<?PHP
$value = "1"//det nummer eller væredi du vil give siden. (skin 1)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>

og side 2

<?PHP
$value = "2"//det nummer eller væredi du vil give siden. (skin 2)
//LAver en cookie med var skin
setcookie ("skin", $value);
?>
Avatar billede blaman Nybegynder
12. november 2002 - 18:53 #16
hehe .. jeg burde nok have sat de point lidt højere, men havde ikke regnet med så store problemer.

efter jeg har gjordt dette her, får jeg følgende fejl:

Parse error: parse error, unexpected $ in c:\apache\htdocs\skole\multimedie\index.php on line 106
Avatar billede gybel Nybegynder
12. november 2002 - 18:55 #17
hvad står der på den linie??
Avatar billede blaman Nybegynder
12. november 2002 - 18:58 #18
Det er den allersidste linje .. der står blot </html>

Ligeledes hvis jeg indtaster adressen til de to andre sider, altså dem der har value = 1 og 2 får jeg denne fejl:

Parse error: parse error, unexpected T_STRING in c:\apache\htdocs\skole\multimedie\design_jul.php on line 4
Avatar billede gybel Nybegynder
12. november 2002 - 19:05 #19
prøv at maile mig kode på mga@bec.dk
Avatar billede gybel Nybegynder
12. november 2002 - 19:06 #20
alle 3 sider!
Avatar billede blaman Nybegynder
12. november 2002 - 19:07 #21
sådan der :)
Avatar billede gybel Nybegynder
12. november 2002 - 19:30 #22
hvad så ;o)
Avatar billede blaman Nybegynder
12. november 2002 - 20:03 #23
Hmm... du kan selv prøve at kigge forbi

http://cypermann.homeip.net/skole/multimedie/index.php

Det ser fint nok ud på denne side, men prøv at tage en af de andre to.
Der kommer den med en fejl øverst på siden :/
og lukker man så browseren ned og åbner siden igen, starter den på den normale index.php :/
Avatar billede gybel Nybegynder
13. november 2002 - 12:37 #24
så prøv lige at sætte dit php script over headeren på siden.
Så det er sådan ud:

html>
<?PHP
$value = "1";
setcookie ("skin", $value);
?>
    <head>
        <META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
        <link href="style.css" rel="stylesheet" type="text/css">
<!-- Minus AutoDato -->
        <title> Multimedie 2002-2003 </title>
    </head>
   
    <body bgcolor="#ED1B26">

btw så ville jeg anbefale at du i stedet for at opbygge din side som blandet html og php så, du i stedet laver en ren php side hvor du skriver dit html ind i echo funktioner det er langt pænere og lettere at opbygge samt at forstå for andre ;o)
Avatar billede blaman Nybegynder
13. november 2002 - 12:57 #25
Så får jeg samme fejl, blot ved linje 5 nu :/

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\skole\multimedie\design_jul.php:3) in c:\apache\htdocs\skole\multimedie\design_jul.php on line 5

Jeg kunne jo prøve at sætte det i en echo del :)
Men skal vist lige læse lidt mere omkring php før jeg kan den slags :/
Eller du kunne måske give et eksempel ? :)
Avatar billede gybel Nybegynder
13. november 2002 - 14:13 #26
så prøv at sætte:

<?PHP
$value = "1";
setcookie ("skin", $value);
?>

øverst på siden!
Avatar billede blaman Nybegynder
13. november 2002 - 14:48 #27
Det virkede desværre heller ikke :(
Hvis du har en måde det kan laves på ved at jeg ændre på min side eller noget ville det også være en mulighed :)
F.eks. ved en form eller noget.
Jeg sætter gerne lidt flere points på opgaven, og takker mange gange for hjælpen :)
Avatar billede gybel Nybegynder
13. november 2002 - 14:53 #28
jeg har dårlig tid i dag og i morgen men fredag vil jeg lige se på det.
Så mailer jeg de endelige php sider til dig..
Håber du kan vente ;o)
Avatar billede blaman Nybegynder
13. november 2002 - 14:57 #29
Det lyder rigtig godt :)
Kan nemt vente til fredag.
Og endnu engang mange tak for hjælpen :)
Avatar billede gybel Nybegynder
15. november 2002 - 11:14 #30
Ny index fil:

<?php  //denne fil tjekker om der findes en cookie til siden og sender brugeren til den side cookien pejer på.
        $skin = $_COOKIE["skin"];
        if($skin == "1") header("Location: design_jul.php"); //gå til den side
        if($skin == "2") header("Location: design_standart.php");
        if($skin == "3" || !$skin) header("Location: design_normal.php");

?>

Andre filer:

<?PHP
$value = "2"; //opretter ny cokkie efter man er kommet ind på siden

setcookie ("skin", $value);
?>

<html>
<head>
  <title> Multimedie 2002-2003 </title>

<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<style>

body { overflow: auto; font-family: verdana, arial, helvetica, sans-serif;}
table { font-size: 10px;}
table.box {}
table.box td { padding: 0px 0px 0px 4px; text-align: left;}
table.box td.top { background: #4E70C0; border-top: 1px solid #052d60; border-left: 1px solid #052d60;    border-right: 1px solid #052d60; width: 100%; font-size: 10px;}
table.box td.empty { background: transparent; font-size: 10px; border-top: 0px solid #c2c8d3;}
table.box td.contents { background: #666666; border: 1px solid #052d60; font-size: 10px;    padding-bottom: 2px;}
table.box span.header { font-size: 20px; font-weight: bold;}
table.computers {}
table.computers td.first { width: 150px;}
table.computers td.second { width: 600px;}
.noborder { border: 0; padding-top: 4px;}
a { text-decoration: none;}
a:link { color: #000066;}
a:visited { color: #000066;}
a:hover { color: #000066;}
h1 { font-family : verdana; font-size: 18px; border-bottom : 1px solid ; width : 150px; }
.img { border: 1px solid #000000; }
input {    font-familiy: verdana; font-size: 10; border-left: solid 1px; border-top: solid 1px; border-bottom: solid 1px; border-right: solid 1px; }
#billede { float:left; width: 100px; }
.flydestop { clear:both; }
.table { border-style: solid; border-color: #000000; border-width: 1px; }

</style>


</head>

<body BACKGROUND="gfx/bg_standart.gif">

<?PHP
$value = "2";

setcookie ("skin", $value);
?>
<br><br>

<center>

<table>
    <tr><td valign="top">

      <table class="box" cellpadding="0" cellspacing="0" width="115">
      <tr><td class="top"><b><FONT COLOR="#FFFFFF"><center>Generelt</center></b></FONT></td></tr>
      <tr><td colspan="2" class="contents">

                                <a href="?ref=forside">Hjem</a><br>
                                <a href="?ref=ommig">Om mig</a><br>
                                <a href="?ref=opbygning">Opbygning af HPén</a><br>
                                <a href="?ref=nyhed/vis_nyhed">Nyheder</a><br>
                                <A HREF="nyhed/admin.php" TARGET="_blank">Admin</A><br>

</td></tr>
      </table>

    <br><br>








      <table class="box" cellpadding="0" cellspacing="0" width="115">
      <tr><td class="top"><b><FONT COLOR="#FFFFFF"><center>Emner</center></font></b></td></tr>
      <tr><td colspan="2" class="contents">

<a href="?ref=animation">Animation</a><br>
                                <a href="?ref=Coreldraw">Coreldraw</a><br>
                                <a href="?ref=frontpage">Frontpage</a><br>
                                <a href="?ref=lydsampling">Lydsampling</a><br>
                                <a href="?ref=mediator">Mediator</a><br>
                                <a href="?ref=photoshop">Photoshop</a><br>
                                <a href="?ref=videofilm">Videofilm</a><br>


</td></tr>
      </table>

    <br><br>

<table class="box" cellpadding="0" cellspacing="0" width="115">
<tr><td class="top"><b><FONT COLOR="#FFFFFF"><center>Design</center></font></b></td></tr>
      <tr><td colspan="2" class="contents">

<A HREF="design_normal.php">Normal</A><br>
<A HREF="design_jul.php">Jule stil</A><br>
<A HREF="design_standart.php">Standart</A><br>
</td></tr>
      </table>


    </td>
    <td class="empty">&nbsp;</td>
    <td valign="top">

      <table class="box" cellpadding="0" cellspacing="0" width="750">
      <tr><td class="contents"><center> <IMG SRC="gfx/logo_standart.jpg" BORDER="0" WIDTH="343" HEIGHT="83" ALIGN="bottom" ALT=""></center></td></tr> <tr><td> &nbsp; &nbsp; </td><tr>
      <tr><td class="contents" style="padding-right: 7px; padding-left: 7px; padding-top: 20px; vertical-align: top;">


<?php
                                if (!isset($_GET['ref'])) {
                                include("forside.php");
                                } else {
                                include($_GET['ref'] . ".php");
                                }
                            ?>


          </td></tr>
      </table>

    </td></tr>
    </table>

</center>

</body>
</html>

Sådan skal de andre sider også starte
Avatar billede blaman Nybegynder
15. november 2002 - 13:55 #31
Sådan :) du har helt ret det virker :)
Og er glad for at du gad hjælpe .. har blot en ting til, og så får points :)
Hvis jeg loader siden, virker det, hvis jeg går ind på adressen igen. Men lukker jeg browseren ned, og går ind på siden fungere det ikke.

Er det noget man kan lave om ? Det ville være nice :)
Avatar billede gybel Nybegynder
15. november 2002 - 15:40 #32
i alle filerne skal du skrive:

<?PHP
$value = "2"; //opretter ny cokkie efter man er kommet ind på siden

setcookie ("skin", $value, time()+30758400); //sætter levetiden på cookien
?>

Se eks. www.darknet.dk/~gybel/test
Avatar billede blaman Nybegynder
15. november 2002 - 19:47 #33
Sådan så virkede det :)

Jeg har ikke svaret tidligere da jeg ikke har kunne få fat i min server og uploade siderne, da jeg sidder til et computerparty, hvor ftp porten er lukket :/ men er dog blevet åbnet nu :)

Mange tak for hjælpen gybel, du har klart fortjent de points.
Fortsat god weekend :)
Avatar billede gybel Nybegynder
15. november 2002 - 23:05 #34
velbekommen.
husk det man at lave en hel php side!!
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