پرش به


تصویر

حذف فیلد ایمیل در قسمت ثبت نام


  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
7 پاسخ برای این موضوع

#1 20temp

20temp

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 85 ارسال

ارسالی 1396/04/14 ساعت 11:37

سلام و خسته نباشید

راستش با توجه به اینکه خیلی از افراد در فضای مجازی ایمیل ندارند و بیشتر سایت ها با شماره موبایل کار ثبت نام انجام میدن

 

من هم میخوام فیلد ایمیل رو در قسمت ثبت نام به شماره موبایل تبدیل کنم همین

 

فقط چک شود که 11 رقم وارد بشه و سایر مواردی که مثلا 11111111111 یا هر رقم دیگری که شماره موبایل نیست وارد نشه.

 

چطوری باید این تغییر رو در فایل register.php ایجاد کنم ؟؟؟؟


  • 0

#2 20temp

20temp

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 85 ارسال

ارسالی 1396/04/14 ساعت 12:53

تصمیم گرفتم فیلد ایمیل رو حذف کنم و تو فایل register.php اون دستور مربوط به بررسی ایمیل رو کامنت کردم و حل شد. و کلا فیلد ثبت نام رو هم در قالب حذف کردم

 

الان میخوام نام کاربری رو تبدیل به شماره موبایل کنم تو فایل ثبت نام دستور اعتبار سنجی شو اینطوری نوشتم :

    if(preg_match("/^09[0-9]{9}$/", $name ==false))  $stop .= $lang['reg_err_4'];0

اما تابعه CheckLogin در فایل tpl باید کجا ویرایش کنم ؟ در واقع این تابع کدام فایل رو فراخوانی می کنه ؟

 

مشکل دومی که برخوردم اینه که بعد از زدن دکمه ثبت نام اگه شماره موبایل غلط وارد شده باشه پیغام میده که اصلاح بشه

اما اگه درست وارد کنی پیغام میده این نام کاربری تکراری است !! در صورتی که تکراری نیست ؟

دوستان خواهشا راهنمایی کنید کارم لنگه


  • 0

#3 20temp

20temp

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 85 ارسال

ارسالی 1396/04/14 ساعت 13:03

با عرض معذرت دستور زیر رو هم کامنت کردم درست شد :D

		/*if( function_exists('mb_strtolower') ) {
			$name = trim(mb_strtolower($name, $config['charset']));
		} else {
			$name = trim(strtolower( $name ));
		}*/

فقط الان مشکلم تابع CheckLogin در فایل registration.tpl است که از کجا باید اونو ویرایش کنم ؟؟


  • 0

#4 20temp

20temp

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 85 ارسال

ارسالی 1396/04/14 ساعت 13:28

ببخشید حوضله نداشتم صبر کنم یکی بیاد جواب بده خودم تو انجمن اصلی دیتالایف (روسی) پیداش کردم

 

engine/ajax/registration.php

 

شاید این سوال و جواب های خودم به درد کسی خورد (اسپم نیست :D )


  • 0

#5 AQUILA

AQUILA

    مدیر

  • مدیر
  • 199 ارسال
  • محل سکونت: اینترنت
  • مهارت ها: HTML, CSS

ارسالی 1396/04/16 ساعت 03:17

سلام

بنظرم شاید راههای ساده تری هم باشه البته کمی سلیقه ای هست

مثلا عضویت رو به جای عضویت با نام کاربری به عضویت با شماره موبایل تبدیل کنید!

کافیه در tpl مربوطه عنوان نام کاربری به - شماره موبایل - تغییر داده بشه و جهت روند بهتر کار یه خط توضیح کوتاه - شماره موبایل خود را وارد کنید- اضافه بشه

برای چک کردن هم فکر میکنم به جای تغییر فایلهای سیستم در سمت قالب و با جیکوئری کار راحتتر و اصولی تر انجام بشه

من به علت مشغله زیاد کمتر به اینجا سر میزنم و کمی دیر پاسخ خودم رو درج کردم، شرمنده

به هر حال امیدوارم مشکل رفع شده باشه

موفق باشید


  • 0

قالب دیتالایف ـ پارس دیتالایف
parsdle.ir


#6 20temp

20temp

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 85 ارسال

ارسالی 1396/04/16 ساعت 06:18

سلام ممنون از راهنمایی شما اتفاقا قبل اینکه نظر شما رو بخونم همین کار رو کردم شاید برای دوستان هم بدرد بخوره که آموزشش رو قرار میدم  :

 

