anonīms Posted June 14, 2009 Report Share Posted June 14, 2009 (edited) Kā varētu izveidot kodu, kas randomā samet kopā gan ciparus gan skaitļus, lai iznākums sanāk apmēram šads: 15bgh16hbnmq1 (kā piemērs)? Labots: Sorry par to, ka vispirms uzrakstīju, jo domāju, ka nebūs laika pašam pie pc pieskriet. Šķiet, ka esmu atradis, bet nezinu cik laba viņai ir. http://paste.php.lv/659ecb74727357d5de28a8...ae778d?lang=php PAPILDINU Vēlos izveidot reģistrāciju ar ielūgumu sistēmu un apmēram vēlētos zināt, kas un kā. Kādas kollonas tabulā vajadzīgas? (kam, atslega(kas sastāvēs no random skaitļiem un būs reģistrācijai pievienots gets, kas pārbaudīs vai db ir ieraksts ar šādu atslēgu), epasts(kam šis ielūgums ticis nosūtīts),no_ka(kas sūtījis ielūgumu)) tātad: id, kam, atslega, no_ka. Vēl kādu kollonu vajag? Edited June 14, 2009 by anonīms Quote Link to comment Share on other sites More sharing options...
werd Posted June 14, 2009 Report Share Posted June 14, 2009 (edited) Šo gadījuma virkni izveido ar funkcijas palīdzību. function randStr ($strlength) { $template = "abcdefghijkmnpqrstuvwxyz0123456789"; for ($i = 0; $i < $strlength; $i++) { $j = rand(0, strlen ($template) - 1); $randstring .= $template[$j]; } return $randstring; } Ielūgumu sistēmu var veidot dažādi, tas ir, ar dažādu sarežģītības pakāpi. Primitīvākais variants ir apmēram šāds: 1. Datubāzes tabulā glabājas dati: ID - unikālais ieraksta identifikātors key - ģenerētā gadījuma virkne, kas nodrošina reģistrāciju key_valid_to - datums vai laiks, cik ilgi šī konkrētā atslēga ir derīga izmantošanai, bet šis parametrs nav obligāts key_used - attiecīgi skaitlis 0 vai 1, kas nosaka vai šī atslēga jau it izmantota, arī šis parametrs nav obligāts mail - e-pasta adrese, kura būs derīga ar šo atslēgu 2. Lietotājam uz e-pastu tiek nosūtīta saite: http://www.manalapa.lv/register/?key=6hfm007fd7j2 3. Pēc pieprasījuma tiek meklēts datubāzē šāds ieraksts, kur atslēga ir šis mainīgais saitē un e-pasta adrese ir lietotāja ievadīta, un atslēgas datums ir derīgs - nav iztecējis 4. Ja šāds ieraksts tiek atrastas, saglabājam konkrētā lietotāja datus, un vai nu izdzēšam konkrēto ierakstu no atslēgu tabulas vai uzstādam vērtību 1 - izmantota Apmēram šāda ir ļoti primitīva ielūgumu sistēma, to var vēlāk uzlabot, bet iesākumam tā savu uzdevumu pilda. Edited June 14, 2009 by phpjanis Quote Link to comment Share on other sites More sharing options...
marcis Posted June 15, 2009 Report Share Posted June 15, 2009 Par to random ģenerēšanu var izdomāt da jebko... substr(md5(time())) utt Pats ģenerēju apmēram šādi, izmantojot ciparus, lielos un mazos burtus function get_key($length){ $chars = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9)); $str = ''; for($i=0; $i<$length; $i++){ $str.= $chars[array_rand($chars)]; } return $str; } Quote Link to comment Share on other sites More sharing options...
anonīms Posted June 15, 2009 Author Report Share Posted June 15, 2009 ok. Apmēram tad par šo viss skaidrs. ķeršos klāt un tad došu ziņu kā man iet. Quote Link to comment Share on other sites More sharing options...
anonīms Posted June 18, 2009 Author Report Share Posted June 18, 2009 (edited) Tātad rakstu atkal. Gribu tikai pateikt, ka ar while(true) nav sanācis rīkoties, bet nu kods ir gatavs, kurš diemžēl izmet erorru. http://paste.php.lv/f422b6b1848dc0d0883f12...daf37b?lang=php Kur kļūda? un vēl pirms tā koda function ieluguma_atslega($length){ $chars = array_merge(range('a', 'z'), range('A', 'Z'), range(0, 9)); $str = ''; for($i=0; $i<$length; $i++){ $str.= $chars[array_rand($chars)]; } return $str; } // atslega $ieluguma_atslega = ieluguma_atslega(10); aizmirsu pateikt, kas par erroru. Nospiežot submit, izmet You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 (1 līnija te točna nav vainīga, bet kaut kur šajā kodā) atradu vainu kverijā. neuzmanības kļūda insert into () values () Edited June 18, 2009 by anonīms Quote Link to comment Share on other sites More sharing options...
marcis Posted June 18, 2009 Report Share Posted June 18, 2009 PHP kļūda runā par kļūdām PHP kodā, norādot failu un līnijas numuru attiecīgajā failā, bet MySQL kļūdas runā par kļūdām kverijos, norādot līniju attiecīgajā kverijā, nevis failā. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.