منتخب بازارچه

اخطار براي ننوشتن نام در كامنت ها؟

nima_khaneyedoo

کاربر تازه وارد
اگه توي ام تي اجازه نظر دادن به صورت ناشناس رو تيك بزنيم حتي بدون نوشتن نام هم ميشه نظر داد..من ميخواستم بدونم يه تابع ميشه بدين كه مثه پرشين بلاگ حداقل نوشتن نام رو تو اين حالت اجباري كنه؟...يه دنيا ممنونم.
 

Mashaheer

مدیر بازنشسته
کاربر فعال
براي اينكار برو به بخش تنظيمات و اين رو درستش كن به صورت زير:
Web Configuration > Preferences > Comment Configuration > Allow anonymous comments رو اگر تيك خورده، تيك رو بردار.
 

nima_khaneyedoo

کاربر تازه وارد
ميدونم..من خودم عمدا اونو فعال كردم كه بدون وارد كردن اي ميل هم بشه كامنت داد..من يه كامنت ميخوام مثه پرشين بلاگ كه فقط اگه طرف نام رو وارد كرده بتونه نظر بده....كسي نبود؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
 

sina1808

Registered User
ببينيد اين مشكل رو حل ميكنه؟

<script language="JavaScript">
<!--
function CheckForm(formID) {
if (formID.name.value == "") { alert("Please enter your name!"); formID.name.focus(); return false; }
if (formID.email.value == "") { alert("Please enter your email address!"); formID.email.focus(); return false; }
if (formID.message.value == "") { alert("Please enter your message!"); formID.message.focus(); return false; }
return true;
}
//-->
</script>

چنانچه تو باكس ميل چيزي نوشته نشه پيغام ميده كه Please enter your email address
البته ميتوني چيزي هايي بهش اضافه يا كم كني . . .
 

Mashaheer

مدیر بازنشسته
کاربر فعال
به نقل از nima_khaneyedoo :
ميدونم..من خودم عمدا اونو فعال كردم كه بدون وارد كردن اي ميل هم بشه كامنت داد..من يه كامنت ميخوام مثه پرشين بلاگ كه فقط اگه طرف نام رو وارد كرده بتونه نظر بده....كسي نبود؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
به نظر شما فايده اون كار چيه؟ به نظر من بايد اين اختيار رو به نويسنده كامنت داد كه اگر دوست داشت مشخصاتش رو بنويسه در غير اينصورت هركسي كه دوست نداشته باشه مي توني آدرسهاي به اشتباه هم بنويسند....
به هر صورت اون مي توني از اون كدي كه سيناي عزيز نوشته استفاده كني...
 

nima_khaneyedoo

کاربر تازه وارد
در جواب شما اين كه اگر كسي نه ميل داشت و نه آدرس وب و ميخواست نظر بده تو ام تي چي بايد بكنه ها ؟ يه كي كمك كنه :
اينم مفصلش :
ببين توضيح کليش اينه:
اين تابع زيري تابعيه که کامنت شما رو تو پرشين بلاگ چک ميکنه که نام و متن نظرت رو وارد کرده باشي(من

قسمت هاي مربوط به ماکزيمم طول پيغام و درست بودن اي ميل رو برداشتم):
اين توي
head
قرار ميگيره
function comment_submit(el) {
if (el.commentName.value=='') {
alert ('!نام خالى است');
el.commentName.focus();
return false;
}

if (el.commentEmail.value!='' && !validate_email(el.commentEmail.value)) {
alert ('!پست الکترونيکى مجاز نمى باشد');
el.commentEmail.focus();
el.commentEmail.select();
return false;
}

if (el.commentBody.value=='') {
alert ('!متن پيام خالي است');
el.commentBody.focus();
return false;
}

if (el.commentBody.value.length > 1024) {
alert ('!حداكثر متن پيام 1024 حرف ميباشد');
el.commentBody.focus();
return false;
}

el.sendcom.disabled=true;

return true;
}
</script>

اين تابع موقعي که کاربر روي دکمه فرستادن کليک ميکنه نام و اينارو اينجوري چک ميکنه
يعني تگ فرم پرشين بلاگ اين شکليه
:
<form method="post" action="/ucomments.asp?...." onsubmit="return

comments_submit(this)">

من اين تابع رو براي تنظيم کردم که با توجه به اين که فيلد هاي ذخيره شده تو ام تي فرق ميکنه وقتي که به صورت

ناشناس ميشه نظر داد حتما از وارد شدن نام و متن کامنت مطمئن بشه..اونم با يه پيغام خطا
اين توي
head
قرار ميگيره
:
<script language="JavaScript">
function comments_submit(el) {
if (el.author.value=='') {
alert ('وارد کردن نام ضروري است');
el.author.focus();
return false;
}

if (el.text.value=='') {
alert ('چيزي ننوشتي که');
el.text.focus();
return false;
}

el.post.disabled=true;

return true;
}
</script>
اما تنها مشکل همينجاست که موقعي که کاربر فرم رو پر کرده و کليد فرستادن رو ميزنه از چه جوري بايد اين تابع
مقادير نام و متن رو چک کنه چون تگ فرم ام تي از اول اين شکليه
:
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>"

name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">
يعني من اونجا که مي خوام مثه پرشين بلاگ تابع رو چک کنم يعني توي
on submit
از قبل يه کوکي چک ميشه...اگه هم اينو مثلا اين شکلي اضافه کنيم
onsubmit="if (this.bakecookie[0].checked) rememberMe(this);return

comments_submit(this)">
اون موقه کار ميکنه اما ديگه نظر داده شده نمي آد و ثبت نميشه...
حالا کسي بازم نيست که کمک کنه که من اين تابع رو چه جوري چک کنم؟
آقا احسان شما هستين؟
 

nima_khaneyedoo

کاربر تازه وارد
به نقل از ehsan :
من بالاخره نفهميدم. تو ميخواي طرف بي دردسر كامنت بذاره يا نه!؟ خب اگه آره راهش همينه: http://forum.persiantools.com/showpost.php?p=60076&postcount=2
احسان جان من اك تي رو تنظيم كردم كه بشه به صورت ناشناس كامنت داد....اما مي خوام طرف اگه اسمش رو يادش رفت بنويسه يه alert بده كه نماتونو مثلا بنويسين و پستم نشه تا نامش رو بده....چون در حالت ناشناس فقط با نوشتن متن ميشه پست كرد...به زبان ساده من فقط ميخوام نوشتن نام رو اجباري كنم..دقيقا مثه پرشين بلاگ..همين ..متوجه شدين....منتظر كمكم ها..مخلص همه ...آقا كمك كنيد.
 

ehsan

Administrator
به نقل از nima_khaneyedoo :
احسان جان من اك تي رو تنظيم كردم كه بشه به صورت ناشناس كامنت داد....اما مي خوام طرف اگه اسمش رو يادش رفت بنويسه يه alert بده كه نماتونو مثلا بنويسين و پستم نشه تا نامش رو بده....چون در حالت ناشناس فقط با نوشتن متن ميشه پست كرد...به زبان ساده من فقط ميخوام نوشتن نام رو اجباري كنم..دقيقا مثه پرشين بلاگ..همين ..متوجه شدين....منتظر كمكم ها..مخلص همه ...آقا كمك كنيد.
آها فهميدم. اينجوري كن:

اين رو بذار توي head:
HTML:
<script language="JavaScript">
// check name field
function checkName()
{
	// if empty, pop up alert
	if (document.forms[0].name.value == "")
	{
		alert("Please enter a valid name");
		return false;
	}
	else
	{
		return true;
	}
}

// function to check all form data
function checkForm()
{
	if (checkName())
	{
		return true;
	}
	else
	{
		return false;
	}
}

</script>
بعدش این رو هم بذار اونجا که فرم شروع میشه. یعنی تگ فرم اینجوری بشه:

HTML:
<form action="submit.php" method="post" onSubmit="return checkForm()">
دقت کن که فقط یه "()onSubmit="return checkForm به تگ فرم اضافه شده و ممکنه بقیه قسمتهاش چیزهای دیگه ای باشن.

موفق باشی :)
 

nima_khaneyedoo

کاربر تازه وارد
احسان عزيز منونم كه كمك ميكني اما مشكل دقيقا همين جاست يعني ميدوني توي تگ فرم كامنت هاي ام تي از قبل يه تابع ديگه چك ميشه اين:
onsubmit="if (this.bakecookie[0].checked) rememberMe(this)​
خوب وقتي هم به جاش همون تابه شما رو ميذاري پيغام خطا رو ميده و پست ميشه اما ديگه كامنت ها ور نمي آره...يعني كامنت تازه رو ثبت نميكنه..من خيلي ور رفتم باهاش نميدونم .....ببخشيد من اينقده مزاحم ميشم اما به نظر شما حالا چي كار بايد كرد...ممنون همگي علي الخصوص احسان عزيز سينا خان و مشاهير جان..بازم كمك!
 

black_jack_of_black_city

Registered User
من هر وقت بخوام جايي كامنت بذارم ايميلم رو ميذارم[email protected]

سايتم رو هم ميذارم http://www.microsoft.com

چرا مته به خشخاش بذاريم؟
 

nima_khaneyedoo

کاربر تازه وارد
به نقل از black_jack_of_black_city :
من هر وقت بخوام جايي كامنت بذارم ايميلم رو ميذارم[email protected]

سايتم رو هم ميذارم http://www.microsoft.com

چرا مته به خشخاش بذاريم؟
آقا يه سوال بود كه بي جواب موند همينطوري كسي نتونست به ما كمك كنه توي اين مسئله ..ممنون در هر حال.
 

deznights

کاربر تازه وارد
میگم کسی که نه ایمیل داره نه وب سایت و نه وبلاگ و نه اینکه بدونه باید یه امیل الکی بنویسه چرا بیاد وبگردی کنه
for Fun
 

Shahed

کاربر قدیمی پرشین تولز
اونوخ چجوري ميشه كاري كرد كه موقع ارسال كامنت تو ام تي دكمه ارسال ديزيبل بشه؟

مث پرشين بلاگ !
 

Shahed

کاربر قدیمی پرشین تولز
به نقل از mrmj :
فكر كنم همه چي داره به هم گره مي خوره ... برو يه نفر رو پيدا كن كه جاوا بلد باشه كه بتونه كمكت كنه
يدونه مازولاق بود قديما ! نميدونم كجا غيبش زده !
 
بالا