RightClick

امروز 28 اسفند 1388 5:46

همه زمانها UTC + 3:30 ساعت هستند




ارسال مبحث جديد پاسخ به مبحث [ 23 پست ] برو به صفحه 1, 2  بعدي
نويسندهپيغام
 موضوع پست: آموزش php (ساخت خبر نامه قسمت چهار)
پستارسال شده در: 6 دي 1385 19:19 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 29 تير 1384 20:03
پست ها : 991
محل سکونت: شيراز
دريافتي: 14 تشكر
رسيده: 32 تشكر
سلام دوستان،
از اين که اين همه نوشتن مطلب به طول انجاميد از همتون معذرت مي خوام :oops: ...

خوب امروز ميريم سراغ قسمت مديريت (ثبت نامه ها...)
خوب فايل admin.php رو با هم مي سازيم...
توي اين صفحه لينک هاي مختلفي به قسمت هاي مختلف مديريت ميگذاريم:
خوب چون اين صفحه صفحه اي هست که کاربر بايد حتما Login کرده باشه تا بتونه اون رو ببينه پس اول از همه اعتبار سنجي کاربر رو انجام ميديم. براي اين کار ابتدا تابع session_start رو صدا ميزنيم، سپس با يه شرط بررسي ميکنيم که کاربر Login کرده يا نه. اگر نه که کاربر رو به صفحه login.html هدايت ميکنيم و اگر Login کرده که کاري بهش نداريم...

کد:
<?
   
   session_start();
   
   $ClientString = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'];

   if( !isset( $_SESSION['UserName']) || $_SESSION['ClientStr'] != md5( $ClientString))
   {
   
      header( "location: login.html" );
      exit();
   
   }
?>

<a href="InsertLetter.php">Insert New Letter</a>


اون آخر هم که مي بينيد يه لينک به يه صفحه ديگه گذاشته شده که توي اون صفحه نامه هايي رو که قراره ارسال کنيم رو تو ديتابيس ثبت ميکنيم.

خوب بريم سراغ صفحه InsertLetter.php و ببينيم که چطور اخبار رو ثبت مي کنيم.
چون توي اين صفحه هم نياز هست که کاربر معتبر باشه پس همون اعتبار سنجي بالا رو براي اين هم تکرار ميکنيم...
کد:
   session_start();

   $ClientString = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'];

   if( !isset( $_SESSION['UserName']) || $_SESSION['ClientStr'] != md5( $ClientString))
   {
   
      header( "location: login.html" );
      exit();
   
   }


خوب حالا يه روش جديد ياد ميگيريم و اون اينه که اگه بخواييم توي يه صفحه فرمي داشته باشيم که هر وقت دلمون خواست باشه و هر وقت خواستيم اون رو نشون نديم و فرممون به همين صفحه جاري ارسال بشه ...

خوب اول چک ميکنيم تا ببينيم که کاربر فرم رو ارسال کرده يا نه که اگه چيزي ارسال نشده فرم رو نشون بديم:
کد:
if( !isset( $_POST[ 'Title' ]))
{
?>
   <form method="POST">
   <p>Letter Title:
   <input type="text" name="Title" >
   <p>
   Letter Body: <textarea name="Body"></textarea>
   <p>
   <input type="submit" name="BtnSubmit" value="Insert">
   </form>
<?
}//End of If(isset)


توي چند خط بالا چند تا نکته هست که بايد بگم: اول اين که من توي شرط چرا در تابع isset اسم دکمه را ننوشتم و اسم يکي از EditBox ها رو نوشتم... دليلش اينه که وقتي که فرمي به سمت سرور ارسال ميشه بعضي از چيزهاي اون set نميشه (توي آرايه POST ريخته نمي شه...) مثلا وقتي دکمه submit رو کليک نکنيم يعني با کليد Enter وقتي که توي يکي از EditBox ها هستيم فرم رو ارسال کنيم اون دکمه Set نميشه همچنين در مورد CheckBox ها هم همين طور هست. اگه check نخورده باشند ارسال نميشن در مورد بقيه اجزاي فرم هم اگه disabled باشند باز هم ارسال نميشن.

