PDA

View Full Version : علت خطا در تولید تصادفی رشته



qqq2qqq
دوشنبه 21 آذر 1390, 22:09 عصر
سلام من از کد زیر واسه رندوم استفاده کردم



function genRandomString()
{
$length = 6;
$characters = 'abcdefghijklmnopqrstuvwxyz';
$string1 = '';

for ($p = 0; $p < $length; $p++)
{
$string1.= $characters[mt_rand(0, strlen($characters))];
echo $string1.' ';
}


return $string1;
}

function create()
{
//$string1 = '';
//include('../config.php');
//$sqlMaxCount="select max(id) from tajer";
//$MaxCount=mysql_result(mysql_query($sqlMaxCount),0 ,0);
for($i=1;$i<=$_POST['tedad'];$i++)
{
$username=genRandomString();
echo $username.'<br>';
//$SqlInsert="insert into tajer values(
}

}



که post['tedad'] همون تعداد رشته های تولیدی هستش مثلا اگه 3 بدم 3 بار رشته تولید می شه اما ممکنه بینش خطای زیر رو بده یا 5 بدم مثلا ممکنه 2 بار خطای زیر رو بده ممکن هم اصلا خطای زیر رو نده هر چی فکر کردم چیزی به ذهنم نرسید

Notice: Uninitialized string offset: 26 in I:\xampp\htdocs\etedal\admin\cuserpass.php on line 14
لطفا یکی کمک کنه

امیـرحسین
سه شنبه 22 آذر 1390, 15:17 عصر
داخل تابع mt_rand بازه رو از صفر تا طول رشته مشخص کردید که باید طول رشته منهای یک باشه! یعنی این تابع میتونه ۲۶ برگردونه در حالیکه رشته بصورت آرایه تا ۲۵ بیشتر نیست.

رضا قربانی
جمعه 25 آذر 1390, 14:21 عصر
پیشنهاد من اینه که می تونی از این هم استفاده کنی :



function encrypt($string)
{
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5("Mr-Ghorbani12!@09119171500"), $string, MCRYPT_MODE_CBC, md5(md5("Mr-Ghorbani12!@09119171500"))));
return $encrypted;
}
echo encrypt("Reza");

rahahost
چهارشنبه 25 اردیبهشت 1392, 17:39 عصر
با سلام و احترام .

دوستان ، میدونم که این تاپیک قدیمیه ولی دیدم موضوع حل نشده و از طرف دیگه منم همچین مشکلیو دارم !
راه حلی که دوستمون معرفی کردن جواب نمیده و به کار نمیاد متاسفانه .

لطفا راهنماییم کنید که چطور میشه از این خطا جلوگیری کرد ؟
متشکرم .

H:Shojaei
جمعه 27 اردیبهشت 1392, 21:58 عصر
سلام
اين كد كاملا درسته و هيچ خطايي نميده:

function genRandomString()
{
$length = 6;
$characters = 'abcdefghijklmnopqrstuvwxyz';
$string1 = '';
for ($p = 0; $p < $length; $p++)
{
$string1.= $characters[mt_rand(0, strlen($characters)-1)];
}
return $string1;
}
function createe()
{
for($i=1;$i<=10;$i++)
{
$username=genRandomString();
echo $username.'</br>';
}
}
createe();