abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:22 | Nová verze

    Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.

    Ladislav Hagara | Komentářů: 2
    včera 21:44 | Komunita

    Ubuntu 24.10 bude Oracular Oriole (věštecká žluva).

    Ladislav Hagara | Komentářů: 1
    včera 20:22 | Nová verze

    Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    28.4. 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    28.4. 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    28.4. 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 7
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 882 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 349×
    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: 22 | 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.