1- همان طور که اشاره شد فایل login.tpl و registeration.tpl را باز کنید و "نام کاربری"  را به  "شماره موبایل"  تغییر بدید.

 

2- به مسیر language/farsi رفته و فایل website.lng را ویرایش کنید و در اون فایل هرچی "نام کاربری"  پیدا کردید به  "شماره موبایل"  تغییر بدین.

    فقط یک نکته آرایه reg_err_3 را پیدا کنید و متن خطا رو به  "شماره موبایل 11 رقمی وارد کنید"  تغییر دهید. چون میخوایم درست بودن شماره موبایل در هنگام ثبت نام چک شود.

 

3- فایل ثبت نام engine/modules/register.php را باز کرده و خط زیر را پیدا کنید :

if (strpos( strtolower ($name) , '.php' ) !== false) $stop .= $lang['reg_err_4'];

    زیر این خط این دستور را وارد کنید تا شماره موبایل بصورت صحیح وارد شود (مثلا 09 باید حتما در ابتدای شماره قرار بگیرد.)

if(preg_match("/^09[0-9]{9}$/", $name)) {}else{ $stop .= $lang['reg_err_4'];}

4- دستور زیر را پیدا کرده و اعدادی که طول رشته را در دستور شرطی زیر تعیین می کند به 11 تغییر بدین (شماره موبایل باید 11 رقم باشه)

	if( dle_strlen( $name, $config['charset'] ) > 11 OR dle_strlen(trim($name), $config['charset']) < 11) $stop .= $lang['reg_err_3'];

5- در همین فایل خط زیر کد های زیر را پیدا کرده و حذف کنید (البته من کامنت کردم که اجرا نشه)

		if( function_exists('mb_strtolower') ) {
			$name = trim(mb_strtolower($name, $config['charset']));
		} else {
			$name = trim(strtolower( $name ));
		}

6- دو خط پایین تر کد زیر را پیدا کنید :

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[:<:]]{$search_name}[[:>:]]' OR name = '$name'" );

7- به جای کد بالا این کد را وارد کنید :

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE name = '$name'" );

خب تمام شد این فایل رو ببندید فقط تابع CheckLogin رو که بصورت آژاکس نام کاربری چک میکنه باید ویرایش کنیم  برای همین مراحل زیر را دنبال کنید :

 

7- فایل engine/ajax/registration.php را باز کنید و در اون کد زیر را پیدا کنید : (ویرایش ها دقیقا مثل فایل قبلیه)

if( stripos(urlencode ($name), "%AD") !== false ) {

قبل از کد بالا دستور زیر را وارد کنید :

if(preg_match("/^09[0-9]{9}$/", $name)) {}else{ $stop .= $lang['reg_err_4'];}

دستور زیر را پیدا کرده و آن را حذف یا کامنت کنید :

if( function_exists('mb_strtolower') ) {
			$name = trim(mb_strtolower($name, $config['charset']));
		} else {
			$name = trim(strtolower( $name ));
		}

خط زیر پیدا کرده و طول رشته ای که در دستور شرط چک میشه به 11 تغییر بدین (چون شماره موبایل 11 رقمه )

	if (dle_strlen($name, $config['charset']) > 11 OR dle_strlen(trim($name), $config['charset']) < 11)

الان دیگه نام کاربری به شماره موبایل تبدیل شد و شماره موبایل توسط سیستم چک می شود و باید 11 رقم بوده و با 09 شروع شود.

 

ادمین عزیز اگه بدرد میخوره تا در قسمت هک ها قرار بدم :)


  • 0

#7 Eh3an

Eh3an

    مدیر بخش ماژول ها

  • مدیر
  • 1,742 ارسال
  • محل سکونت: ایران - اردبیل
  • مهارت ها: HTML, CSS, js, SQL, PHP, SEO

ارسالی 1396/04/16 ساعت 16:42

سلام ممنون از راهنمایی شما اتفاقا قبل اینکه نظر شما رو بخونم همین کار رو کردم شاید برای دوستان هم بدرد بخوره که آموزشش رو قرار میدم  :

 

1- همان طور که اشاره شد فایل login.tpl و registeration.tpl را باز کنید و "نام کاربری"  را به  "شماره موبایل"  تغییر بدید.

 

2- به مسیر language/farsi رفته و فایل website.lng را ویرایش کنید و در اون فایل هرچی "نام کاربری"  پیدا کردید به  "شماره موبایل"  تغییر بدین.

    فقط یک نکته آرایه reg_err_3 را پیدا کنید و متن خطا رو به  "شماره موبایل 11 رقمی وارد کنید"  تغییر دهید. چون میخوایم درست بودن شماره موبایل در هنگام ثبت نام چک شود.

 

3- فایل ثبت نام engine/modules/register.php را باز کرده و خط زیر را پیدا کنید :

if (strpos( strtolower ($name) , '.php' ) !== false) $stop .= $lang['reg_err_4'];

    زیر این خط این دستور را وارد کنید تا شماره موبایل بصورت صحیح وارد شود (مثلا 09 باید حتما در ابتدای شماره قرار بگیرد.)

if(preg_match("/^09[0-9]{9}$/", $name)) {}else{ $stop .= $lang['reg_err_4'];}

4- دستور زیر را پیدا کرده و اعدادی که طول رشته را در دستور شرطی زیر تعیین می کند به 11 تغییر بدین (شماره موبایل باید 11 رقم باشه)

	if( dle_strlen( $name, $config['charset'] ) > 11 OR dle_strlen(trim($name), $config['charset']) < 11) $stop .= $lang['reg_err_3'];

5- در همین فایل خط زیر کد های زیر را پیدا کرده و حذف کنید (البته من کامنت کردم که اجرا نشه)

		if( function_exists('mb_strtolower') ) {
			$name = trim(mb_strtolower($name, $config['charset']));
		} else {
			$name = trim(strtolower( $name ));
		}

6- دو خط پایین تر کد زیر را پیدا کنید :

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE email = '$email' OR LOWER(name) REGEXP '[[:<:]]{$search_name}[[:>:]]' OR name = '$name'" );

7- به جای کد بالا این کد را وارد کنید :

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . USERPREFIX . "_users WHERE name = '$name'" );

خب تمام شد این فایل رو ببندید فقط تابع CheckLogin رو که بصورت آژاکس نام کاربری چک میکنه باید ویرایش کنیم  برای همین مراحل زیر را دنبال کنید :

 

7- فایل engine/ajax/registration.php را باز کنید و در اون کد زیر را پیدا کنید : (ویرایش ها دقیقا مثل فایل قبلیه)

if( stripos(urlencode ($name), "%AD") !== false ) {

قبل از کد بالا دستور زیر را وارد کنید :

if(preg_match("/^09[0-9]{9}$/", $name)) {}else{ $stop .= $lang['reg_err_4'];}

دستور زیر را پیدا کرده و آن را حذف یا کامنت کنید :

if( function_exists('mb_strtolower') ) {
			$name = trim(mb_strtolower($name, $config['charset']));
		} else {
			$name = trim(strtolower( $name ));
		}

خط زیر پیدا کرده و طول رشته ای که در دستور شرط چک میشه به 11 تغییر بدین (چون شماره موبایل 11 رقمه )

	if (dle_strlen($name, $config['charset']) > 11 OR dle_strlen(trim($name), $config['charset']) < 11)

الان دیگه نام کاربری به شماره موبایل تبدیل شد و شماره موبایل توسط سیستم چک می شود و باید 11 رقم بوده و با 09 شروع شود.

 

ادمین عزیز اگه بدرد میخوره تا در قسمت هک ها قرار بدم :)

سلام

ممنون از آموزشتون

حالا اومدیم و کاربری پسورد خودش رو فراموش کرد. بازگردانی رو میخواید چطوری انجام بدید؟ یا اصلا شماره موبایل 09123456789 رو وارد کرد؟! چطوری میخواین تایید کنین که این فرد از شماره موبایل صحیح استفاده کرده؟


  • 0

#8 20temp

20temp

    عضو سایت

  • عضو سایت
  • ستارهستاره
  • 85 ارسال

ارسالی 1396/04/22 ساعت 07:12

من ایمیل رو حذف نکردم !    نام کاربری رو به شماره موبایل تغییر دادم . بازیابی رمز از طریق ایمیل انجام میشه

میشه یک وب سرویس هم بعد از وارد کردن شماره موبایل در قسمت فراموشی رمز گذاشت که رمز رو پیامک کنه.


  • 0


0 کاربر در حال خواندن این موضوع است

0 کاربر، 0 مهمان و 0 عضو مخفی