يه نکته ديگه که توي تگ فرم مشاهده ميشه اينه که من هيچ Action ي براي فرم خودم مشخص نکردم وقتي اين کار رو ميکنم خود صفحه جاري به عنوان action فرم در نظر گرفته ميشه ... اگه method هم ننويسم get در نظر ميگيره...

خوب حالا بريم سراغ بقيه کد ها...
توي else مربوط به همين if ي که بالا نوشتيم کد مربوط به insert رو مينويسيم...
اولين کاري که ميکنيم اينه که چيزهايي که از فرم براي ما ارسال شده رو توي چند تا متغير ميريزيم :
کد:
   $Title = $_POST[ 'Title' ];
   $Body = $_POST[ 'Body' ];
   $Today = date("Ymd");


حالا به ديتا بيس متصل مي شيم:
کد:
   //Connecting to db...
   include('../config.php');
   connect();


يه Query براي Insert مي نويسيم و اون رو اجرا مي کنيم:
کد:
   $Sql = "INSERT INTO `letters`
         ( `title`, `sent`, `date`, `show`, `body`)
         VALUES ( '$Title', '0', '$Today', '0', '$Body')";
         
   $Result = mysql_query($Sql) or die(mysql_error() . "<br>SQL: " . $Sql);


حالا يه نکته جديد:
کد:
   if( mysql_affected_rows())
   {
      
      print("The Letter Inserted Sucsessfully!");
   
   } else {
   
      print("Error: The Letter Inserting Stopped!");
   }


بله تابع mysql_affected_rows رو معرفي ميکنم که براي SQL هايي که مربوط به تغييرات در اطلاعات ميشن تعداد رکورد هايي رو که تغيير کرده رو بر ميگردونه مثلا وقتي که insert، Update يا Delete که انجام ميديم ميتونه خيلي کمکمون کنه ... که يه نمونش رو بالا ميبينيد.
کد کامل صفحه insert رو زير براتون گذاشتم:
کد:
<?
   session_start();

   $ClientString = $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'];

   if( !isset( $_SESSION['UserName']) || $_SESSION['ClientStr'] != md5( $ClientString))
   {
   
      header( "location: login.html" );
      exit();
   
   }

if( !isset( $_POST[ 'Title' ]))
{
?>
   <form method="POST">
   <p>Letter Title:
   <input type="text" name="Title" >
   <p>
   Letter Body: <textarea name="Body"></textarea>
   <p>
   <input type="submit" name="BtnSubmit" value="Insert">
   </form>
<?
}//End of If(isset)
else{

   //Insert The Letter...

   $Title = $_POST[ 'Title' ];
   $Body = $_POST[ 'Body' ];
   $Today = date("Ymd");
   
   //Connecting to db...
   include('../config.php');
   connect();

   $Sql = "INSERT INTO `letters`
         ( `title`, `sent`, `date`, `show`, `body`)
         VALUES ( '$Title', '0', '$Today', '0', '$Body')";
         
   $Result = mysql_query($Sql) or die(mysql_error() . "<br>SQL: " . $Sql);
   
   if( mysql_affected_rows())
   {
      
      print("The Letter Inserted Sucsessfully!");
   
   } else {
   
      print("Error: The Letter Inserting Stopped!");
   }

}//End of Else If...

?>


در جلسات بعد در مورد ارسال ايميل دسته جمعي بحث ميکنيم و اين که کاربر چطور بتونه خودش ايميلش رو از ليست ما حذف کنه.

موفق و سربلند باشيد. :wink:

_________________
به جان زنده دلان، سعدیا، ملک وجود --- نیرزد آن که دلی را ز خود بیازاری


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 6 دي 1385 20:26 
آفلاين
اگه نباشه جاش خاليه
اگه نباشه جاش خاليه

تاريخ عضويت: 16 تير 1385 21:26
پست ها : 116
دريافتي: 0 تشكر
رسيده: 0 تشكر
ممنون آقا مجتبي جان من يك سوال واسم پيش اومده :roll:

كه اين خبر نامه قسمت اول دوم سوم چهارم همش يك پروژه است ؟

يا هر كدوم يك پروژه كامل است آيا اين قسمت ها جمعا چهار نمونه خبرنامه هستند يا

