Avatar billede lillebror Nybegynder
02. marts 2003 - 22:51 Der er 38 kommentarer og
2 løsninger

Kan ikke sætte cookies

Når jeg prøver at sætte cookies på en side, så vil det ikke virke, hvis der står en linie med $_GET['noget']. Det er lidt af et problem, eftersom jeg bruger $_GET[''] som betingelse for, om der overhovedet skal sættes en cookie. Er der andre der har oplevet problemet? I så fald, hvordan fik i det løst?
Avatar billede schaefner Juniormester
02. marts 2003 - 22:52 #1
Kunne du vise lidt? :)
Avatar billede schaefner Juniormester
02. marts 2003 - 22:52 #2
...kode ;)
Avatar billede lillebror Nybegynder
02. marts 2003 - 22:56 #3
if($_GET['action'] == "login" && $site == "" && $subsite == ""){
  $username = $_POST['username'];
  $password = $_POST['password'];
  $query = mysql_query("select * from tabel where user='$username' && pass='$password'");
  echo mysql_error();
  $count = mysql_num_rows($query);
  if($count == 1){
  $getter = mysql_fetch_array($query);
  setcookie("thing", $getter[uniequeId],time()+360000);
  }
}

Der skal ikke stilles spørgsmål om hvorvidt jeg sætter cookien rigtigt, eller om betingelserne bliver opfyldt. Det har jeg alt sammen tjekket, min konklusion er, at der ikke kan sættes cookies under en linie, hvor der står $_GET[]
Avatar billede benoit Nybegynder
02. marts 2003 - 23:02 #4
der kan ikke sættes en cookie efter at der har være skrevet noget ud: så er headeren nemlig sendt.

Det var et bud. :-)
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:05 #5
Jamen der er jo ikke skrevet noget ud!
Det her skal kunne lade sig gøre, så jeg skal have en løsning!
Jeg siger ikke koden skal se sådan ud, hvis den kan se anderledes ud så er det helt i orden, betingelsen skal bare være opfyldt
Avatar billede schaefner Juniormester
02. marts 2003 - 23:11 #6
Prøv:

<?
if($_GET['action'] == "login" && $site == "" && $subsite == ""){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = mysql_query("select * from tabel where user='$username' AND pass='$password'")or die (mysql_error());
    $count = mysql_num_rows($query);
    if($count == 1){
        $getter = mysql_fetch_array($query);
        setcookie("thing", $getter[uniequeId],time()+360000);
    }
}
?>
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:21 #7
samme problem
Avatar billede schaefner Juniormester
02. marts 2003 - 23:22 #8
hvordan kan det være at du både bruger POST og GET?
Avatar billede schaefner Juniormester
02. marts 2003 - 23:24 #9
hvis du i den formular hvor man skriver username og password også tilføjer dette felt:
<input type="hidden" name="action" value="login">

og så ændre dit script til:
<?
if($_POST['action'] == "login" && $site == "" && $subsite == ""){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = mysql_query("select * from tabel where user='$username' AND pass='$password'")or die (mysql_error());
    if(mysql_num_rows($query) == 1){
        $getter = mysql_fetch_array($query);
        setcookie("thing", $getter[uniequeId],time()+360000);
    }
}
?>

Hvad siger den så?
Avatar billede olebole Juniormester
02. marts 2003 - 23:25 #10
<ole>

lillebror >> Jeg forstår ikke helt din attitude ... ikke mindst, da du tager fundamentalt fejl og har fundet frem til en helt forkert konklusion. Det er i aller højeste grad muligt at sætte en kage efter $_GET['var']  :)

Hvad sker der, når du prøver?
Får du en fejl - og i så fald: Hvad siger den?
Er du sikker på, der ikke er skrevet noget ud? En blank linie før '<?' er at sammenligne med udskrevet kode ... det gælder også, hvis det sker i en include-fil.

/mvh
</bole>
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:27 #11
Damn, det giver samme problem.
Jeg kan ikke forstå, hvorfor der ikke må sættes cookies under sådan en $_GET eller $_POST
Avatar billede schaefner Juniormester
02. marts 2003 - 23:29 #12
Prøv at sætte en else på og se om den bliver udskrevet
<?
if($_POST['action'] == "login" && $site == "" && $subsite == ""){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = mysql_query("select * from tabel where user='$username' AND pass='$password'")or die (mysql_error());
    if(mysql_num_rows($query) == 1){
        $getter = mysql_fetch_array($query);
        setcookie("thing", $getter[uniequeId],time()+360000);
    }
} else {
    echo "Du har lavet et eller andet galt";
}
?>
Avatar billede olebole Juniormester
02. marts 2003 - 23:29 #13
lillebror >> Det må du også godt ... du laver helt tydeligt en fejl. Problemet er bare at finde den med de sparsomme oplysninger, vi har  :)
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:30 #14
Den melder ikke fejl, den sætter bare ikke cookien.
Er det muligt, at det er min opsætning i php.ini den er gal med?
Derudover betvivler jeg ikke min egen konklusion, da jeg sagtens kan sætte cookies lige over linien med betingelsen.
Avatar billede schaefner Juniormester
02. marts 2003 - 23:32 #15
du bliver vidst nød til at poste lidt mere kode, da det ellers bliver utrolig svært at hjælpe dig :)
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:33 #16
schaefner, den opfylder betingelsen. Men stadig ingen cookie
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:33 #17
Avatar billede olebole Juniormester
02. marts 2003 - 23:35 #18
Prøv at slette:
  echo mysql_error();
Avatar billede schaefner Juniormester
02. marts 2003 - 23:36 #19
olebole >> Den har jeg også fjernet i et eksempel længere oppe.
lillebror >> Har du prøvet noget af det der er postet`?
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:38 #20
schaefner, jeg har prøvet alle dine forslag
Avatar billede schaefner Juniormester
02. marts 2003 - 23:38 #21
hvordan ser den formular ud hvor man skriver username og password?
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:39 #22
Det står i koden?
Avatar billede schaefner Juniormester
02. marts 2003 - 23:41 #23
ahhh, sorry :)
Avatar billede olebole Juniormester
02. marts 2003 - 23:41 #24
Har du prøvet at echo'e din $getter[uniequeId] ud i stedet for at sætte kagen?
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:42 #25
For at se om den indeholder noget? Ja det har jeg
Avatar billede sukos Juniormester
02. marts 2003 - 23:49 #26
Skriver den hej efter login?
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:50 #27
Det var for at teste om betingelsen var opfyldt og det var den, det er fjernet igen
Avatar billede sukos Juniormester
02. marts 2003 - 23:56 #28
if(isset($_GET['action']) && $_GET['action'] == "login" && $site == "" && $subsite == ""){
  $username = $_POST['username'];
  $password = $_POST['password'];
  $query = mysql_query("select * from zquish_user where user='$username' AND pass='$password'");
$antal = mysql_num_rows($query);
  if ($antal !=0) {
  $damn = "hej";
  setcookie("thing", $damn, time()+360000);
  echo "hej";
  exit;
  }
}

Men hvordan tjekker du om cookien er sat?
har du kikket i din browsers "cookiemappe"?
Avatar billede sukos Juniormester
02. marts 2003 - 23:57 #29
evt.
  $tjek = setcookie("thing", $damn, time()+360000);
  if(tjek) {
      echo "hej";
  exit;
}
Avatar billede sukos Juniormester
02. marts 2003 - 23:58 #30
hov, tjek $tjek
Avatar billede lillebror Nybegynder
02. marts 2003 - 23:58 #31
Både ved at kigge der og ved at kigge på outputtet af denne linie print_r($_COOKIE);
Avatar billede sukos Juniormester
03. marts 2003 - 00:00 #32
Det er vel ikke fordi din browser er sat til ikke at acceptere cookies?
Prøv evt. her:
http://www.sukos.dk/php/cookie/merecookie.php
Avatar billede lillebror Nybegynder
03. marts 2003 - 00:03 #33
Jeg har lige konkluderet, at fejlen sker på lokalt på min maskine. Den virker fint når jeg uploader den. Jeg har spildt min tid så vildt :(
Point til dem der har hjulpet, opret et svar.
Avatar billede schaefner Juniormester
03. marts 2003 - 00:04 #34
svar
Avatar billede olebole Juniormester
03. marts 2003 - 00:05 #35
:)
Avatar billede olebole Juniormester
03. marts 2003 - 00:10 #36
Du kan ikke umiddelbart sætte en cookie lokalt - da du så ligger under samme 'domæne', der forsøger at sætte den  ;o)
/mvh
Avatar billede sukos Juniormester
03. marts 2003 - 00:11 #37
? olebole -> Den forstod jeg ik' lige?
Avatar billede lillebror Nybegynder
03. marts 2003 - 00:11 #38
Jeg kan sagtens sætte en cookie lokalt, der er bare fejl i mit php, tror jeg har været en klovn til at opdatere min version :)
Det har virket lige indtil nu, så jeg må lige tage et kig på det en anden dag og få det rettet.
Avatar billede olebole Juniormester
03. marts 2003 - 00:19 #39
Undskyld .... jeg er vist bare træt. Vås og vrøvl ... sorry  :D
Avatar billede lillebror Nybegynder
03. marts 2003 - 18:20 #40
Til alle der er interesseret i at vide det, fik jeg rettet fejlen med en softwareopdatering :)
(Denne gang gjorde jeg det ordentligt)
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