Avatar billede riversen Nybegynder
19. juni 2003 - 17:08 Der er 38 kommentarer og
1 løsning

setcookie virker kun lokalt

jeg sætter en cookie sådan her:
setcookie( 'blabla', "dummy indhold", time()+30000000, "/" );

det virker fint når jeg kører det på min egen maskine...både på localhost og gennem min router. Men når jeg uploader ændringerne så virker det ikke. Det ser ikke ud til cookien overhovedet bliver sat. Jeg har prøvet at slette alle midlertidige internetfiler og så opdatere siden...ingen cookie.
Avatar billede myplacedk Nybegynder
19. juni 2003 - 18:09 #1
URL?
Avatar billede riversen Nybegynder
19. juni 2003 - 18:45 #2
til domænet eller?
Avatar billede myplacedk Nybegynder
19. juni 2003 - 18:49 #3
Til scriptet, så jeg kan se præcist hvad der sker. :)
Altså, jeg vil prøve at gå ind på siden, og se om jeg heller ikke får nogen cookie. Så vil jeg se direkte på serveren hvad der helt præcist bliver sendt til klienten. Måske kommer der noget klienten ikke kan bruge, måske kommer der slet ikke nogen cookie, måske er det din browser der er problemet, måske en firewall...
Avatar billede riversen Nybegynder
19. juni 2003 - 19:27 #5
myplace.dk: browser? når det virker på min egen pc? Der er ingen firewalls i spil
Avatar billede riversen Nybegynder
19. juni 2003 - 19:37 #6
setcookie returnerer 1 på begge sider
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:37 #7
Første forsøg med browser: Fik cookie på "www", men ikke "privat".
Forsøg med direkte adgang: Cookie begge steder
www:
Set-Cookie: article1=dummy+indhold; expires=Thu, 19-Jun-03 18:06:53 GMT
privat:
Set-Cookie: article1=dummy+indhold; expires=Thu, 19-Jun-2003 18:05:05 GMT

Andet forsøg med browser: Cookie begge steder

Sidder du og piller?
Avatar billede riversen Nybegynder
19. juni 2003 - 19:37 #8
det er den der hedder bool i adressen nu
Avatar billede riversen Nybegynder
19. juni 2003 - 19:38 #9
ja, jeg stopper nu :-)
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:38 #10
> browser? når det virker på min egen pc?
Yeps. Er browseren ikke underlig, er det ikke en ægte browser. ;-)

> Der er ingen firewalls i spil
Den tror jeg vist jeg får mere end hveranden gang, hvor det viser sig at være en firewall der har skylden... ;-)
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:41 #11
Jeg får stadig cookie begge steder, både med browser og direkte...
Avatar billede riversen Nybegynder
19. juni 2003 - 19:41 #12
myplace.dk: hvad er status så?

jeg har en firewall lokalt som er deaktiveret. Der er ingen på serveren.
Avatar billede riversen Nybegynder
19. juni 2003 - 19:42 #13
jeg har prøvet fra en anden pc på det netværk serveren er...samme problem
Avatar billede riversen Nybegynder
19. juni 2003 - 19:42 #14
vil det sige du kun kan stemme en gang?
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:44 #15
Stemme? Jeg har ikke lige lagt mærke til at man kan stemme. Jeg gik bare ind på siden, og så kom den nævnte cookie ("article1=dummy indhold").
Avatar billede riversen Nybegynder
19. juni 2003 - 19:44 #16
hov, det er den forkert cookie..det er vedr. det der er forneden
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:46 #17
Aha, så får jeg samme resultat som dig. Jeg prøver med direkte adgang...
Avatar billede riversen Nybegynder
19. juni 2003 - 19:47 #18
myplacedk: fint nok...sådan da:-).
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:50 #19
Prøv lige at gøre noget ved det her... ;-)

<br />
<b>Notice</b>:  Undefined index:  HTTP_REFERER in <b>D:\Riversen.dk\php\vote.php
</b> on line <b>17</b><br />
<br />
<b>Notice</b>:  Undefined variable:  bool in <b>D:\Riversen.dk\php\vote.php</b>
on line <b>17</b><br />
<br />
<b>Warning</b>:  Cannot add header information - headers already sent by (output
started at D:\Riversen.dk\php\vote.php:17) in <b>D:\Riversen.dk\php\vote.php</b
> on line <b>17</b><br />
Avatar billede riversen Nybegynder
19. juni 2003 - 19:53 #20
den får jeg ikke.

koden ser sådan ud:
<?php
if( isset( $_GET['aid'] ) && isset( $_POST['rate'] ) )
{
    if( !isset( $_COOKIE['vote' . $_GET['aid']] ) )
    {
        $bool = setcookie( 'vote' . $_GET['aid'], "dummy indhold", time()+30000000, "/" );
        $connect = odbc_connect( "xxx", "xxx", "xxx" );
        $query = "UPDATE afstemning set rate" . $_POST['rate'] . " = rate" . $_POST['rate'] . " + 1 " .
                "WHERE afstemningsId = " . $_GET['aid'];
        odbc_do( $connect, $query );
        $query = "UPDATE afstemning set samlet = samlet + 1 WHERE afstemningsId = " . $_GET['aid'];
        odbc_do( $connect, $query );
    }
    else{ setcookie( 'vote' . $_GET['aid'], "dummy indhold", time()+30000000 ); }
}

    header( "Location: " . $_SERVER['HTTP_REFERER'] . "&bool=" . $bool );
