/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problemer med setcookie() ??
Fra : kbisgaard
Vist : 587 gange
300 point
Dato : 23-03-10 15:29

Hej

Jeg skal sætte en cookie med et navn og det gør jeg med koden:

Kode
setcookie("navn", $navn, time()+2592000, "/");


Men den gider ikke sætte cookien?

Er der nogen der har en ide om hvordan det kan være?

 
 
Accepteret svar
Fra : scootergrisen

Modtaget 310 point
Dato : 23-03-10 15:50

Kan det være fordi at først skal du sætte cookien også gælder den først fra næste gang du indlæser siden hvis du forstår.

Altså hvis du sætter en cookie så kan du ikke se at den er sat først gang du sætter den fordi det er browseren som skal sende data tilbage om at den cookie blev sat sidste gang...

jeg ik så god til at forklare det men håber du forstår.

Kommentar
Fra : molokyle


Dato : 24-03-10 09:31

Her er en liste over 'fælder' når cookies ikke vil makke ret:
Citat
Common Pitfalls:

¦Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.

¦Cookies must be deleted with the same parameters as they were set with. If the value argument is an empty string, or FALSE, and all other arguments match a previous call to setcookie, then the cookie with the specified name will be deleted from the remote client. This is internally achieved by setting value to 'deleted' and expiration time to one year in past.

¦Because setting a cookie with a value of FALSE will try to delete the cookie, you should not use boolean values. Instead, use 0 for FALSE and 1 for TRUE.

¦Cookies names can be set as array names and will be available to your PHP scripts as arrays but separate cookies are stored on the user's system. Consider explode() to set one cookie with multiple names and values. It is not recommended to use serialize() for this purpose, because it can result in security holes.

Multiple calls to setcookie() are performed in the order called.

http://php.net/manual/en/function.setcookie.php

</MOLOKYLE>

Kommentar
Fra : kbisgaard


Dato : 24-03-10 14:47

Jeg tror ikke fejlen ligger i min kode, for har tit brugt cookies, men ligepludselig gider de bare ikke virke?


Kommentar
Fra : kbisgaard


Dato : 25-03-10 16:29

Her er den fulde kode til mit login script:
Kode
<?php
   $host = "localhost";
   $user = "just2cool_dk";
   $password = "kbisgaard";
   $database = "just2cool_dk";
   
   $connection = mysql_connect($host,$user,$password) or die(mysql_error());
   mysql_select_db($database) or die(mysql_error());
   
   if(isset($_POST['Submit'])){
   $sql = "SELECT * FROM users WHERE username='$_POST[username]'";
   $result = mysql_query($sql,$connection) or die(mysql_error());
   while($row = mysql_fetch_array($result)){
      $password = $row[password];
      $username = $row[username];
   }
      $user_password = $_POST['password'];
      if($password == $user_password){
      setcookie(login, $username, time()+2592000, "/");
      $msg[ok] = "Du er nu logget ind!";
      }
      else{
      $msg[ok] = "Forkert password!";   
      }
   }
   
   if(empty($_COOKIE['login'])){
      $bruger = "
      <table width='130' class='bodytable' id='sidemenu'><tr><th>Login</th></tr>
      <tr><td>
      <form id='login' name='login' method='post' action='$_SERVER[PHP_SELF]'>
<label>Brugernavn<br />
<input name='username' type='text' size='10' />
</label>
<br />
<label>Password<br />
<input name='password' type='password' size='10' />
</label>
<label>
<br />
<input type='submit' name='Submit' value='Login' />
</label>
</form>
   </td></tr></table>";
   }   
   print $bruger;
   ?>

Check password virker fint. Får en beskeden "du er nu logget ind" hvis jeg skriver den rigtige kode, og "forkert password" hvis ikke.. Men den sætter stadig ikke cookien?

Godkendelse af svar
Fra : kbisgaard


Dato : 25-03-10 21:16

Tak for svaret scootergrisen.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste