بهترین الگوریتم validation

mona.joon

Member
سلام
فرض کنید 10 تا فیلد داریم که از اینها قراره 4 تاش حتما با مقدار ارسال بشه و یکی از این 4 تا ایمیله که قراره با یه الگو درست بودن ایمیل و چک کنیم و یه مرحله دیگه هم چک کردن عدم وجود فیلد تکراری تو دیتابیسه و قبل از ورود اطلاعات به دیتابیس هم اطلاعات توسط چند تابع پردازش میشه که جلوی sql injection گرفته بشه و چک کردن فیلد هائی که قراره دوبار وارد بشن مثل پسورد و تکرار پسورد
من این مراحل و با تعداد زیادی if تعریف کردم که خیلی پیچیده شده
شما راه بهتری برای انجام اینها دارید؟
البته نمیخوام از جاوا اسکریپت استفاده کنم
 
آخرین ویرایش:

o_real_love

Well-Known Member
به نظر من بهترین راه جاوا اسکریپت هست که صفحه رو نخواد دوباره لود کنی
همونجا بهش پیغام بدی که ایمیل ها درسته یا نه
واسه sql injection هم من همیشه از دو تا تابع mysql_real_escape_string و htmlspecialchars استفاده میکنم
و تا حالا مشکلی نداشتم با اینا
 

mona.joon

Member
به نظر من بهترین راه جاوا اسکریپت هست که صفحه رو نخواد دوباره لود کنی
همونجا بهش پیغام بدی که ایمیل ها درسته یا نه
واسه sql injection هم من همیشه از دو تا تابع mysql_real_escape_string و htmlspecialchars استفاده میکنم
و تا حالا مشکلی نداشتم با اینا
واقعا مرسی از این همه توجهت
خوب شد گفتم نمیخوام از جاوا اسکریپت استفاده کنم
واسه sql injection هم من اسم تابع نخواستم ولی شما لطف کردی
برای انجام این 4 مرحله یه الگوریتم یا یه راهی میخوام که ساده تر از if های تو در تو بشه انجامش داد:shock:
 

mirzajavad

New Member
استفاده از شرط مشكلي ايجا نميكنه
من از اين روش استفاده ميكنم بدم هم نيست خيلي هم خوب جواد داده البته تي كد من امنيت رعايت نشد
فقط چك كردم كه هيچ فيلدي خالي نباشه
ايميل هم چك كردم در ضمن من از فايل زبان استفاده ميكنم

PHP:
$error="";
if(isset($_POST['submit'])){        
if(strlen(trim($fname))==0) $error.=$lng['fname'];
if(strlen(trim($lname))==0) $error.=$lng['lname'];
if(strlen(trim($username))==0) $error.=$lng['username'];
$exist=mysql_query("SELECT `username`,`email` FROM `users`");
while($result=mysql_fetch_array($exist)){
if($username==$result['username']) $error.=$lng['user_exist'];} 
if(strlen(trim($email))==0) $error.=$lng['email'];
elseif(!eregi('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zAZ09\-\.]+$',$email)) $error.=$lng['email_valid'];
elseif($email==$result['email']) $error.=$lng['email_exist']; 
if(strlen(trim($password))==0) $error.=$lng['password'];
if(strlen(trim($repassword))==0) $error.=$lng['repassword'];
else if($password!=$repassword) $error.=$lng['password_match'];
if(strlen(trim($contact))==0) $error.=$lng['contact'];
if(strlen(trim($city))==0) $error.=$lng['city'];
 

Masoud1365

مدیر انجمن
بهترین روش اینه که یه کلاس بنویسی و از کلاس استفاده کنی !
در کل یکی یکی چک کنی اگر اشکال داشت اونو با پیغام توی یه آرایه ذخیره کنی اگر در آخر آرایه خالی بود معلومه که اشکالی توی فرمتون نبوده در غیر این صورت اشکال رو با پیغام مورد نظر چاپش میکنی !
حالا تو این کلاس خواستی از جاوا اسکریپت استفاده کن ! نخواستی بدون جاوا ادامه بدید و ...
موفق باشید
 

Army.Hidden

Active Member
به نظر من بهترین راه جاوا اسکریپت هست که صفحه رو نخواد دوباره لود کنی
همونجا بهش پیغام بدی که ایمیل ها درسته یا نه
من این رو پیشنهاد نمیکنم . من به چشم OFFLINE HACKING نگاش میکنم . میشه دورش زد.
برای سرعت هم میشه با AJAX کار کرد.بهتره :wink:
 

mona.joon

Member
من این رو پیشنهاد نمیکنم . من به چشم OFFLINE HACKING نگاش میکنم . میشه دورش زد.
برای سرعت هم میشه با AJAX کار کرد.بهتره :wink:
به نظر خودمم هم جاوا اسکریپت نمیتونه کامل باشه ولی از هر 2 تا روش استفاده کردم اول با جاوا اسکریپت چک میکنم بعد با php .
 

جدیدترین ارسال ها

بالا