logomaster 171 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 (ویرایش شده) سلام دوستان من در کد زیر میخوام برای فیلد تنظیم کنم که فقط اعداد قابل پذیرش باشه حالا ببینید من از دستور pattern استفاده کردم و مقدارش رو [0-9] قرار دادم . حالا درسته و فقط اعداد رو قبول میکنه اما! فقط تک اعداد رو ، یعنی یک عدد رو قبول میکنه و اگه دو یا چند عدد رو باهم وارد کنی بازهم خطا میده زیاد امنیتی نیست ، فقط بتونه مقدار عددی رو دریافت کنه کافیه این اصل کد من هست <tr> <td><?php _e('مبلغ', 'test'); ?></td> <td> <input type="text" name="payer_price" dir="ltr" class="test-input" /> <span class="description-require">*</span> <br /><span class="description-field"><?php _e('به تومان', 'test'); ?></span> </td> </tr> ویرایش شده خرداد 96 توسط logomaster لینک به ارسال
hamidwi 479 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 سلام اگر از تابع is_numeric استفاده کنید راحت ترید، اگر به پترن هم نیاز شد بگید قرار بدم. کد نمونه : <!doctype html> <html lang="en"> <body> </body> <html> <body> <?php if (isset($_POST["name"]) && is_numeric($_POST["name"])) { echo 'it is number'; } else { echo "<form method=\"post\">"; echo "number : <input type=\"text\" name=\"name\"><br>"; echo "<input type=\"submit\">"; echo "</form>"; } ?> </body> </html> </html> 1 لینک به ارسال
hamidwi 479 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 (ویرایش شده) کد استانداردتر : <!doctype html> <html lang="en"> <body></body> <html> <body> <?php if (filter_input(INPUT_POST, 'number', FILTER_VALIDATE_INT)) { echo 'it is number'; } else { ?> <form method="post"> number : <input type="text" name="number"><br> <input type="submit"> </form> <?php } ?> </body> </html> </html> ویرایش شده خرداد 96 توسط hamidwi 1 لینک به ارسال
logomaster 171 ارسال شده در خرداد 96 مالک گزارش بازنشر ارسال شده در خرداد 96 در 3 ساعت قبل، hamidwi گفته است : کد استانداردتر : <!doctype html> <html lang="en"> <body></body> <html> <body> <?php if (filter_input(INPUT_POST, 'number', FILTER_VALIDATE_INT)) { echo 'it is number'; } else { ?> <form method="post"> number : <input type="text" name="number"><br> <input type="submit"> </form> <?php } ?> </body> </html> </html> خیلی ممنون از شما دوست عزیز . ببینید ، باتوجه به اینکه تایید فیلدهای فرم من ، به جای دیگه ارسال و اعتبارسنجی میشه ، من نمیتونم حتی الامکان از php استفاده کنم ، اگه همون پترن باشه به صورت ساده که فقط اجازه تایپ غیر از حروف رو نده ممنون میشم ! البته به اولین پست من در این تاپیک هم توجه داشته باشید ، چون از پترن استفاده کردم اما نمیدونم مشکلش از کجا بوده خیلی ممنون لینک به ارسال
logomaster 171 ارسال شده در خرداد 96 مالک گزارش بازنشر ارسال شده در خرداد 96 (ویرایش شده) ممنون از شما آقای @hamidwi ، پترن رو به شکل زیر استفاده کردم و درست شد. pattern="([0-9]).{2,}" اما حالا یک مشکل دیگه وجود داره !!! فقط رقم اول که عدد باشه خطا نمیده (مابقی هر چی بود بود). ینی فقط در صورتی که رقم اول عدد نباشه خطا میده اما اگه بعد از رقم اول ، بین رقم ها یا ... حروف هم قرار بگیره خطا نمیده . برای این باید چیکار کرد؟ ویرایش شده خرداد 96 توسط logomaster لینک به ارسال
Mobin 1669 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 شما باید پترن خودتونو به یکی از 2 حالت زیر بنویسین d\ یعنی عدد برابر [0-9] هست + هم یعنی بقیه کاراکترها \d+ یا [0-9]+ 2 لینک به ارسال
logomaster 171 ارسال شده در خرداد 96 مالک گزارش بازنشر ارسال شده در خرداد 96 در ۱ ساعت قبل، lord_viper گفته است : شما باید پترن خودتونو به یکی از 2 حالت زیر بنویسین d\ یعنی عدد برابر [0-9] هست + هم یعنی بقیه کاراکترها \d+ یا [0-9]+ ممنونم درست شد . از [0-9]+ استفاده کردم. حالا میشه لطف کنید و بگید که برای محدود کردن تعداد کاراکترها باید اینو چطوری بنویسم! (ینی به همین [0-9]+ مقدار پترن باید چی اضافه کنم که بشه محدودیت کاراکترها هم براش تعریف کرد. ممنون لینک به ارسال
naghmesara 315 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 (ویرایش شده) نقل قول ممنونم درست شد . از [0-9]+ استفاده کردم. حالا میشه لطف کنید و بگید که برای محدود کردن تعداد کاراکترها باید اینو چطوری بنویسم! (ینی به همین [0-9]+ مقدار پترن باید چی اضافه کنم که بشه محدودیت کاراکترها هم براش تعریف کرد. ممنون سلام و درود این مورد بسیار ساده است زیاد واسه خودتون سختش نکنید. <input name="somename" oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" type="number" maxlength="6"> موفق باشید ویرایش شده خرداد 96 توسط naghmesara 3 لینک به ارسال
logomaster 171 ارسال شده در خرداد 96 مالک گزارش بازنشر ارسال شده در خرداد 96 (ویرایش شده) در ۱ ساعت قبل، naghmesara گفته است : سلام و درود این مورد بسیار ساده است زیاد واسه خودتون سختش نکنید. <input name="somename" oninput="javascript: if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" type="number" maxlength="6"> موفق باشید ممنون از لطفتون نمیتونستم داخل فرمم از این دستورات شرطی استفاده کنم ، اما دستور maxlength رو از کدهای شما برداشتم و همچنین از minlenght هم استفاده کردم داخل همون input های فرم خودم و محدودیت رو اعمال کردم. ویرایش شده خرداد 96 توسط logomaster 2 لینک به ارسال
Mobin 1669 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 برای طولش میتونین از 2 راه استفاده کنید از خاصیت maxlength مقدار میدین مثلا (بهتره) maxlength = "11" اگه بخواهید تو رجکس محدودش کنید به صورت زیر فقط 5 عدد \d{5} 3 عدد و بیشتر \d{3,} بین 3 تا 10 عدد \d{3,10} حداکثر 10 عدد \d{,10} 2 لینک به ارسال
HANNANStd 395 ارسال شده در خرداد 96 گزارش بازنشر ارسال شده در خرداد 96 این اعتبارسنجی ها سمت کاربر هست و راحت میشه پترن رو از سورس حذف کرد. باید علاوه بر سمت کاربر سمت سرور رو هم ولیدیت کنید. 3 لینک به ارسال
Black_Sky 6349 ارسال شده در تیر 96 گزارش بازنشر ارسال شده در تیر 96 برای اعتبارسنجی همیشه فقط یک سمت مورد فیلتر و بررسی قرار ندید ! سعی کنید هم سمت سرور و هم سمت کاربر هر 2 چک کنید ! مخصوصا سمت سرور ! دلایل چون دستکاری توی مرورگر و یا ... شدنی هست سمت کاربر هر چقدر هم پیچیده بشه اما سمت سرور اینگونه نیست ! استفاده از پترن خوبه ! بررسی با js هم خوبه اما در نهایت با php هم چک کنید که مقدادیر جز شرایط خودتون ارسال نشده باشد و از ارسال ان جلوگیری کنید 1 2 لینک به ارسال
پست های پیشنهاد شده
لطفا برای ارسال دیدگاه وارد شوید
شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید
ورود به حساب کاربری