0

I want to create a form where one of the values already has a random string filled in. I've tried PHP and javascript however it keeps displaying the variable name instead of the variable... Any help would be much as appreciated!

<form name="name" method="post" action="sendform.php">
    <table width="450px">
        <tr>
            <td valign="top">
                <label for="number">Number</label>
            </td>
            <td valign="top">
                <input  type="text" value="Insert random string here" maxlength="50" size="30">
            </td>
        </tr>
    </table>
</form>

script:

<script>
function generateRandomString($length = 10) {
$characters = 
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
</script>

php

function generateRandomString($length = 10) {
$characters = 
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
9
  • Post your php/javascript that you have tried to solve the problem Commented Nov 24, 2017 at 9:12
  • How did you try with javascript or php? Show your solution with that code. Commented Nov 24, 2017 at 9:12
  • and make sure your site ends with .php instead of .html Commented Nov 24, 2017 at 9:14
  • your script file extension is .html ? Commented Nov 24, 2017 at 9:19
  • 1
    I don't understand why are you using PHP function inside <script> tag Commented Nov 24, 2017 at 9:26

5 Answers 5

2

There are a lot of answers to this question, but none of them leverage a Cryptographically Secure Pseudo-Random Number Generator (CSPRNG).

The simple, secure, and correct answer is to use RandomLib and don't reinvent the wheel.

With a secure integer generator in place, generating a random string with a CSPRNG is a walk in the park.

function random_str($length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
    $str = '';
    $max = mb_strlen($keyspace, '8bit') - 1;
    for ($i = 0; $i < $length; ++$i) {
        $str .= $keyspace[random_int(0, $max)];
    }
    return $str;
}


<form name="name" method="post" action="sendform.php">
    <table width="450px">
        <tr>
            <td valign="top">
                <label for="number">Number</label>
            </td>
            <td valign="top">
                <input  type="text" value="<?php echo random_str(10); ?>" maxlength="50" size="30">
            </td>
        </tr>
    </table>
</form>
Sign up to request clarification or add additional context in comments.

1 Comment

Nice wiki links :)
0

Do this

<?php $length = 10;
$randomString = substr(str_shuffle(str_repeat($x='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil($length/strlen($x)) )),1,$length);
?>
 <td valign="top">
     <input  type="text" value="<?php echo $randomString;?>" maxlength="50" size="30">
 </td>

Output will be mix of number and alphabet like this: 10whDMtuLO

Also, set the length of the string in $length as per your need.

Comments

0

Try this..

<?php $rand = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz"), 0, 7); ?>
.
.
.
<td valign="top">
<input  type="text" value="<?php echo $rand; ?>" maxlength="50" size="30">
</td>

Comments

0

You can Refer this answer by Roko C. Buljan

function randNumber(len, an){
    an = an&&an.toLowerCase();
    var str="", i=0, min=an=="a"?10:0, max=an=="n"?10:62;
    for(;i++<len;){
      var r = Math.random()*(max-min)+min <<0;
      str += String.fromCharCode(r+=r>9?r<36?55:61:48);
    }
    return str;
}
document.getElementById("foo").value = randNumber(10,'A');
<textarea id='foo' style='width:100%;height:200px'></textarea>

Comments

0

function for making sh1 hash

function sha1 ( str ) { 

var rotate_left = function(n,s) {
        var t4 = ( n<<s ) | (n>>>(32-s));
        return t4;
    };

var lsb_hex = function(val) {
        var str="";
        var i;
        var vh;
        var vl;

        for( i=0; i<=6; i+=2 ) {
            vh = (val>>>(i*4+4))&0x0f;
            vl = (val>>>(i*4))&0x0f;
            str += vh.toString(16) + vl.toString(16);
        }
        return str;
    };

var cvt_hex = function(val) {
        var str="";
        var i;
        var v;

        for( i=7; i>=0; i-- ) {
            v = (val>>>(i*4))&0x0f;
            str += v.toString(16);
        }
        return str;
    };

var blockstart;
var i, j;
var W = new Array(80);
var H0 = 0x67452301;
var H1 = 0xEFCDAB89;
var H2 = 0x98BADCFE;
var H3 = 0x10325476;
var H4 = 0xC3D2E1F0;
var A, B, C, D, E;
var temp;

str = this.utf8_encode(str);
var str_len = str.length;

var word_array = new Array();
for( i=0; i<str_len-3; i+=4 ) {
    j = str.charCodeAt(i)<<24 | str.charCodeAt(i+1)<<16 |
    str.charCodeAt(i+2)<<8 | str.charCodeAt(i+3);
    word_array.push( j );
}

switch( str_len % 4 ) {
    case 0:
        i = 0x080000000;
    break;
    case 1:
        i = str.charCodeAt(str_len-1)<<24 | 0x0800000;
    break;
    case 2:
        i = str.charCodeAt(str_len-2)<<24 | str.charCodeAt(str_len-1)<<16 | 0x08000;
    break;
    case 3:
        i = str.charCodeAt(str_len-3)<<24 | str.charCodeAt(str_len-2)<<16 | str.charCodeAt(str_len-1)<<8    | 0x80;
    break;
}

word_array.push( i );

while( (word_array.length % 16) != 14 ) word_array.push( 0 );

word_array.push( str_len>>>29 );
word_array.push( (str_len<<3)&0x0ffffffff );

for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
    for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
    for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);

    A = H0;
    B = H1;
    C = H2;
    D = H3;
    E = H4;

    for( i= 0; i<=19; i++ ) {
        temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
        E = D;
        D = C;
        C = rotate_left(B,30);
        B = A;
        A = temp;
    }

    for( i=20; i<=39; i++ ) {
        temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
        E = D;
        D = C;
        C = rotate_left(B,30);
        B = A;
        A = temp;
    }

    for( i=40; i<=59; i++ ) {
        temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
        E = D;
        D = C;
        C = rotate_left(B,30);
        B = A;
        A = temp;
    }

    for( i=60; i<=79; i++ ) {
        temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
        E = D;
        D = C;
        C = rotate_left(B,30);
        B = A;
        A = temp;
    }

    H0 = (H0 + A) & 0x0ffffffff;
    H1 = (H1 + B) & 0x0ffffffff;
    H2 = (H2 + C) & 0x0ffffffff;
    H3 = (H3 + D) & 0x0ffffffff;
    H4 = (H4 + E) & 0x0ffffffff;
}

var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
return temp.toLowerCase();

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.