همشون يك پروژه هستند ؟


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 7 دي 1385 9:58 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 29 تير 1384 20:03
پست ها : 991
محل سکونت: شيراز
دريافتي: 14 تشكر
رسيده: 32 تشكر
سلام،
اينا همش يه پروژه هست که توي قسمت صفر توضيح دادم که چي به چيه ...
و براي مقاصد آموزشي اون رو به چند قسمت تقسيم کردم...

_________________
به جان زنده دلان، سعدیا، ملک وجود --- نیرزد آن که دلی را ز خود بیازاری


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 7 دي 1385 11:44 
آفلاين
تازه وارد
تازه وارد

تاريخ عضويت: 25 آبان 1385 19:28
پست ها : 1
دريافتي: 0 تشكر
رسيده: 0 تشكر
به نام خدا
با سلام و وقت بخير

دست شما درد نكنه آقا مجتبي


بالا
 مشخصات  
 
 موضوع پست: تشكر
پستارسال شده در: 7 دي 1385 12:40 
آفلاين
تازه وارد
تازه وارد

تاريخ عضويت: 2 ارديبهشت 1385 14:53
پست ها : 3
دريافتي: 0 تشكر
رسيده: 0 تشكر
باز هم مثل هميشه عالي بود تشكر :kuss:


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 7 دي 1385 13:14 
آفلاين
داره خودمونی میشه
داره خودمونی میشه
نماد کاربر