?>
Avatar billede riversen Nybegynder
19. juni 2003 - 19:55 #21
linie 17 er: header( "Location: " . $_SERVER['HTTP_REFERER'] . "&bool=" . $bool );
Avatar billede riversen Nybegynder
19. juni 2003 - 19:58 #22
hvorfor får du den fejl når jeg ikke gør
Avatar billede myplacedk Nybegynder
19. juni 2003 - 19:58 #23
Dvs. "rate" skal være post. Øvøv, det er nemmere med get. :)
Anyway, det er en ret dårlig ide at forvente at http_referer er der, og endnu værre at forvente den er sat til det rigtige...
Avatar billede riversen Nybegynder
19. juni 2003 - 20:01 #24
vote.php tilgås kun fra afstemning så den er vel sat? også til det rigtige?
men det er vel ligemeget i første omgang...får du fejlen på begge adresser? har prøvet fra en anden pc hvor der ikke er problemet
Avatar billede riversen Nybegynder
19. juni 2003 - 20:05 #25
kan du evt. kontakte mig over icq. Det går lidt nemmere
Avatar billede myplacedk Nybegynder
19. juni 2003 - 20:13 #26
Fejlene kom fordi jeg ikke opførte mig som de fleste browsere gør, og det forventer din kode. :)

Jeg droppede lige det er med at lave en POST i hånden, kan ikke lige huske alle detaljerne. ;-)
Anyway, jeg prøvede at "sniffe" trafikken ved at stemme med en almindelig browser.
Headerne i 302-delen af svaret fra serveren var:

HTTP/1.1 302 Object Moved
Location: http://www.riversen.dk/?id=artikler&cat=1&aid=1&bool=1
Server: Microsoft-IIS/5.0
Content-Type: text/html
Connection: close
Content-Length: 189

Så cookien bliver altså slet ikke sat, set fra "internettets" side.

Og så gik det op for mig... "Location", "Set-Cookie" og "Server: Microsoft-IIS..." er et problem. IIS æder cookien.

Sidst jeg stødte på det problem lod kunden mig installere Apache på maskinen. ;-)
Jeg kender desværre ikke en Microsoft-løsning.
Avatar billede riversen Nybegynder
19. juni 2003 - 20:15 #27
underligt, for jeg kører også iis herhjemme
Avatar billede riversen Nybegynder
19. juni 2003 - 20:18 #28
men så kan du måske hjælpe mig i gang med apache? Jeg får brug for at hoste flere sites...dvs. opsætning af host headers. Det skal sættes op til php og så skal der være noget med default document fx index.php
Avatar billede riversen Nybegynder
19. juni 2003 - 20:24 #29
og evt. nogle forslag til hvad jeg istedet kan gøre med http_referer når det nu ikke er så godt...og hvorfor er det ikke det?
Avatar billede myplacedk Nybegynder
19. juni 2003 - 20:29 #30
Well, det er ikke altid det er et problem, jeg ved ikke hvad der gør udslaget.

Men det du ber om er intet problem med Apache. Personligt synes jeg faktisk det er langt lettere med Apache end IIS.

Installation af Apache og PHP: Følg manualerne. Er der noget du ikke forstår, spørg fx. på Eksperten. Alternativt kan du følge en tutorial, fx. fra webcafe.dk.

Opsætning af Apache og PHP: Sådan set det samme, men her er der større chance for at du kan få brug for lidt hjælp. ;-)
Avatar billede riversen Nybegynder
19. juni 2003 - 20:31 #31
jeg har prøvet flere gange, men stopper hver gang, da jeg slet ikke kan få det til at køre.

men kan du så fortælle hvorfor det er så dumt med http_referer? Har jo ikke så meget erfaring med det endnu.
Avatar billede myplacedk Nybegynder
19. juni 2003 - 20:32 #32
Problemet med Referer er, at det er fuldstændigt frivilligt om browseren sætter den, og browseren kan sætte den til præcist hvad den vil.
Har du detaljerede logs på de to servere, vil du nok kunne finde refereren "Nope" el. lign. ;-)

Nogle sætter browseren til at skjule referer, da de føler at det hører privatlivet til, eller også ved de bare ikke hvad de laver (måske begge dele).
Avatar billede myplacedk Nybegynder
19. juni 2003 - 20:33 #33
Prøv med Apache igen, og spørg om hjælp, når du går i stå. :)

Er du vant til at installation og opsætning foregår med mus og farverige knapper, så er der lige lidt man skal vænne sig til. :)
Avatar billede riversen Nybegynder
19. juni 2003 - 20:35 #34
har du nogen ideer til hvad jeg så kan gøre, for at folk kommer tilbage til samme side, som de stemte fra? skal jeg evt. smide scriptet ind på siden, istedet for at det ligger i en fil for sig selv, og så bruget noget PHPSELF?
Avatar billede riversen Nybegynder
19. juni 2003 - 20:35 #35
for h...... jeg aner ikke engang hvad jeg skal downloade
Avatar billede riversen Nybegynder
19. juni 2003 - 20:37 #36
har fundet det nu :-)
Avatar billede myplacedk Nybegynder
19. juni 2003 - 20:41 #37
Du kan sende urlen med i formen.

<form action="/php/vote.php?foo=bar">
...
<input type="hidden" url="/?id=artikler&cat=1&aid=1" />
...

Og i vote.php noget i stil med:
header('Location: http://'.$_SERVER['HTTP_HOST'].$_POST['url']);
Avatar billede riversen Nybegynder
19. juni 2003 - 20:43 #38
myplace.dk: ok, havde jeg også gang i i starte, men synes det var så grimt.

måske jeg presser den lidt, men jeg har installeret apache nu. Kan vi sætte det op det er aller mest nødvendigt. Vil gerne have det til at køre nu, og så kan jeg altid læse tutorials senere
Avatar billede myplacedk Nybegynder
19. juni 2003 - 20:54 #39
Hmm...
OK da. ICQ: 4484067
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