שני שאלות קלות

gunfor

New member
שני שאלות קלות

א. אני רוצה לעשות רנדום של a-z,A-Z,1-9 בת 9 אותיות איך עושים את זה בכלל ב. איך בודקים כפילויות בממסד הנתונים כאילו כפילויות מתי שמכניסים את הנתונים לא בסלקט
 

N i X

New member
בקשר לא'

/* * RANDOM PASSWORD GENERATION ALGORITHM * PROGRAMMED BY: BRIAN GRIFFIN * January 1, 2003 * [email protected] * * You can use this freely. Just don't credit it as your own work! And please e-mail me if you do just to let me know. Thanks. */ // DEFINE STRINGS TO USE FOR CHARACTER C // OMBINATIONS IN THE PASSWORD $LCase = "abcdefghijklmnopqrstuvwxyz"; $UCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $Integer = "0123456789"; // DEFINE CONSTANTS FOR ALGORTTHM define("LEN", "1"); /* THIS FUNCTION GENERATES A RANDOM NUMBER THAT WILL BE USED TO * RANDOMLY SELECT CHARACTERS FROM THE STRINGS ABOVE */ function RndInt($Format){ switch ($Format){ case "letter": $Rnd = rand(0,25); if ($Rnd > 25){ $Rnd = $Rnd - 1; } break; case "number": $Rnd = rand(0,9); if ($Rnd > 9){ $Rnd = $Rnd - 1; } break; } return $Rnd; } // END RndInt() FUNCTION /* RUN THE FUNCTION TO GENERATE RANDOM INTEGERS FOR EACH OF THE * 6 CHARACTERS IN THE PASSWORD PRODUCED. */ $a = RndInt("letter"); $b = RndInt("letter"); $c = RndInt("letter"); $d = RndInt("letter"); $e = RndInt("number"); $f = RndInt("number"); // EXTRACT 6 CHARACTERS RANDOMLY FROM TH // E DEFINITION STRINGS $L1 = substr($LCase, $a, LEN); $L2 = substr($LCase, $b, LEN); $U1 = substr($UCase, $c, LEN); $U2 = substr($UCase, $d, LEN); $I1 = substr($Integer, $e, LEN); $I2 = substr($Integer, $f, LEN); // COMBINE THE CHARACTERS AND DISPLAY TH // E NEW PASSWORD $PW = $L1 . $U2 . $I1 . $L2 . $I2 . $U1; echo(" The Password Is:\t$PW "); ?>​
 

N i X

New member
עוד אחד

random_password_v1 <?php /********************************************************************* * random_password_v1.php * * Author: Steve Werby <steve at(@) befriend dot(.) com> * Created: 2000-10-19 19:55 * Revised: 2000-12-19 20:28 * * Purpose: Create a random password. * * Latest version always available at http://www.befriend.com/. *********************************************************************/ // Generates a random password. function random_password_v1( $characters_allow = 'a-z,A-Z,1-9', $characters_disallow = 'i,o', $password_length = 8, $repeat = 0 ) { // Generate array of allowable characters. $characters_allow = explode( ',', $characters_allow ); for ( $i = 0; $i < count( $characters_allow ); $i++ ) { if ( substr_count( $characters_allow[$i], '-' ) > 0 ) { $character_range = explode( '-', $characters_allow[$i] ); for ( $j = ord( $character_range[0] ); $j <= ord( $character_range[1] ); $j++ ) { $array_allow[] = chr( $j ); } } else { $array_allow[] = $characters_allow[$i]; } } // Generate array of disallowed characters. $characters_disallow = explode( ',', $characters_disallow ); for ( $i = 0; $i < count( $characters_disallow ); $i++ ) { if ( substr_count( $characters_disallow[$i], '-' ) > 0 ) { $character_range = explode( '-', $characters_disallow[$i] ); for ( $j = ord( $character_range[0] ); $j <= ord( $character_range[1] ); $j++ ) { $array_disallow[] = chr( $j ); } } else { $array_disallow[] = $characters_disallow[$i]; } } mt_srand( ( double ) microtime() * 1000000 ); // Generate array of allowed characters by removing disallowed // characters from array. $array_allow = array_diff( $array_allow, $array_disallow ); // Resets the keys since they won't be consecutive after // removing the disallowed characters. reset( $array_allow ); $new_key = 0; while( list( $key, $val ) = each( $array_allow ) ) { $array_allow_tmp[$new_key] = $val; $new_key++; } $array_allow = $array_allow_tmp; while ( strlen( $password ) < $password_length ) { $character = mt_rand( 0, count( $array_allow ) - 1 ); // If characters are not allowed to repeat, // only add character if not found in partial password string. if ( $repeat == 0 ) { if ( substr_count( $password, $array_allow[$character] ) == 0 ) { $password .= $array_allow[$character]; } } else { $password .= $array_allow[$character]; } } return $password; } /********************************************************************* * Usage of random_password_v1(). *********************************************************************/ echo random_password_v1('A-P,d-z,1-9','O,3-6',10,0); ?>​
 

