abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    včera 22:22 | Nová verze

    CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag). Vydána byla nová major verze 10 (aktuálně 10.4.0). Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    včera 19:22 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch OTA-1 Focal založené na Ubuntu 20.04 Focal Fossa.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | IT novinky

    Společnost Red Hat slaví 30 let.

    Ladislav Hagara | Komentářů: 1
    včera 15:22 | IT novinky

    Ve věku 91 let zemřel izraelský informatik Ja'akov Ziv, spolutvůrce bezztrátových kompresních algoritmů LZ77, LZ78 a LZW (Lempel–Ziv–Welch).

    Ladislav Hagara | Komentářů: 0
    včera 11:00 | IT novinky

    Byla představena nová Arduino deska Arduino UNO R4 s 32bitovým MCU RA4M1 (Arm Cortex-M4). Desku lze zatím získat pouze v rámci early access programu.

    Ladislav Hagara | Komentářů: 0
    26.3. 18:33 | Nová verze

    Operační systém MidnightBSD, fork FreeBSD optimalizovaný pro desktop s prostředím Xfce, byl vydán ve verzi 3.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 7
    26.3. 18:22 | IT novinky

    Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Neurodeck: Psychological Deckbuilder (ProtonDB).

    Ladislav Hagara | Komentářů: 0
    25.3. 12:33 | Komunita

    Alex Ellis upozornil 15. března, že firma Docker se chystala zrušit bezplatný hosting open-source projektů na Docker Hubu. Po vlně odporu se představitelé firmy omluvili a posléze byl původní záměr odvolán.

    Fluttershy, yay! | Komentářů: 29
    25.3. 07:00 | IT novinky

    Ve věku 94 let zemřel Gordon Moore, mj. spoluzakladatel společnosti Intel a autor Moorova zákona.

    Ladislav Hagara | Komentářů: 1
    24.3. 17:11 | Nová verze

    Mercurial (Wikipedie), software pro SCM (Source Code Management), byl vydán ve verzi 6.4. Přehled novinek v poznámkách k vydání. Ve dnech 5. až 7. dubna proběhne konference Mercurial Paris.

    Ladislav Hagara | Komentářů: 0
    Používáte WSL (Windows Subsystem for Linux)?
     (74%)
     (12%)
     (4%)
     (11%)
    Celkem 342 hlasů
     Komentářů: 4, poslední 24.3. 06:42
    Rozcestník


    Dotaz: PHP rand() - tá istá hodnota v dvoch cykloch

    23.3.2015 20:50 Peter
    PHP rand() - tá istá hodnota v dvoch cykloch
    Přečteno: 340×
    Dobrý deň vám prajem.

    Mám v PHP napísané odosielanie SMS pomocou našej GSM brány a po neúspešnom pátraní prečo nám neodošle niektoré SMS som zistil prečo. Časť kódu vyzerá nasledovne:

    index.php
    require('./function.php');
    smssend($db,$_POST['number'],$_POST['message']);
    
    function.php
    function smssend($db,$number,$message) {
      $stamp=date('YmdHis').rand(11111111111111,99999999999999);
    
      .
      .
      .
    }
    
    Najdôležitejšie je na mojej otázke práve to generovanie premennej $stamp, ktorá je na generovanie názvu súboru pre smstools3. V jednej sekunde odošlem napríklad 100 požiadaviek na index.php a v každom "cykle" mi vygeneruje rôznu rand hodnotu, čiže dostanem takéto niečo:
    20150323102030123456789
    20150323102030987654321
    20150323102030192837465
    .
    .
    .
    
    A zasa v ďalšej sekunde dostanem takéto niečo:
    20150323102040123456789
    20150323102040123456789
    20150323102040123456789
    
    Som blázon ja, alebo PHP?

    Vopre veľmi pekne ďakujem za pomoc.

    Odpovědi

    23.3.2015 21:42 chrono
    Rozbalit Rozbalit vše Re: PHP rand() - tá istá hodnota v dvoch cykloch
    Ak to nie je na serveri s Windows, tak by sa niečo také nemalo stávať (každopádne aj na Linuxe je 11111111111111 pravdepodobne nad maximálnou hodnotou, ktorú tá funkcia vie vrátiť, takže sa musí hodnota vygenerovaná generátorom náhodných čísel vynásobiť, aby bola v tom rozsahu ), každopádne asi by bolo rozumnejšie používať funkciu mt_rand.
    24.3.2015 08:17 gsnak | skóre: 21 | blog: gsnak
    Rozbalit Rozbalit vše Re: PHP rand() - tá istá hodnota v dvoch cykloch
    Čo Rys, to vrah!
    24.3.2015 09:07 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: PHP rand() - tá istá hodnota v dvoch cykloch
    getRandomNumber()

    Jak uz bylo zminene, getrandmax() muze byt mensi na jinych platformach, takze mt_rand() by bylo lepsi. Nicmene tady bude spis problem v pseudogeneratoru, kde bude predvidatelny seed (treba podle sekund), muzes zkusit pouzit srand(), treba hned podle toho prvniho prikladu
    24.3.2015 12:18 Lucius
    Rozbalit Rozbalit vše Re: PHP rand() - tá istá hodnota v dvoch cykloch
    Mimo uz receneho jeste poznamka - zadny generator nahodnych cisel negarantuje unikatnost - kontrolu unikatnosti musite doprogramovat, nahodne cislo je cislo vybrane z nejakeho rozsahu a muze se opakovat. Takze jestli potrebujete, aby bylo v kazdem kroku jine, tak to musite pohlidat a v pripade, ze se nejake opakuje, tak si nechat vygenerovat jine. Nebo pouzit generovani nejakeho unikatniho identifikatoru.
    24.3.2015 14:00 R
    Rozbalit Rozbalit vše Re: PHP rand() - tá istá hodnota v dvoch cykloch
    Pre tento ucel som pouzival toto:
    $filename = tempnam($queue_dir, date('YmdHis').'-'.$cislo_pre_sms.'-');
    
    24.3.2015 21:19 Bill Gates
    Rozbalit Rozbalit vše Re: PHP rand() - tá istá hodnota v dvoch cykloch
    proc nepouzit napriklad citac mikrosekund misto rand?

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.