PDA

View Full Version : نمایش پیغام به جای نمایش اخطار



majoran
چهارشنبه 24 بهمن 1386, 14:05 عصر
سلام من تو پی اپ پی چه طور می تونم مشکلات رو به کاربر به صورت فارسی اعلام کنم
مثال: کد:
Duplicate entry '230' for key 2تو قسمت بدست گیری خطاها هم گشتم نبود .

majoran
چهارشنبه 24 بهمن 1386, 23:05 عصر
دوستان لطف کنند اگه در این رابطه چیزی می دانند به من کمک کنند

moohssenn
پنج شنبه 25 بهمن 1386, 09:27 صبح
اول شما باید از نمایش خطاها جلوگیری کنید :


error_reporting(0);

بعد با استفاده از تابع mysql_error() میتونید این کارو بکنید.



if (mysql_error()) echo 'نمایش متن مورد نظر ;

majoran
پنج شنبه 25 بهمن 1386, 10:24 صبح
<?php
error_reporting(0);
if (mysql_error()) echo 'نمایش متن مورد نظر ';

?>
کار نکرد مهندس یه مثال میزنی
بعد جناب مهندس اگه بخواهیم در مورد مشکلات مختلف ارر های مختلف داشت چیکار باید به کنیم

hamid58
پنج شنبه 25 بهمن 1386, 12:44 عصر
کار نکرد مهندس یه مثال میزنی
بعد جناب مهندس اگه بخواهیم در مورد مشکلات مختلف ارر های مختلف داشت چیکار باید به کنیم

من معمولا این کار رو میکنم :




<?php
$arrErrorMsg = array();

if (!true)
$arrErrorMsg['myerr1'] = "پیغام خطای مربوطه 1";


if (!true)
$arrErrorMsg['myerr2'] = "پیغام خطای مربوطه 2";

?>



یعنی درست کردن آرایه از خطاها و سپس نشون دادن اونها در یک جای صفحه به صورت زیر :




<?php
if (count($arrErrorMsg) != 0)
{

foreach ($arrErrorMsg as $strMsg)
print "-".$strMsg."\r\n";
}
?>




هر جا هم که خواستید میتونید دستورات لازم رو با اطمینان از اینکه خطایی وجود نداره به این صورت اجرا کنید :





<?php

if (count($arrErrorMsg) == 0)
{
... دستوراتی که باید انجام شوند
}

?>



این مثال آبکی رو زدم تا یه روش رو گفته باشم ... به نظرم با کمی تغییر در این مثال میتونید کد خودتون رو بنویسید ...

amirhosein
پنج شنبه 25 بهمن 1386, 12:57 عصر
باید از error handling استفاده کنید.

majoran
پنج شنبه 25 بهمن 1386, 13:02 عصر
آقا جواب نداد من می خوام جای
این کد
Column 'usr_username' cannot be nullبنویسم
کلمه عبور نباید خالی باشد

moohssenn
پنج شنبه 25 بهمن 1386, 13:08 عصر
احتمالا در جای مناسبی استفاده نکردید . اگه لازمه محلی که استفاده کردی رو کدشو بزار.
این مثال هر دو موردی که خواستی رو شامل میشه . در ضمن بهتره که لیست error ها رو با متنی که میخوای نشون بده در آرایه بریزی و ارزش استفاده کنی .


<?php

error_reporting(0);

$link = mysql_connect('localhost', 'root', '12113');

mysql_select_db('aaa');

if (mysql_error())
{
switch (mysql_errno())
{
case 1049 :
echo "اشکال در انتخاب بانک اطلاعاتی";
break;
case 1045:
echo "اشکال در کانکشن";
break;
default: echo mysql_errno();
}
}
else
{
echo "اشکالی وجود ندارد";
}

?>

majoran
پنج شنبه 25 بهمن 1386, 13:12 عصر
خوب این فقط چک میکنه که ارتباط با مای اسکیول درست و برقرا است یا نه
من می خوام اگه دوفیلد تکراری توشط مای اسکیول گزارش شد یه اختار فارسی بده نه اینکه بیادو اینو نشون بده
Duplicate entry 'MOHSEN' for key 2

moohssenn
پنج شنبه 25 بهمن 1386, 17:02 عصر
اینو برای مثال نوشتم نه اینکه همینو استفاده کنی .
همون خط error هم یک شماره داره اونو بدست بیار و بعد اضافه کن

majoran
پنج شنبه 25 بهمن 1386, 17:21 عصر
شماره ارور ها رو از کجا بدست بیارم

moohssenn
پنج شنبه 25 بهمن 1386, 19:19 عصر
mysql_errno()

توی مثالی هم که براتون گذاشته بودم موجود بود

majoran
جمعه 26 بهمن 1386, 11:10 صبح
نتونستم یا بهتر بگم اصلا متوجه نشدم اگه لطف کنین و واضح تر بگید به من مخصوصا قسمت فیلد تکراری رو

امید امرایی
جمعه 26 بهمن 1386, 19:33 عصر
دوست عزیز شما باید با تابع
mysql_errno() ابتدا خطاهای مختلف رو تست کنید تا بدونبد هر عدد نمایانگر چه خطاییه و بعد لیستی از آرایه های فارسی رو ایجاد کنید .

جهت متوجه شدن خطاها :


if(mysql_error())
echo mysql_errno();



ولی در کل این کار چندان مطلوب و کابردی نیست و بیخود حجم اسکریپت رو زیاد می کنه

majoran
جمعه 26 بهمن 1386, 22:10 عصر
خوب دوست عزیز کاربر اگه با مشکلات متفاوتی برخورد کنه مثلا تکراری بودن داده یکتا اون وقت باید یه جوری جلوشو گرفت
از کمکت هم ممنون

امید امرایی
چهارشنبه 08 اسفند 1386, 22:27 عصر
اگه منظورتون تکراری بودن دیتا در دیتابیس باشه که کلا فکر نمی کنم نیازی باشه کاربر از این خطاها اطلاع داشته باشه .
این گونه خطاها یا باید در یک Interface نباشن و یا از طریق خود Interface سایت نمایش داده بشن که در هر حال نیازی به فارسی کردن خطاهای دیتابیس نیست .