cr_sessionid()

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
mbrodin



Medlem i: 1635 dagar
Från: Halmstad
Status: Offline



#739081
Inlägg Skrivet: 2015-03-14 18:47      Ämne: cr_sessionid() Citera

Hej,

jag har under det senaste halvåret haft problem att hitta en kodsnutt som skulle ge mig det perfekta session_id jag skulle behöva. Det ska vara kort, 20 tecken långt och lätt att identifiera, och varje kod ska ge ett nytt id utan att man ska behöva se efter i databasen om det redan finns ett sträng med detta id, därför kombinerade jag ordesn SE{2}-TIDSTÄMPEL{10}-AUTOGEN-CHAR{3}AUTOGEN-NUM{2}, detta kommer därför genera endast ett id även på de mest aktiva sajterna. Ja, hoppas ni förstår vad jag menar!

SE = Session

Nedan följer koden:
PHP:
1:
     /**
2:
     *
3:
     * Generates a unique session id for visitors on the site.
4:
     *
5:
     * @return string
6:
     *
7:
     * @autohor Mikael Brodin <mikael.brian.brodin@gmail.com>
8:
     *
9:
     **/
10:
     function cr_sessionid(){
11:
 
12:
     $range_a range('A''Z');
13:
     shuffle($range_a); shuffle($range_a);
14:
     $c array_rand($range_a3);
15:
 
16:
     $range_0 range(09);
17:
     shuffle($range_0);
18:
     $n array_rand($range_02);
19:
 
20:
     // This will output someting like "&#65279;SE-1425954714-RBF02"
21:
     return 'SE-'time() .'-'$range_a[$c[0]].$range_a[$c[1]].$range_a[$c[2]] .''$range_0[$n[0]].$range_0[$n[1]];
22:
     


Vill man ha ännu mer random, gör så här:
PHP:
1:
     /**
2:
     *
3:
     * Generates a unique session id for visitors on the site.
4:
     *
5:
     * @return string
6:
     *
7:
     * @autohor Mikael Brodin <mikael.brian.brodin@gmail.com>
8:
     *
9:
     **/
10:
     function cr_sessionid(){
11:
 
12:
     $range_a range('A''Z');
13:
     shuffle($range_a); shuffle($range_a);
14:
     $c array_rand($range_a3);
15:
 
16:
     $range_0 range(09);
17:
     shuffle($range_0);
18:
     $n array_rand($range_02);
19:
 
20:
      shuffle($range_a);
21:
     $s array_rand($range_a2);
22:
 
23:
     // This will output someting like "&#65279;SE-1425954714-RBF02"
24:
     return $range_a[$s[0]].$range_a[$s[1]] .'-'time() .'-'$range_a[$c[0]].$range_a[$c[1]].$range_a[$c[2]] .''$range_0[$n[0]].$range_0[$n[1]];
25:
     


Hoppas någon får användning av denna koden. Smile
 

_________________
Min blogg Smile Mitt gamla konto Mikael Brodin. Smile
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
intedinmamma



Medlem i: 3511 dagar
Från: Göteborg
Status: Offline



#739099
Inlägg Skrivet: 2015-03-16 11:33      Ämne: Citera

För referens så genereras sessions-id't såhär som standard, vilket "alltid" är tillräckligt. Smile
 

_________________
Statistiskt sett? Kanske.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Tarre



Medlem i: 4983 dagar

Status: Offline



#740181
Inlägg Skrivet: 2015-12-24 23:16      Ämne: Citera

när du använder flera äggmackor för att skapa en sträng så bör du använda sprintf
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic