الفاصلة الآلاف تفسد القيمة المُدخلة في الإعدادات بصمت

قصة رعب قادمة.

تواصل معنا مدير مجتمع لأنهم لاحظوا أن عدد المستخدمين في منتداهم لم يكن ينمو كما اعتادوا.

بعد بعض البحث، وجدنا أن العديد من المستخدمين الذين سجلوا للتو كانوا يُحذفون لأنهم اعتُبروا غير نشطين.

اتضح أن هذا كان بسبب ضبط الإعداد clean_up_inactive_users_after_days على 1 :scream:

لذلك، نقرت على أيقونة السجل ورأيت أن الإعداد قد تم تغييره من 730 (سنتين) إلى 1,095 (ثلاث سنوات) قبل أكثر من عام.

نعم أيها الناس، عندما تدخل فاصلة (أو نقطة، كما هو شائع في البلدان غير الناطقة باللغة الإنجليزية) كفاصل لمجموعة الأرقام في إعداد موقع رقمي، فإنه سيقوم بصمت(!) بقطع كل شيء خلف الفاصل الأول. لجعل الأمور أسوأ، لن يصبح هذا مرئيًا إلا بعد تحديث صارم للصفحة.

12 إعجابًا

أتساءل عما إذا كانت أي إعدادات أخرى تستخدم قيمًا رقمية عالية تتأثر بهذه الطريقة أيضًا؟ :thinking:

6 إعجابات

حسنًا، نعم.
كل الإعدادات الرقمية متأثرة، وهناك الكثير من الأيام والدقائق وإعدادات القيم العالية العامة

imap_polling_old_emails:1000
decompressed_theme_max_file_size_mb:1000
topic_views_heat_low:1000
secure_uploads_max_email_embed_image_size_kb:1024
maximum_session_age:1440
post_edit_time_limit:1440
composer_media_optimization_image_resize_dimensions_threshold:1920
composer_media_optimization_image_resize_width_target:1920
max_bookmarks_per_user:2000
topic_views_heat_medium:2000
default_other_new_topic_duration_minutes:2880
polling_interval:3000
topic_views_heat_high:3500
max_image_size_kb:4096
max_attachment_size_kb:4096
min_topic_views_for_delete_confirm:5000
max_form_template_content_length:5000
invite_link_max_redemptions_limit:5000
sitemap_page_size:10000
max_notifications_per_user:10000
short_progress_text_threshold:10000
auto_close_topics_post_count:10000
max_drafts_per_user:10000
anonymous_account_duration_minutes:10080
default_email_digest_frequency:10080
tl3_requires_posts_read_cap:20000
anon_polling_interval:25000
max_post_length:32000
tl2_post_edit_time_limit:43200
max_export_file_size_kb:50000
max_bulk_invites:50000
background_polling_interval:60000
decompressed_backup_max_file_size_mb:100000
search_enable_recent_regular_posts_offset_size:200000
default_other_auto_track_topics_after_msecs:300000
max_draft_length:400000
composer_media_optimization_image_bytes_optimization_threshold:524288

  suggested_topics_unread_max_days_old:
  suggested_topics_max_days_old:
  pending_users_reminder_delay_minutes:
  invite_expiry_days:
  purge_unactivated_users_grace_period_days:
  anonymous_account_duration_minutes:
  ignored_users_message_gap_days:
  clean_up_inactive_users_after_days:
  clean_up_unused_staged_users_after_days:
  show_time_gap_days:
  old_post_notice_days:
  returning_users_days:
  suppress_digest_email_after_days:
  disallow_reply_by_email_after_days:
  delete_email_logs_after_days:
  reset_bounce_score_after_days:
  delete_rejected_email_after_days:
  purge_deleted_uploads_grace_period_days:
  tl2_requires_days_visited:
  tl3_requires_days_visited:
  invalidate_inactive_admin_email_after_days:
  send_old_credential_reminder_days:
  search_query_log_max_retention_days:
  cold_age_days_low:
  cold_age_days_medium:
  cold_age_days_high:
  delete_drafts_older_than_n_days:
  delete_merged_stub_topics_after_days:
  default_other_new_topic_duration_minutes:
  retain_web_hook_events_period_days:
  revoke_api_keys_unused_days:
  revoke_api_keys_maxlife_days:
  revoke_user_api_keys_unused_days:
  revoke_user_api_keys_maxlife_days:

7 إعجابات

شكراً على التقرير، @RGJ! :pray:

هذا أمر مخيف بالفعل. لقد قمنا بإصلاح هذا هنا عن طريق 1) السماح فقط بالإدخالات الرقمية في واجهة المستخدم، و 2) إزالة أي أحرف غير رقمية في الواجهة الخلفية لمزيد من الأمان.

11 إعجابًا

إعادة فتح هذا، يبدو أن الأمور تراجعت بل وساءت.

  • اذهب إلى المسؤول – إعدادات – إعداد أساسي – المواضيع المقترحة

فايرفوكس على سطح المكتب

  • أدخل 5.0 ثم احفظ (لا يوجد خطأ) وقم بالتحديث – ستجده مضبوطًا على 50
  • أدخل 5,0 ثم احفظ (لا يوجد خطأ) وقم بالتحديث – ستجده مضبوطًا على 0

سفاري على iOS

  • أدخل 5.0 ثم احفظ (لا يوجد خطأ) وقم بالتحديث – ستجده مضبوطًا على 50
  • أدخل 5,0 ثم احفظ (لا يوجد خطأ) وقم بالتحديث – ستجده مضبوطًا على 50
4 إعجابات

شكراً ريتشارد على الإبلاغ، يمكنني بالتأكيد إعادة إنتاج هذا.

إعجابَين (2)

شكراً على التقرير يا ريتشارد! أنا أيضاً قادر على تكرار ما تصفه. كل هذا “حسب التصميم” حتى اليوم، باستثناء 5,0 الذي ينتج عنه 0 في فايرفوكس وهو خطأ. هذا غريب.

يبدو أننا بحاجة إلى مراجعة هذا مرة أخرى، على الأقل لتحديث ما يراه المسؤول ليكون دقيقاً ولا يتضمن الفواصل. حالياً، يتعين عليك تحديث متصفح الويب الخاص بك بعد حفظ التغييرات لرؤيتها.

لكن أعتقد أنه يمكننا فعل المزيد هنا لمساعدة المسؤول على تجنب ارتكاب هذه الأخطاء وتجنب الارتباك بسببها. يبدو لي خطأ أنك تستطيع إدخال “364.5 يومًا” في suggested topics max days old وتحويلها إلى 3645 يومًا. ربما لا نسمح بإدخال غير الأرقام في هذه الأنواع من الحقول.

6 إعجابات

تم إصلاح هذا في FIX: Do not allow , or . in site setting integer input by martin-brennan · Pull Request #27618 · discourse/discourse · GitHub. لم يعد من الممكن وضع أي شيء سوى الأرقام في هذه الحقول. لا مزيد من فواصل , أو ..

لقد قمنا سابقًا بتنقية المدخلات لإعدادات الموقع الصحيحة
على جانب الخادم فقط، وكان ذلك مربكًا بعض الشيء عندما
يدخل المستخدمون على سبيل المثال 100.5 وينتهي بهم الأمر بـ 1005، و
لا يرون هذا منعكسًا في واجهة المستخدم.

الآن بعد أن أصبحنا نستخدم مدخلات الأرقام الأصلية لهذه الإعدادات،
يمكننا تحسين التجربة قليلاً عن طريق عدم السماح بـ . أو ,
في المدخل، لأنه يجب أن تكون أرقامًا صحيحة فقط، و
إضافة خطوة بحجم 1. يتم منع جميع الأحرف الأخرى بالفعل
في مدخل الأرقام الأصلي هذا.

6 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام. لم يعد يُسمح بالردود الجديدة.