Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> znikajace(?) cookies
rmn
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 19.02.2004
Skąd: Piaseczno

Ostrzeżenie: (0%)
-----


Moj problem:
Stworzłem funckje autologowania, która opiera sie na mechanizmie cookies. Problem polega na tym, ze NIEKTORYM uzytkownikom funkcja ta przestaje po JAKIM NIEOKRESOLONYM czasie działac.. czy ktos kiedys spotkal sie z takimi objawami, co to moze byc?

ps. wiecie moze jak zmusic przegladarke do wyswietlenia monitu o zapamietania hasla?
Go to the top of the page
+Quote Post
Cross
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Jastrzębie

Ostrzeżenie: (0%)
-----


hm... nikt z nas nie jest jasnowidzem jak mamy ci pomóc skoro nie podasz nawet kodu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post
rmn
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 19.02.2004
Skąd: Piaseczno

Ostrzeżenie: (0%)
-----


co tu duzo pisac.. racja:)
wiec oto kody
[php:1:4bb92d0176]<?php

//sprawdzanie czy ciasteczko jest
if(isset($_COOKIE['auto']))
{

$auto = $_COOKIE['auto'];
$nick = $auto['one'];
$mdPass = $auto['two'];

if(mdAuth($nick, $mdPass)==1)
{
session_start();

MakeLog($nick);

$User = new User($nick);
$_SESSION['User'] = $User ;

header("Location: http://frmn.bounceme.net");
}
else
{
$error = Auth($nick, $password);
echo "<div id='content' style='text-align:center;vertical-align:middle;'>
<SCRIPT LANGUAGE="JavaScript">

function redirect()
{
document.location.replace('?act=login&act=showloginform');
}

setTimeout('redirect()', 2000);

</SCRIPT>
<span id='error'>$error</span></div>";
}

?>[/php:1:4bb92d0176]
i stawianie ciasteczka:

[php:1:4bb92d0176]<?php
if(($User->auto_login)&&(isset($_COOKIE['auto']))&&($auto==0))
{
setcookie("auto[two]", "", time() - 3600, "/", "frmn.bounceme.net");
setcookie("auto[one]", "", time() - 3600,"/", "frmn.bounceme.net");

$result = mysql_query("UPDATE users SET auto_login = 0 WHERE nick = '$User->nick'");
}
if((!$User->auto_login)&&!(isset($_COOKIE['auto']))&&($auto==1))
{

$row = mysql_fetch_row(mysql_query("SELECT password FROM users WHERE nick='$User->nick'"));
$pass = $row[0];

setcookie("auto[two]", $pass, time() + 3600*24*730,"/", "frmn.bounceme.net");
setcookie("auto[one]", $User->nick, time() + 3600*24*730,"/", "frmn.bounceme.net");

$result = mysql_query("UPDATE users SET auto_login = 1 WHERE nick = '$User->nick'");
}
?>[/php:1:4bb92d0176]

sprawdzilem juz ze na komputerach na ktorych byly ciasteczka juz ich nie ma.. a expire time napewno jeszcze nie nastal..

kod do stawiania cisteczek jest dosc skomplikowany poniewaz caly system ma dzialac tak iz autolowanie moze byc jednoczesnie wlaczone tylko na jednym komputerze(forma zabezpieczenia)

$User to klasa uzytkownika w profilu ktorego 'mieszamy'(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

ps $auto = $_GET['auto'];
Go to the top of the page
+Quote Post
Kinool
post
Post #4





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


[php:1:1b8ff88b83]<?php
setcookie("auto[two]", "", time() - 3600, "/", "frmn.bounceme.net");
?>[/php:1:1b8ff88b83]

a nie powinno byc przypadkiem:
[php:1:1b8ff88b83]<?php
setcookie("auto[two]", "", time() + 3600, "/", "frmn.bounceme.net");
?>[/php:1:1b8ff88b83]

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) jak stawiasz - to odejujesz od aktualnego czasu wiec cookie dziala do momentu bycia na stronie (a moze i nawet nie)
chyba ze zadaniem tego jest usuwanie cookie u klienta

pozatym nie jestem pewien czy
[php:1:1b8ff88b83]<?php
setcookie("auto[two]", $pass, time() + 3600*24*730,"/", "frmn.bounceme.net");
//nie jestem pewnien czy tak mozna tworzyc tablice
?>[/php:1:1b8ff88b83]
zapisze to jako wartosc tablicy, bo potem odwolujesz sie do tego jak do tablicy!


nie lepiej byloby zrobic tak:
[php:1:1b8ff88b83]<?php
$auto[one]="costam";
$auto[two]="costam2";
setcookie("auto",$auto, time()+3600*24*730,"/", "frmn.bounceme.net");
?>[/php:1:1b8ff88b83]
Go to the top of the page
+Quote Post
rmn
post
Post #5





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 19.02.2004
Skąd: Piaseczno

Ostrzeżenie: (0%)
-----


co do tego co robi kod.. to ta czesci:
[php:1:e652834e0b]<?php
if(($User->auto_login)&&(isset($_COOKIE['auto']))&&($auto==0))
{
setcookie("auto[two]", "", time() - 3600, "/", "frmn.bounceme.net");
setcookie("auto[one]", "", time() - 3600,"/", "frmn.bounceme.net");

$result = mysql_query("UPDATE users SET auto_login = 0 WHERE nick = '$User->nick'");
}

?>[/php:1:e652834e0b]
usuwa cisteczko a ta:
[php:1:e652834e0b]<?php
if((!$User->auto_login)&&!(isset($_COOKIE['auto']))&&($auto==1))
{

$row = mysql_fetch_row(mysql_query("SELECT password FROM users WHERE
nick='$User->nick'"));
$pass = $row[0];

setcookie("auto[two]", $pass, time() + 3600*24*730,"/", "frmn.bounceme.net");
setcookie("auto[one]", $User->nick, time() + 3600*24*730,"/", "frmn.bounceme.net");

$result = mysql_query("UPDATE users SET auto_login = 1 WHERE nick = '$User->nick'");
}

?>[/php:1:e652834e0b] stawia cookie

wszystkim steruje zmienna $auto ktora jest pozyskiwana z formularza(uzytkownik zaznacza czy chce miec wlaczone autologowanie)

co do drugiej uwagi to: Manual:
Cytat
setcookie ("cookie[three]", "cookiethree");
setcookie ("cookie[two]", "cookietwo");
setcookie ("cookie[one]", "cookieone");
if (isset ($cookie)) {
  while (list ($name, $value) = each ($cookie)) {
      echo "$name == $value&lt;br>n";
  }
}
[/manual]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 00:39