استفاده از mysql بخش پایانی
S h a b g a r d . O R G
.::Security Group::.

*Nix *Nix *Nix *Nix *Nix *Nix *Nix مبتدی مبتدی مبتدی

    Search for in  

  خانه

  *Nix

      مبتدی

      متوسط

      تخصصی

  Windows

      مبتدی

      متوسط

      تخصصی

  network

  Programming

      PHP

  Security

  Hacking

  Program

      MS-Word

      Graphic

  Cisco

  Hardware



استفاده از mysql بخش پایانی
Posted by هوتن القاسپور on Jan 16, 2005, 22:22

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

خب در مرحله اول من باید جدول خود را طراحی کنم.جدول من باید حاوی نام, نام خانوادگی,email, شغل و یک فیلد دیگر باشد که مشخص کند آیا کاربر مایل است اخبار جدید سایت برای او ارسال شود یا نه.اما آیا این ها کافی است؟من همیشه یک فیلد به نام ID به جدول خود اضافه می کنم.این فیلد که یک فیلد عددی است را معمولا به عنوان کلید اصلی جدول تعریف می کنم.در ادامه فواید این فیلد اضافه را خواهید دید.

خب من قبل از هر چیزی باید به پایگاه داده ام وصل شوم پس می نویسم:


<?php