gunfor

New member
בקשר לא אני רואה שזה באמת אדגר

אוקי אז ככה בגלל שמה שעניתה לי לא בדיוק מה שאני מחפש אני מחפש זה יציג לי בפונקציה מסוימת אם הפעלתה קבצות אותיות מספרים משהוא כמו משהוא סיראלי שכולל a-z A-Z 1-9 ולא בשיביל סיסמה בקשר 2 בבקשה תסביר לי אני לא הנתי כלום מין בטקסט תודה:)
 

N i X

New member
אוקי, ככה:

בקשר לא', תסביר לי למה אתה צריך את זה, כי לא הבנתי ;) בקשר לב': מה שהם מציעים בפורום ההוא זה להגדיר שדה אחת כ unique (ראה create tableבdocumentation של mysql) שזה בעצם יהיה שדה שיהיה לו קוד מיוחד שאותו mysql יחשב לבד לפי השדות האחרים, כניראה לפי איזה נוסחה מיוחדת, וע"י כך, כל פעם שתנסה להכניס משהו שהקוד שלו תואם למה שקיים בבסית נתונים, הוא לא יתן לך להכינס את זה ויביא שגיאה.
 

N i X

New member
אני עדיין לא הבנתי מה בידיוק

אתה רוצה לעשות בא', אבל הנה כמה דברים מעניינים: בPHP שי פונקציה, uniqid() שמה, שהיא מייצרת "unique id" לדוגמא:
$token = md5(uniqid("")); // no prefix $better_token = md5(uniqid(rand(),1)); // better, difficult to guess​
נקבל משהו כמו: e894664312f808515468277ba0491baa
 

gunfor

New member
זה א

ממ אני כאילו זקוק שכל פעם הפונקציה מופעלת זה נתון לי משהוא בין 9 ספרות בערך מה שמתקבל ב MD5
 

kensaggy

New member
למה

כזה קוד ארוך כדי ליצור סיסמא רנדומלית? (לא שהקוד לא עוד או משהו) הנה קוד קצר ולעניין שעובד על פי קודים אסקיים (ASCII):
function generate_password() { $min=6; // minimum length of password $max=8; // maximum length of password $pwd=""; // to store generated password for($i=0;$i<rand($min,$max);$i++) { $num=rand(48,122); if(($num > 97 && $num < 122)) { $pwd.=chr($num); } else if(($num > 65 && $num < 90)) { $pwd.=chr($num); } else if(($num >48 && $num < 57)) { $pwd.=chr($num); } else if($num==95) { $pwd.=chr($num); } else { $i--; } } return $pwd; } // end of generate_password​
לשימוש:
$your_pwd_var = generate_password(); echo "Your new password is:".$your_pwd_var;​
בהצלחה, חן. נ.ב. יש עוד מאה מליון דרכים ליצור סיסמא רנדומלית, רק צריכים להיות יצירתיים :)
 

דיסקט

New member
קח משהו יותר יעיל וקצר..

Function Random () { $min=9; $max=9; $pwd=""; for($i=0;$i<rand($min,$max);$i++) { $num=rand(48,122); if(($num > 97 && $num < 122)) { $pwd.=chr($num); } else if(($num > 65 && $num < 90)) { $pwd.=chr($num); } else if(($num >48 && $num < 57)) { $pwd.=chr($num); } else if($num==95) { $pwd.=chr($num); } else { $i--; } } return $pwd; }​
 
למעלה