سورس جستجو در یه دیتابیس . . .

سلام
من یه سورس میخوام مثل این مرکزهای ADSL که وقتی پیش شماره تافن خودشون رو وارد میکنن بهش میگه که شمارشون فعال هست یا نه ، همچین نوع برنامه ای میخوام
------------------------------------------
که شماره های تلفن رو تو یه Database وارد کنیم مثلا 4428" وقتی تو یه Textbox شماره 4428 رو وارد کردیم اگر بود بگه فعال اگز نبود بگه غیر فعال
----------------------------------------------------------------------------

برنامه تو همیم مایه های دیتا بیس و سرچ تو دیتا بیس باشه بسه ، بقیشو خودم اوکی میکنم




....
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
چون ازم خواستی جواب میدم:

ماهي دست کسي نديد (خوبيت نداره)? ماهيگيري ياد بديد ! (که بسي ثواب داره) :)
(احتمالاً از فرمایشات آقا علی آی ایکس)

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

موفق باشی
 
دمت گرم بابا
همه ی بچه های اهوازی اینطوری جواب میدن ؟
تابلو هست بچه ... مرام و معرفت ، = 0
 

NabiKAZ

Well-Known Member
این کد رو همین الان برای شما نوشتم، فقط برای جوابتون روی چت که گفتید:
"be t..... ! boro javabeto dadam bache shahrestani"
رو داده باشم.


کد پی اچ پی:
PHP:
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>search tel</title>
</head>

<body>

<?php
if ($_POST)
{
    $db_user = 'root'; //نام کاربری بانک اطلاعاتی
    $db_pass = ''; //پسورد بانک اطلاعاتی
    $db_name = 'db_tel'; //نام بانک اطلاعاتی
    $db_table = 'tel'; //نام جدول بانک اطلاعاتی
    
    $conn = mysql_connect('localhost', $db_user, $db_pass) or die("Connection failed: Please try later.");
    $db_flag = mysql_select_db ($db_name, $conn) or die("Could not select database:".mysql_error());
    
    $result = mysql_query("SELECT * FROM `tel` WHERE `number`='".$_POST['number']."'");
    if (mysql_num_rows($result)) {
        $row = mysql_fetch_assoc($result);
        echo '<p>'. $row['status'] . '</p>';
    }else{
        echo '<p>Not found.</p>';
    }
}
else 
{
?>

<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
    <p>tel: <input type="text" name="number" size="20"></p>
    <p><input type="submit" value="search"></p>
</form>

<?php
}
?>
</body>
</html>

بانک اطلاعاتی مورد نیاز:
کد:
CREATE TABLE `tel` (
`number` VARCHAR( 255 ) NOT NULL ,
`status` VARCHAR( 255 ) NOT NULL
);

INSERT INTO `tel` ( `number` , `status` )
VALUES (
'123', 'yes'
), (
'456', 'no'
);


فقط حواستون باشه چون همه مثل من برای اینکه شاید از حرفتون خجالت بکشید اینطوری جواب سوالتون رو نمیدن ... و ممکنه درست مثل خودتون جوابتون رو بدن !

موفق باشید
 

amin_zomorod

New Member
سلام و خسته نباشید
من روی لوکال هاست این برنامه کوچیک را تست کردم ولی به نتیجه نرسیدم
html را که باز می کنم اینجوری هست:
'. $row['status'] . '

'; }else{ echo '

Not found.
'; } } else { ?>

tel:

به هر حال من یک برنامه می خوام بنوسم که شماره داوطلب را بگیره و اطلاعات مربوط به اون داوطلب را نشون بده (که این اطلاعات حدودن 5، 6 رکرد دیگه مر بوط به داوطلب هست)
اطلاعاتم در برای برنامه نویسی نه کمه نه زیاد
لطفا تو این برنامه به من کمک کنید
این جدولم
--
-- Table structure for table `nat`
--

