PDA

View Full Version : سوال: ایجاد کد رهگیری با PHP



SONITAJ
سه شنبه 10 بهمن 1391, 12:58 عصر
سلام .
من میخوام باphp یک کدرهگیری ایجادکنم تازمانی که مشتری خرید خود راثبت کرد به صفحه بعد بره ویک کدرهگیری برای پیگیری سفارش خودبگیره وسفارشش رودنبال کنه اما نمیدونم این کدها راچطور باید بنویسم .لطفا اگر کسی بلده یا میدونه من رو راهنمایی کنه. اگر کسی هم نمونه کد یا آموزشی دراین باره داره بذاره ممنون میشم.
فقط یه کم فوریه.

lordofphp
سه شنبه 10 بهمن 1391, 13:02 عصر
به نام خدا
سلام از توابع مختفی میشه استفاده کرد نمونش
تابع rand() هستش
به صورت


rand(100,1000000);

SONITAJ
سه شنبه 10 بهمن 1391, 13:35 عصر
دوباره سلام.
میخوام کد رهگیری ترکیبی ازاعداد وحروف باشه چه طوری؟ و این کد رو بایدتوی صفحه ای که فرم سفارش روتعریف کردم بکارببرم یا صفحه بعدکه مشتری قراره کد رهگیری رو تحویل بگیره؟ ممکنه لطفا یه نمونه برنامه ساده برام بذارید. ممنون

mamali-mohammad
سه شنبه 10 بهمن 1391, 13:47 عصر
md5(rand(100,1000000));
بعد ازاینکه توی دیتابیس ثبتش کردی به کاربر نشون بده
یا بعد از اینکه post شد مقدارش رو چاپ کن

siavashsay
سه شنبه 10 بهمن 1391, 14:09 عصر
بهترین راه استفاده از تابع time هست !
چون دیگه تکرار نمیشه ! اما استفاده از تابع rand یک محدوده بین 2 عدد رو به صورت رندم انتخاب میکنه و این امکان وجود داره که مجدد همون عدد رو برگردونه !
شما با کمک MD5 و تابع TIME میتونی یک رشته غیر تکراری رو داشته باشی
مثال :

$Code=md5(time());
موفق باشید !

siavashsay
سه شنبه 10 بهمن 1391, 14:16 عصر
اینم هم یک تابع گفتم الان واست بنویسم !

function codeGen(){
$words ='';
$nums = '';
for ($i = 0; $i < 4; $i++)
{
$words .= strtoupper(chr(rand(97, 122)));
}
$nums=time();
$code=$words.$nums;
return $code;
}
توضیح :
ابتدا 2 تا متغیر خالی تعریف میکنیم!
تابع for میاد 4 تا کاراکتر رو به صورت حروف بزرگ بهت میده ! ( اگه خواستی میتونی تعداد کاراکترها رو از 4 به 6 یا هرچقدر میخوای تغییر بدی )
بعد توسط تابع time یک عدد غیر قابل تکرار رو درست میکنیم و در اخر اونها رو بهم میچسبونیم !
نمونه میشه :
GFCX1359802094
موفق باشید !

rezaonline.net
سه شنبه 10 بهمن 1391, 14:22 عصر
نظرتون در مورد این چیه ؟

function randomChar($max=8 , $salt='')
{
$max = (int) $max ;
$str = $salt . time() . mt_rand(1,80). $salt . $_SERVER['REMOTE_ADDR'] .microtime(true);
$random = md5($str);
for(;;)
{
$random .= md5($random);
if(strlen($random) >= $max)
break;
}
return substr($random , 1 , $max);
}

میتونی تعداد کاراکترهایی رو که میخوای برات برگردونه ، مثلا یک رشته رندم 100 کاراکتری :)

siavashsay
سه شنبه 10 بهمن 1391, 14:23 عصر
آقا نظرمون خوبه :))
ما گفتیم یه چیز ساده بندیم بنده خدا ! شما ماشالله یه ورق بهتر رو کردی ! :قهقهه:

SONITAJ
سه شنبه 10 بهمن 1391, 18:56 عصر
دوباره سلام بین این دو روش امنیت کدام روش بالاتره؟چرا؟ امنیتش هم برام خیلی مهمه چون دارم روی فرشگاه الکترونیکی کارمیکنم و کدرهگیری حکم رسید پرداختی دستی به مشتری رو داره وباید غیرقابل تغییر باشه.

mohsen_31369
سه شنبه 10 بهمن 1391, 19:25 عصر
سلام
فکر کنم دادن کد رهگیری به مشتری برای پیگیری سفارش زیاد کاربر پسند نمی باشد چون برای مشتری این کار یکم زحمت داره البته یکم! ولی این دوره زمونه که خودتون می دونین طرف برای جستوجو تو گوگل دیگه حال تایپ کردن رو هم نداره بلکه باهاش حرف میزنه ! چه برسه به دادن کد رهگیری و کاربر یه جا اونو بنویسه بعد دوباره اونو تایپ کنه و ...

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

siavashsay
سه شنبه 10 بهمن 1391, 20:13 عصر
دوباره سلام بین این دو روش امنیت کدام روش بالاتره؟چرا؟ امنیتش هم برام خیلی مهمه چون دارم روی فرشگاه الکترونیکی کارمیکنم و کدرهگیری حکم رسید پرداختی دستی به مشتری رو داره وباید غیرقابل تغییر باشه.دوست عزیز !
کد رهگیری نیازی به امنیت نداره ! تنها عامل مهمش اینه که باید طوری باشه که تکرار نداشته باشه !
چون شما کد رهگیری رو در دیتابیس ذخیره میکنید ! حالا حتی اگر کاربر اون کد رو جعل کنه اون کد که توی دیتابیس شما وجود نداره !
الان خیلی از سایتهای اینترنتی ( بانک های اینترنتی ) Batch Number هاشون یک عدد هست که داره یکی یکی میره بالا ! مثلا 1000 - 1001 - 1002 !
مهم نیست چی باشه - مهم اینه که اون کد طوری باشه که رشته تکراری تولید نکنه ! همین !
ضمنا ...
شما برای کد رهگیری باید همراه کد رهگیری یک سری اطلاعات دیگه هم اضافه کنید !
مثلا تاریخ خرید - کد رهگیری - مبلغ پرداختی - نوع کالا و ... یک سری چیزهایی که فقط اون خریدار توی پنل مخصوصش دریافت میکنه و میبینه !
و موقع چک کردن باید همه اینها رو از کاربر بخواین !
مثلا چندتا فیلد درست کنید که تاریخ سفارش - تاریخ خرید - مبلغ و کد رهگیری رو وارد کنه و بعد بقیه اطلاعات بهش نشون داده شه !
اما اگر نمیخواید که اینکار ها رو بکنید روش دوستمون reza جان بهتره !چون اون یک کد درهم و پیچیده تری بهتون میده !
موفق باشید

rezaonline.net
سه شنبه 10 بهمن 1391, 21:57 عصر
کد رهگیری نباید عدد خام باشه ، چون طرف میاد یه بروت فورس میزنه و الباقی ...
ترکیبی از عدد و حروف باید باشه همچنین شما باید مقدار ایمیل هم از کاربر بگیرید.

یعنی از کاربر بخواید ایمیل و کدرهگیری رو وارد کنه تا اون چیزی رو که میخواید نشونش بدید .

SONITAJ
سه شنبه 10 بهمن 1391, 22:22 عصر
سلام ببخشید من متوجه صحبت شما نمیشم ممکنه یه کم بیشتر توضیح بدید ویه مثال برام بیارید که عینی ترباشه ومن راحتر درکش کنم. ممکنه لطفا آدرس سایتتون رو برام بذارید تا یه نگاهی بهش کنم.

rezaonline.net
چهارشنبه 11 بهمن 1391, 01:12 صبح
demo1.rezaworkshop.ir

plague
چهارشنبه 11 بهمن 1391, 17:18 عصر
از

uniqid();
استفاده کن برای همین کاره , خروجیش یه رشته 13 رقمی آلفانومریکه

SONITAJ
چهارشنبه 11 بهمن 1391, 18:37 عصر
ممکنه لطفا درباره این تابع یه کم بیشتر توضیح بدید وبازش کنید.

hosseinmehr
یک شنبه 19 اسفند 1397, 07:23 صبح
function codeGen(){
$words ='';
for ($i = 0; $i <= 14; $i++)
{
if(rand(0,75)>50)
while(true)
{
$no_chars=array('E','G','I','J','L','O','Q','U','V ','Y');
$rnd = rand(65, 90);
if(!in_array(chr($rnd), $no_chars))
{
$words .= chr($rnd);
break;
}
}
else {
$words .= chr(rand(49, 57));
}
}
$code=$words;
return $code;
}





اين کد يک رشته تصادفي با طول 15 کاراکتر از اعداد و حروف بزرگ که نسبت عدد به حرف آن 3 به 1 است را توليد مي کند. در اين تابع از حروف نامناسب و عدد 0 صرفنظر شده است.

نمونه کد رهگيري توليد شده:
6K56FD755846PBB
499294A9C2XA2RW