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? |
|
|
|
![]() |
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) ?
|
|
|
|
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']; |
|
|
|
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] |
|
|
|
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");
[/manual]
setcookie ("cookie[two]", "cookietwo"); setcookie ("cookie[one]", "cookieone"); if (isset ($cookie)) { while (list ($name, $value) = each ($cookie)) { echo "$name == $value<br>n"; } } |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 00:39 |