تاريخ عضويت: 31 مرداد 1385 13:26
پست ها : 44
دريافتي: 0 تشكر
رسيده: 3 تشكر
سلام مجتبي جوون ...
خسته نباشي ... خيلي عالي بود ... :kuss:
ولي چرا به من سر نميزني ؟؟؟ :x حالتو ميگيرم ... :(
شوخي كردم
موفق باشي ...

_________________
تا پرسپوليس هست زندگي بايد كرد ...
به وب سايت قاسم پرسپوليسي سر بزنيد ...
http://wWw.FcPersepolis.Ir


بالا
 مشخصات  
 
 موضوع پست: به مناسبت تشكر از آقا مجتبياي شير
پستارسال شده در: 9 دي 1385 11:14 
آفلاين
داره خودمونی میشه
داره خودمونی میشه
نماد کاربر

تاريخ عضويت: 3 دي 1385 20:49
پست ها : 27
محل سکونت: ري باستان
دريافتي: 0 تشكر
رسيده: 0 تشكر
با تشكر از زحمات شما(آقا مجتبي) و صبر و حوصله اي كه براي نوشتن اين مطالب آموزشي داريد.
انشالله كه خدا سايه شما را بر سر اين دانشجويان انجمن هميشه حفظ كند و روز به روز مطالب آموزشي شما و البته همكاري ديگر اعضاء انجمن افزون گردد و اين انجمن و سايت به انجمني پر بار و مهم و مرجع در زبان فارسي بدل گردد.


شعر زير را هم از كتاب حافظ به اين مناسبت كه آقا مجتبي شيرازي است آورده ام :
:o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o :o



خوشا شيراز و وضع بي مثالش
خداوندا نگهدار از زوالش
زركن آباد ما صد ركنش الله
كه عمر خضر مي بخشد زلالش
ميان جعفر آباد مصلي
عبير آميز مي آيد شمالش
به شيراز آي و فيض روح قدسي
بجوي از مردم صاحب كمالش
صبا زان لولي شنگول سر مست
چه داري آگهي چونست حالش
مكن از خواب بيدارم خدا را
كه دارم خلوتي خوش با خيالش


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 11 دي 1385 13:02 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 6 تير 1385 8:11
پست ها : 769
محل سکونت: اصفهان
دريافتي: 0 تشكر
رسيده: 4 تشكر
آقا مجتبي دستت درد نكنه.
بازم مقالات مثل هميشه خوب و عالي :D

_________________
چيزي رو كه دوست داري بدست بيار ... وگرنه مجبوري چيزي رو كه بدست مياري دوست داشته باشي
Chonoo.Com


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 12 دي 1385 9:29 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 29 تير 1384 20:03
پست ها : 991
محل سکونت: شيراز
دريافتي: 14 تشكر
رسيده: 32 تشكر
سلام،
عزيزان از لطف همتون بسيار ممنونم ...
از شعر بسيار زيبايي که شما نوشتيد هم خيلي ممنونم
ان شاء ا... همتون موفق و سربلند باشيد. :kuss:

_________________
به جان زنده دلان، سعدیا، ملک وجود --- نیرزد آن که دلی را ز خود بیازاری


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 18 مرداد 1386 10:37 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 4 اسفند 1385 4:22
پست ها : 51
دريافتي: 0 تشكر
رسيده: 0 تشكر
سلام چجوري ميشه نام کاربر هم به ديتابيس ارسال کرد منظورم اينه که بدون استفاده از فرم لاگين بتونيم کاربري که در حال ارسال است رو بشناسيم


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 18 مرداد 1386 11:41 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 29 تير 1384 20:03
پست ها : 991
محل سکونت: شيراز
دريافتي: 14 تشكر
رسيده: 32 تشكر
سلام،
اگه منظورت از ارسال، ثبت نام و ايميل با همه که بايد يه Edit ديگه توي فرم HTML مون بذاريم که کاربر توي اون نام خودش رو وارد کنه و بعد يه فيلد هم به Table مون اضاف مي کنيم براي نام کاربر، و بعد همش رو توش Insert مي کنيم.

موفق باشيد.

_________________
به جان زنده دلان، سعدیا، ملک وجود --- نیرزد آن که دلی را ز خود بیازاری


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 18 مرداد 1386 13:46 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 4 اسفند 1385 4:22
پست ها : 51
دريافتي: 0 تشكر
رسيده: 0 تشكر
نه منظورم اينه که کاربري کا لاگين کرده مثلا علي رو بشناسيم منظورم اينه که بشه
اصلا اين جوري بگم
http://www.forum.rightclick.ir/profile. ... ditprofile
چطوري مي فهمه که من Seyyed ali هستم منظورم اينه
مي خوام بدونم از چي استفاده مي کنه کوکي؟ اي پي؟ session؟ يا چيز ديگه اي


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 19 مرداد 1386 17:44 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 6 تير 1385 8:11
پست ها : 769
محل سکونت: اصفهان
دريافتي: 0 تشكر
رسيده: 4 تشكر
با استفاده از Sessionها كه روي DataBase ذخيره كرده :wink:

_________________
چيزي رو كه دوست داري بدست بيار ... وگرنه مجبوري چيزي رو كه بدست مياري دوست داشته باشي
Chonoo.Com


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 19 مرداد 1386 19:14 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 4 اسفند 1385 4:22
پست ها : 51
دريافتي: 0 تشكر
رسيده: 0 تشكر
ميشه يک مثال بزني :kuss:


بالا
 مشخصات  
 
 موضوع پست:
پستارسال شده در: 21 مرداد 1386 19:40 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 6 تير 1385 8:11
پست ها : 769
محل سکونت: اصفهان
دريافتي: 0 تشكر
رسيده: 4 تشكر
توي سايت بگردي پيدا مي‏كني :D

_________________
چيزي رو كه دوست داري بدست بيار ... وگرنه مجبوري چيزي رو كه بدست مياري دوست داشته باشي
Chonoo.Com


بالا
 مشخصات  
 
نمايش پست ها از پيشين:  مرتب سازي بر اساس  
ارسال مبحث جديد پاسخ به مبحث [ 23 پست ] برو به صفحه 1, 2  بعدي

همه زمانها UTC + 3:30 ساعت هستند


چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون کاربران عضو شده و 0 مهمان


شما نمي توانيد مبحث جديدي در اين انجمن ايجاد کنيد
شما نمي توانيد به مباحث در اين انجمن پاسخ دهيد
شما نمي توانيد پست هاي خود را در اين انجمن ويرايش کنيد
شما نمي توانيد پست هاي خود را در اين انجمن حذف کنيد
شما نمي توانيد فايل هاي پيوست در اين انجمن ارسال کنيد

جستجو براي:
پرش به:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Persian Translation By : www.Maghsad.com