$conn
=mysql_connect("localhost\",\"root\",\"pass\") or

          die(\"Could not connect;\".mysql_error());

?>



اگر در این مرحله مشکلی پیش بیاید بوسیله تابع die() از اجرای باقی برنامه جلوگیری کرده و پیغام مقتضی را روی صفحه نمایش نشان می دهم نقش تابع mysql_error() این است که پیغام خطای mysql را روی صفحه نمایش دهد و من بوسیله عملگر . از این تایع برای کامل کردن پیغام خطای اتصال استفاده کرده ام.

اکنون من یک بانک اطلا عاتی می سازم تا درون آن جدول یا جداول مورد نیازم را ایجاد کنم.


<?php

   $conn
= mysql_pconnect("localhost\", \"root\", \"pass\")

       or die(\"Could not connect: \" . mysql_error());



   if (mysql_create_db(\"my_db\")) {

       print (\"Database created successfully\n\");

   } else {

       printf (\"Error creating database: %s\n\", mysql_error());

   }

?>



*توجه کنید میزبان شما معمولا نرم افزاری مثل phpmyadmin را در اختیار شما میگذارد تا مدیریت خود را روی mysql اعمال کنید.

*فراموش نکنید من فقط یک بار از mysql_create_db() استفاده می کنم تا یک بانک اطلاعاتی بسازم و بعد از آن چون کارهایم را روی آن انجام می دهم دیگر احتیاجی به استفاده از این تابع نیست!

اکنون من بانک اطلاعاتی را که ساختم به عنوان بانک اطلاعاتی جاری مشخص می کنم تا باقی اعملا روی آن انجام شود.


<?php

   $conn
= mysql_pconnect("localhost\", \"root\", \"pass\")

       or die(\"Could not connect: \" . mysql_error());

    $db=mysql_select_db(\"my_db\") or die(\"Could not select      database:\".mysql_error());

?>



خب برنامه من اکنون آماده است تا فرامینی به زبان sql را بگیرد و برای پردازش به mysql بدهد.برای

ارسال فرامین به mysql برای پردازش از mysql_query() استفاده می شود به مثال توجه کنید.


<?php

   $conn
= mysql_pconnect("localhost\", \"root\", \"triadpass\")

       or die(\"Could not connect: \" . mysql_error());

    $db=mysql_select_db(\"my_db\") or die(\"Could not select database:\".mysql_error());

     $query='CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT ,'

        . ' `name` VARCHAR( 15 ) NOT NULL ,'

        . ' `family` VARCHAR( 20 ) NOT NULL ,'

        . ' `email` VARCHAR( 20 ) NOT NULL ,'

        . ' `job` VARCHAR( 20 ) ,'

        . ' `newspost` TINYINT NOT NULL ,'

        . ' PRIMARY KEY ( `id` ) );'

        . ' ';



     if(mysql_query($query)){

     print \"Table successfuly created\";}

     else print \"Error in create table\";

?>



من تا به حال یک بانک اطلاعاتی به همراه یک جدول درون آن را ساخته ام.توجه کنید شما ابزار های زیادی را در اینترنت می توانید پیدا کنید که این کار را بسیا ساده تر و مطمئن تر برای شما انجام دهند مثل phpmyadmin که خود بوسیله php نوشته شده و در آدرس www.phpmyadmin.net میتوانید آخرین نسخه آن را دانلود واستفاده کنید.در اکثر مواقع میزبان شما به عنوان یکی از خذماتش یک برنامه مدیریت بانک اطلاعاتی را برای شما تدارک دیده است.

از این به بعد بحث ما کمی کاربردی تر خواهد شد.

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


<html>

<form name=\"form1\" method=\"post\" action=\"<?=$_SERVER['PHP_SELF']?>\">

  <p>Name:

    <input type=\"text\" name=\"name\">

    Family:

    <input type=\"text\" name=\"family\">

    Email:

    <input type=\"text\" name=\"email\">

    Job:

    <input type=\"text\" name=\"job\">



  </p>

  <p>Do you want to recived the site news via email? <font color=\"#006699\">Yes</font>

    <input type=\"checkbox\" name=\"newspost\" value=\"checkbox\">

  </p>

  <p>

    <center><input type=\"submit\" name=\"Submit\" value=\"Submit\"></center>

  </p>

</form>

</html>


توجه کنید نام فیلد های شما بسیار مهم است زیرا این نام به عنوان متغییر به برنامه پردازش فرم ارسال می شود.اگر به خط دوم توجه کید به این عبارت بر خواهید خورد



این عبارت از یک ارایه به نام $_SERVER[] استفاده می کند.این آرایه شامل اطلاعاتی از قبیل هدرهاومسیرهاو....است که می توانید در مرجع کامل php موجود در php.net با عنوان

Predefined Variables این آرایه وبسیاری دیگر را پیدا کنید.به هر حال من از عنصر PHP_SELF در اینجا استفاده کردم که وظیفه آن باز گرداندن مسیرکد جاری است.




اکنون به کد کامل این فایل توجه کنید:


<?php

$name
=$_POST['name'];

$family=$_POST['family'];

$email=$_POST['email'];

$job=$_POST['job'];

$newspost=$_POST['newspost'];

if(!empty(
$newspost)){

$newspost=1;

}

if(isset(
$name) && empty($name)==false && isset($family) && empty($family)==false&&

isset(
$email) && empty($email)==false && isset($job) && empty($job)==false){

   
$conn = mysql_pconnect("localhost\", \"root\", \"triadpass\")

       or die(\"Could not connect: \" . mysql_error());

    $db=mysql_select_db(\"my_db\") or die(\"Could not select database:\".mysql_error());

    $query=\"INSERT INTO users VALUES('','$name','$family','$email','$job','$newspost')\";

    $result=mysql_query($query) or die(\"Could not do query!\");

    }

    else

    print \"Complete <b>ALL</b>for adding your self\";

?>

<html>

<form name=\"form1\" method=\"post\" action=\"<?=$_SERVER['PHP_SELF']?>\">

  <p>Name:

    <input type=\"text\" name=\"name\">

    Family:

    <input type=\"text\" name=\"family\">

    Email:

    <input type=\"text\" name=\"email\">

    Job:

    <input type=\"text\" name=\"job\">



  </p>

  <p>Do you want to recived the site news via email? <font color=\"#006699\">Yes</font>

    <input type=\"checkbox\" name=\"newspost\" value=\"checkbox\">

  </p>

  <p>

    <center><input type=\"submit\" name=\"Submit\" value=\"Submit\"></center>

  </p>

</form>

</html>



توجه کنید که من قبل از هر چیزی از $_POST[]برای قرار دادم متغییر های ارسال شده توسط فرم در متغییر های قابل استفاده در php است

(در حقیقت امذ متغییر های ارسال شده توسط فرم را درون یک آرایه می گذارد تا php از آن استفاده کند)در نسخه های قدیمی این امر اجباری نبود اما در نسخه های جدید این امر اجباری شده که بیشترین دلیل آن به خاطر مسائل امنیتی است.

*از نسخه4.2.0 این امر اجباری شده است که به جای register_globald از آرایه های $HTTP_*_VARS[] استفاده شود.با این حال شما با دست کاری در فایل php.ini می توانید این موضوع را تغییر دهید که این کار بدلیل مسائل انیتی اکیدا توصیه نمی شود.مقاله ای در این زمینه را در آدرس /studyinscarlet.txtwww.securereality.com.au

مشاهده کنید.

اما در اینجا مسئله ای که پیش می آید این است که نوشتن $HTTP_POST_VARS[]کمی سخت است بنابراین برای این آرایه ها اسامی مستعاری در نظر گرفته شد مثل$_POST[] برای$HTTP_POST_VARS[] یا...

خب من در ادامه بوسیله توابع empty() و isset() از پر بودن و موجود بودن متغییرهایم اطمینان حاصل کرده ام.اما اگر توجه کرده باشید من به دو روش از تابع empty() استفاده کرده ام.


1-empty($varname) == false

2-!empty($varname)


هر دو این روش ها درست است و من فقط برای یاد دادن به شما از هر دوی آن ها استفاده کرده ام.

تابع empty() یک تابع Boolean است یعنی مقدار بازگشتی آن یا true است یا false

من در روش اول گفته ام مقدار بازگشتی تابع empty() برابر false باشد که به معنای خالی بودن فیلد است

روش دوم هم همین است تنها تفاوت آن این است که من از عملگر نفی (!) استفاده کرده ام.

تابع isset() هم چک می کند که آیا متغیری به این نام تعریف شده است یا نه.

پس از اینکه من از پر بودن فیلد ها و وجود متغییر ها اطمینان حاصل کردم چک می کنم که آیا کاربر می خواهم اخبار سایت برای او ارسال شود یا نه.من برای نه مقدار 0 و برای بله مقدار 1 را در نظر گرفته ام که در ادامه با نحوی استفاده از آن ها آشنا خواهیم شد.

حالا که من از مرحله تست کردن متغییر ها بدون خطا گذشته ام وارد مرحله کار با بانک اطلا عاتی میشوم .

من یک اتصال برقرار کرده ام.بانک اطلا عاتی خود را انتخاب کرده ام و دستورات sql را که می خواهم اجرا شود در متغییری به نام $queryریخته ام.سپس بوسیله تابع mysql_query() آن ها را به mysql داده ام تا اجرا کند.

شما اکنون می توانید از یک فرم برای ذخیره اطلاعات استفاده کنید.من توابع مزتبط با این درس را برای شما مینویسم.اما بدون تمرین و به مشکل برخورد کردن چیزی یاد نخواهید گرفت.در صورتی که سوال یا مشکلی داشتید بوسیله houtanal at NOSPAM yahoo dot com آن را مطرح کنید.

در درس آینده بازیابی اطلاعات از چدرل و نمایش آنها به همراه جستجو در رکورد ها را به شما یاد خواهم داد.

تابع mysql_create_db()

این تابع یک بانک اطلاعاتی در پایگاه داده شما ایجاد می کند.

mysql_create_db()
Create a MySQL database (PHP 3, PHP 4 )
bool mysql_create_db ( string database_name [, resource link_identifier ] )
Example:
<?php
   $link
= mysql_pconnect("localhost\", \"mysql_user\", \"mysql_password\")
       or die(\"Could not connect: \" . mysql_error());
   if (mysql_create_db(\"my_db\")) {
       print (\"Database created successfully\n\");
   } else {
       printf (\"Error creating database: %s\n\", mysql_error());
   }
?>



تابع isset()

این تابع از تعریف شدن و وجود متغییر اطمینان حاصل می کند.


isset()
Determine whether a variable is set (PHP 3, PHP 4 )
bool isset ( mixed var [, mixed var [, ...]] )
example:
<?php
$var
= '';
// This will evaluate to &true; so the text will be printed.
if (isset($var)) {
   print
"This var is set set so I will print.\";
}
// In the next examples we'll use var_dump to output
// the return value of isset().
$a = \"test\";
$b = \"anothertest\";
var_dump( isset($a) );      // TRUE
var_dump( isset ($a, $b) ); // TRUE
unset ($a);
var_dump( isset ($a) );     // FALSE
var_dump( isset ($a, $b) ); // FALSE
$foo = NULL;
var_dump( isset ($foo) );   // FALSE
?>



تابع empty()

بررسی می کند آیا مقدار متغیر خالی است یا نه در صورت پر بودن مقدار true و در غیر این صورت false را بر می گرداند.


empty()
Determine whether a variable is empty (PHP 3, PHP 4 )
bool empty ( mixed var )

example:
<?php
$var
= 0;
// Evaluates to true because $var is empty
if (empty($var)) {
   echo
'$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is set
if (isset($var)) {
   echo
'$var is set even though it is empty';
}
?>



توابع مرتبط بیشتر برای مطالعه:


Mysql_drop_db(),mysql_change_user(),mysql_db_name(),mysql_db_query()
unset(),define(),array_key_exist(),count(),strlen()



هوتن القاسپور
houtanal at NOSPAM yahoo dot com




---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
Latest Headlines

 *Nix
 نصب سيستم عامل لينوكس وفارسي نويسي در محيط
kavoshgar.blogsky.com
 نصب سيستم عامل لینوکس مندریک 9.2 Mandrake linux
 راهنماي كاربران جديد لينوكس
 راهنماي كاربران جديد لينوكس
 تعاريف پايه و نكات كاربردي در لينوكس و يونيكس
 تنظیماتIP و شبکه در گنو / لینوکس
 تعیین سطوح دسترسی کاربران در لینوکس
 تاریخچه لینوکس
 ظاهر پوسته فرمان
 استفاده از پوسته فرمان در لینوکس
 Windows
 بازگرداندن ویندوز خراب شده به حالت قبل از بروز مشکل
 چگونه میتوان در ويندوز 98 و ME به درايو NTFS دسترسي داشت
 با افزودن پسورد دوم براي ورود به ویندوز XP امنیت خود را تا حد زیادی افزایش دهید
 برنامه های تحت داس و قدیمی را چگونه در XP اجرا کنیم
 نصب ويندوز 98 يا ME در محیط ويندوز NT يا XP فقط در یک دقیقه و نیم
 مقدمات و نيازهاي شما براي يادگيري TCP/IP
 امكانات شبكه اي ويندوز
 SSL چيست ؟
 آموزش HyperTerminal
 آموزش كرك فايل هاي SAM
 network
 كارت شبكه يا LAN Card
 شبكه سرى يا BNC
 شبكه Hub
 تنظيم و كنترل برنامه Network Neighborhood
 استفاده از شبكه و عمل Sharing
 نصب و تنظيم برنامه Wingate جهت اتصال شبكه به سرور و اينترنت
 AAA (Authentication, Authorization and Accounting)
 مقدمه ای بر شبکه خصوصی مجازی (VPN)
 ip و port
  RFC چيست؟
 Programming
 زبان برنامه نویسی D قسمت اول
 زبان برنامه سازی D تحت لینوکس قسمت دوم
 زبان برنامه‌نويسی D بخش سوم
 زبان برنامه نویسی D بخش چهارم
 زبان برنامه نویسی D بخش پنجم
 زبان برنامه‌نویسی D بخش ششم
 نرم‌افزار آزاد یا باز‌متن چیست؟
 مقدمه ای بر برنامه نويسی شی گراء در دات نت
 آموزش رتينا
 ايجاد فايل XML با استفاده از يک بانک اطلاعاتی
 Security
 بررسی نحوه عملکرد فایروال Firewallیا ديواره آتش
 مقايسه سرورهای لينوکس و ويندوز
 چه فایلهائی میتوانند برای کاربران مخاطره آمیز باشند !
 امنيت برنامه های وب ( بخش اول )
 امنيت برنامه های وب ( بخش دوم )
 امنيت برنامه های وب ( بخش سوم )
 امنيت برنامه های وب ( بخش چهارم )
 امنيت برنامه های وب ( بخش پنچم )
 امنيت نامه های الکترونيکی ( بخش اول )
 مفاهيم اوليه پروتکل TCP/IP ( بخش اول )
 Hacking
 چگونه هکر شویم؟ بخش اول
 چگونه هکر شویم؟ بخش دوم
 هنر هشتم : كرك كردن
 مقدمات قبل از شروع يادگيری هک
 Port Scanning
 Port Scanning
  کاربرد نرم‌افزار nmap
 IP Scanning
 پورت ۷۹
 پورت ۸۰ چيست؟
 Program
  آموزشهاي افكتهاي فتوشاپ
 Shocking Text
 مبانی آشنايی با Word
  آموزش ساخت متن یخی
 نصب تم در موزیلا فایرفاکس
 کلید های میانبر در فایرفاکس
 Cisco
 آشنايي با مدارک سيسکو
 Cisco Systems
 Hardware
 آشنايي با پورت USB
 نحوه انتخاب يك كارت صدا