CREATE TABLE `nat` (
`shomare` double default NULL,
`fname` varchar(255) default NULL,
`lname` varchar(255) default NULL,
`father` varchar(255) default NULL,
`ostan` varchar(255) default NULL,
`taraz1` double default NULL,
`taraz2` double default NULL,
`tarazkol` double default NULL,
`last` double default NULL,
`natijeh` varchar(255) default NULL,
`reshteh` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `nat`
--

INSERT INTO `nat` (`shomare`, `fname`, `lname`, `father`, `ostan`, `taraz1`, `taraz2`, `tarazkol`, `last`, `natijeh`, `reshteh`) VALUES (4955205, 'عبداله‌', 'شاهدوستی', NULL, 'سيستان‌ وبلوچستان‌', NULL, NULL, 0, NULL, 'مردود', NULL),
(2612766, 'سيداسماعيل‌', 'مشعشعي‌', 'سيدحمزه‌', 'شهرتهران‌‌', 4229, 5335, 5730, 5989, 'قبول‌', 'زيست‌ شناسي‌ و زمين‌'),
(2013019, 'صادق‌', 'جودكار', 'محمد', 'شهرتهران‌', 5702, 4767, 4641, 8497, 'مردود', 'شيمي‌'),
(1111497, 'علي‌ اكبر', 'نورعلي', 'علی‌', 'مازندران‌', 5360, 5141, 5104, 1457, 'قبول', 'مديريت‌');

با تشکر
 

amin_zomorod

New Member
سلام کسی نیست کمک کنه
من تو خروجی یعنی چاپ اطلاعات از db مشکل دارم
از html پست میشه به php
این هم کد php که دسته پا شکسته نوشتم

<?php
$q = $_POST['query'];
$q = trim($q);
$db = mysql_connect('localhost','root','');
if(!$db)
{
echo "Cannot connect to MySQL";
exit;
}
if (!mysql_select_db('name_db'))
{
echo "cannot open bank" ;
exit;
}

$result = mysql_query("select * from nat where body like \"%$q%\" order by id desc");

if (mysql_num_rows($result))
{
$row = mysql_fetch_assoc($result);
echo '<p>'. $row['lname'] . '</p>';
}
else
{
echo '<p>Not found.</p>';
}
?>

این هم نتایج بعد اجرا

'. $row['lname'] . '

'; } else { echo '

Not found.
'; } ?>
 
آخرین ویرایش:

SME

Banned
ببخشید.
نمیخوام بحث رو منحرف کنم.
واقعا از نبی تشکر میکنم.
از این که اوون حرف رو از یک آدم مثلا متمدن! شنیدی واقعا شرمندم.
باور نمیکنی وقتی این نوشتت رو خوندم کلی خجالت کشیدم.با اینکه خودم اصلا این حرف رو نمیزنم و من هم کاره ای نبودم.
نبی جان دستت درد نکنه. نه چون کد رو نوشتی، فقط به خاطر اینکه آدمی
 

amin_zomorod

New Member
نمی خواهی منحرف کنی !! خوب الان منحرف کردی دیگه

کسی نیست جواب سوال ما را بده
 

amin_zomorod

New Member
باز هم سلام روی سرور گذاشتم این ارور را بهم میده
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
 

NabiKAZ

Well-Known Member
باز خدا رو شکر که شما یه حرکتی کردید.

اشکال کدهاتون این بود که در کوئری که نوشتید از فیلد body استفاده کردید، در حالی که همچین فیلدی در جدولتون اصلاً وجود نداره!

من کد php خودتون رو بدین شکل تصحیح کردم:
PHP:
<html lang="fa" dir="rtl">

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>New Page 1</title>
</head>

<body>

<?php
$q = $_POST['query'];
$q = trim($q);
if ($q)
{
    $db = mysql_connect('localhost','root','');
    if(!$db)
    {
        echo "Cannot connect to MySQL";
        exit;
    }
    if (!mysql_select_db('name_db'))
    {
        echo "cannot open bank" ;
        exit;
    }
    
    $result = mysql_query("select * from nat where shomare='$q'");
    
    if (mysql_num_rows($result))
    {
        $row = mysql_fetch_assoc($result);
        echo '<p>'. $row['lname'] . '</p>';
    }
    else
    {
        echo '<p>Not found.</p>';
    }
}
?>

<hr>
<form method="POST" action="">
    <p>شماره: <input type="text" name="query" size="20"><input type="submit" value="Submit" name="B1"></p>
</form>

</body>
</html>


ضمناً متوجه نشدم با کدی که در صفحه قبل گذاشتم چه مشکلی دارید؟!!

پ.ن: در پست هاتون، کدها رو درون تگ کد قرار بدید تا بهتر دیده بشن.


موفق باشید
نبی
 

amin_zomorod

New Member
خیلی ممنون دوست عزیز
بی دقتی بود متشکر
در مورد مسائل امنیتی چطور کمی متونی راهنمایی کنی
از جاوا اسکریپت برای کنترل ورودی استفاده کردم
در مورد امنیت بیشتر چطور
 
علاوه بر استفاده از جاوا اسکریپت برای کنترل ورودی از پی اچ پی هم استفاده کن ! :wink:
 

amin_zomorod

New Member
از چه کد هایی باید استفاده کنم در php
فرم من فقط مقدار عددی باید بگیره
در مورد کد php چیزی نمیدونم
 

SME

Banned
کدی برای دیکشنری دارید؟

که بشه مثلا انتخاب کرد لغات از انگلیسی به فارسی ترجمه بشه و یا فارسی به انگلیسی.
و از دیتابیس معنیش تو صفحه درج بشه...!
 

NabiKAZ

Well-Known Member
امنیت یه مقوله کلی است و یکی دو تا مورد نیست که در اینجا بشه در موردش صحبت کرد.

در این باره پیشنهاد میکنم به تاپیک "برنامه نويسي امن" مراجعه کنید.

در مورد فیلتر کردن ورودی هم همونطور که دوست عزیز گفتند بهتره هم در سمت کاربر و هم در سمت سرور کنترل صورت بگیره.
برای کنترل توسط php میتونید از تابع is_numeric استفاده کنید. البته این تابع اعداد اعشاری هم صحیح قبول میکنه، اطلاعات بیشتر رو میتونید در راهنمای سایت php مطالعه کنید.
شاید استفاده از توابع منظم و مثال زیر بهتر باشه:
PHP:
if (preg_match ("/^([0-9]+)$/", $input_number)) {
}

موفق باشید
نبی
 

جدیدترین ارسال ها

بالا