• 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
وارد نشدن اطلاعات به جدول در صورت عددی بودن مقدار وارده
#1
سلام دوستان،

با نوشتن چه کدی می تونم اول بررسی بشه که این مقداری که وارد کردم حرف هست تا عدد و در صورت عددی بودن پیغام خطا بده و در صورت حروفی بودن وارد جدول مشخص شده بشه اطلاعات.

توجه کنید که منظورم حاوی بودن اعداد نیست! منظور این هست که فقط عدد باشه یا فقط حروف

سپاس فراوان Heart
غایب
  پاسخ
تشکر شده توسط :
#2
خوب این کارو هم می تونید سمت کلاینت انجام بدین هم سمت سرور

در php از تابع ()is_int استفاده کنید:
کد پی‌اچ‌پی:
<?php
if(is_int($variable))
//do somthing
else
echo 
"Please use only numbers";
?>
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#3
مولانا جان نمی دونم یا من دارم اشتباه کار می کنم یا این کد اصلا کار نمی کنه! من در زیر کد رو میزارم خودتون به شیوه خودتون اون چیزی که میگین رو اضافه کنید تا من هم ببینم و هم تست کنم ببینم با مال من فرقی داره یا نه!

کد پی‌اچ‌پی:
if ($allow_page != "1") die("Sorry, there was an error.");
if(isset(
$_POST['word'])){
        
$word $_POST['word'];
    
mysql_query("INSERT INTO `filtering` (`Words`) VALUES ('$word')") or die(mysql_error());

غایب
  پاسخ
تشکر شده توسط :
#4
اینو تست کن ببین:
کد پی‌اچ‌پی:
mysql_query("INSERT INTO `filtering` (`Words`) VALUES (".$word.")") or die(mysql_error()); 

چه خطایی می ده؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#5
نه محمد جان خطایی نمیده اون دستور وارد کردن query هم سالمه! شما مشکل من در اولین پست رو بخونید و جوابی که خودتون دادین رو.
غایب
  پاسخ
تشکر شده توسط :
#6
ببخشید اشتباه کردم تو پاسخم

خوب برعکس اون کدی که نوشتم عمل کنید:
کد پی‌اچ‌پی:
<?php
if(!is_int($variable))
{
//درج در پایگاه داده
}
else
{
echo 
"Please use only numbers";
}
?>
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#7
مولانا جان این رو تست کن خودت:

کد پی‌اچ‌پی:
if (isset($_POST['word'])){
    if(!
is_int($word)){
        
mysql_query("INSERT INTO `filtering` (`Words`) VALUES ('$word')") or die(mysql_error());
    }


تعریف این کد معومه اما من میخوام که چک کنه اگه مقداری وارد شده بود و اگه حروف بود query اجرا بشه! الان هم حروف قبول می کنه و هم عدد!
غایب
  پاسخ
تشکر شده توسط :
#8
فقط حروف باشه یا می تونه ترکیب حرف و عدد باشه؟
این کد که الان برات می نویسم اگه فقط عدد باشه وارد نمی کنه ولی اگه ترکیب باشه وارد می کنه :

کد پی‌اچ‌پی:
    if (isset($_POST['word']))
    {
        
$word $_POST['word'];
        
$filter "[a-zA-Z]";
        if(
eregi($filter$word)) 
        {
            
$sql 'INSERT INTO `filtering` (`Words`) VALUES (\''.$word.'\');'
            
mysql_query($sql) or die(mysql_error());
            echo(
'OK');
        }
        else
        {
            echo(
'not text');
        }
    } 
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#9
اقا محمد گل دستت درد نکنه درست شد اما من ترجیح میدم مثل زیر بنویسم تا پیچیده نشه! آخه دنبال دردسر نیستم که Big Grin :

کد پی‌اچ‌پی:
if (isset($_POST['word']))
    {
        
$word $_POST['word'];
        
$filter "[a-zA-Z]";
        if(
eregi($filter$word)) 
        {
            
$sql mysql_query("INSERT INTO `filtering` (`Words`) VALUES ('$word')") or die(mysql_error());
        }
        else
        {
            echo(
'not text');
        }
    } 

میدونستم جایی میلنگه! من برای چک کردن حروف بودنش از is_int استفاده می کردم Blush

اگه امکانش هم هست در مورد تابع eregi یک توضیحی بدین. مثل: چند عبارت میگیره - کارش چی هست و با چی حتما بیاد و هرچی که خودتون می دونید
غایب
  پاسخ
تشکر شده توسط :
#10
بهتره در مورد eregi داخل یک پست دیگه سوال کنی .

ولی همین قدر بگم که برای بررسی عبارت های با قاعده بکار می رود .
یعنی شما با این تابع می تونید عبارتی با شرایط خاصی رو بررسی کنین مثل ایمیل .
  پاسخ
تشکر شده توسط : cyletech


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان