شاید برای خیلی از زبانآموزان داخل کشور ما و یا هر کشور دیگری که انگلیسیزبان نیستند، نوشتن املای درست کلمات انگلیسی، یک مشکل بزرگ باشد و گاهی حتی نشدنی به نظر برسد. اما طبق آماری که گوگل به تازگی منتشر کرده است، این مشکل تنها مختص به کاربران خارجیزبان نمیشود!
دشواری املای زبان مادری خودمان، فارسی، از آنجا پدید میآید که کلمات مختلف با ریشههای عربی و یا دیگر زبانها در طول سالیان مختلف در تاریخ ایران، وارد این زبان شدهاند. ورود این کلمات گوناگون باعث شده است که املای دو کلمه با تلفظهای یکسان، متفاوت باشد و این «انتخاب کردن حرف درست» گاهی اوقات به یک چالش جدی تبدیل میشود؛ به طور مثال در کلماتی مانند قسطنطنیه که از حروف با املای دوگانهی زیادی برخوردار هستند، نویسنده ممکن است نزدیک به ده روش نوشتن اشتباه را انتخاب کند!
اما در زبان انگلیسی که چنین کلمات دوگانهای وجود ندارند، یک مشکل دیگر باعث دشواری املا میشود که گزارش گوگل نیز دقیقا بر روی همین موضوع تمرکز دارد. دانستن املای درست کلمات انگلیسی، به دانستن اسپل صحیح آن کلمات بستگی دارد. از آنجا که در این زبان ممکن است گاهی دو حرف مشابه در کنار هم قرار بگیرند، تعدادی از حروف خوانده نشوند و بعضی از حروف تلفظ متفاوتی داشته باشند، به دست آوردن شکل صحیح اسپل کلمات ممکن است بسیار دشوار شود.
جالب است بدانید که این دشواری تا آنجا بالا رفته است که همه ساله در مدارس و نهادهای آموزشی مختلف ایالات متحدهی آمریکا، مسابقات اسپل بین دانشآموزان و دانشجویان این کشور برگزار میشود و کلماتی با سطوح دشواری مختلف، برای شرکتکنندگان خوانده میشود و آنها باید سریعا اسپل درست کلمات را پیدا کنند و تک تک حروف را با ترتیب مناسب و صدای بلند، برای داوران بخوانند.
جدیدترین دورهی مسابقات محبوب The Scripps’ National Spelling Bee نیز به تازگی به اتمام رسیده است و نیهار جانگا (Nihar Janga) که یازده سال دارد (جوانترین قهرمان این مسابقات) و جیرام هثوار (Jairam Hathwar) که سیزده ساله است، به طور مشترک توانستند عنوان قهرمانی این دوره را به دست بیاورند؛ جالب است بدانید که هر دوی این دانشآموزان قهرمان، اصالتی هندی دارند.
گوگل نیز بعد از مراسم اختتامیه و به افتخار این مسابقات، آمار کلماتی که شکل صحیح اسپل آنها در ایالتهای مختلف کشور آمریکا و توسط کاربران آن مناطق جستجو شده است را در حساب توییتر رسمی سرویس گوگل ترندز منتشر کرده است. هرچند که این دو قهرمان هندیتبار جوان توانستهاند با موفقیت، کلمات بسیار سختی نظیر Kjelda ،juamave ،groenedael و zindiq را هم هجی کنند، اما گویا اوضاع در میان عموم مردم آمریکا چندان هم مناسب نیست و کلماتی بسیار سادهتر هم جستجو شدهاند!
املای درست این کلمات در گوگل بیش از همه جستجو شده است
بر طبق این آمار گوگل، دو کلمهی desert و cancelled در چهار ایالت، بیشترین جستجو برای اسپل صحیح را به خود اختصاص دادهاند و پراستفادهترین کلمات این لیست محسوب میشوند. کلمات pneumonia، vacuum و gray نیز در سه ایالت، پرجستجوترین کلمات بودهاند و در جایگاه دوم قرار میگیرند. بعد از این کلمات، مردم ایالت آرکانزاس اسپل کلمهی leprechaun را که مربوط به یک پری افسانهای در داستانهای فولکلور ایرلندی میشود، بیش از همه جستجو کردهاند!
نکتهی جالب اینجاست که مردم ایالت ماساچوست، اسپل نام خود این ایالت یعنی کلمهی Massachusetts را بیش از همه از موتور جستجوی گوگل درخواست کردهاند! مردم ایالت اوهایو کلمهی banana و مردم ایالت آلاسکا، خواستار اسپل صحیح کلمهی Hawaii بودهاند؛ به هرحال برای مردمی که اکثر اوقات سال در برف و سرما زندگی میکنند، طبیعی است که آفتاب سوزان و سواحل طلایی هاوایی بهترین کلمات دنیا باشند!
در انتهای لیست نیز مردم ایالت فلوریدا نیز با جستجوی املای درست کلمهی tomorrow و کاربران ویرجینیای غربی با کلمهی giraffe رکورد زدهاند. البته نمیتوان از این آمار به موضوع خاصی رسید و نتیجهگیری مشخصی را داشت، اما جستجوی اسپل چنین کلمات سادهای برای کاربران انگلیسیزبان میتواند برای ما خارجیها بسیار جذاب باشد و شاید هم یک قوت قلب بیشتر برای اینکه بدانیم این تنها ما نیستیم که دشواری املای زبان انگلیسی را تحمل میکنیم.
زمانی در بین عموم هوش ریاضی یا همان IQ از اهمیت ویژهای برخوردار بود. اما با گذشت زمان نتایج یافتهها نشان داد که آنچه میتواند در رضایتبخش بودن زندگی تأثیرگذار باشد، هوش هیجانی است. چرا که افرادی که هوش هیجانی بالایی دارند نسبت به درون و بیرون خود ارتباط بهتری میتوانند برقرار کنند. در ادامه با ما همراه باشید.
وقتی سلامت هیجانی ما در وضعیت بدی قرار میگیرد، اعتمادبهنفس ما هم خدشهدار خواهد شد. در چنین مواقعی باید توانایی داشته باشیم که عامل این مشکل را پیدا کنیم تا دوباره بتوانیم لذت شاد بودن را تجربه کنیم. — جس اسکات (Jess Scott)
هوش هیجانی بیانگری از توانایی درک، قدرت مدیریت، ابراز احساسات و همچنین برقراری یک ارتباط موفق با دیگران است. بنا به آمار ارایه شده، ۹۰٪ از افرادی که کارایی بالایی در شغل خود دارند از هوش هیجانی بالا برخوردار هستند. در مقابل ۸۰٪ از افرادی که کارایی پایینتری در شغل خود نشان میدهند، هوش هیجانی پایینتری هم دارند. هوش هیجانی در شکلگیری، رشد، حفظ و بهبود روابط شخصی هم اهمیت ویژهای دارد. برخلاف ضریب هوشی یا IQ که در طول زندگی تغییری نمیکند، هوش هیجانی یک خصیصهی اکتسابی است و میتواند رشد کرده و با میل ما به یادگیری تقویت شود.
در ادامه به ۶ نکته برای بالاتر بردن هوش هیجانی اشاره خواهیم داشت:
۱. احساسات منفی را در خود کاهش دهید
Young business woman – Mature business man with his colleagues in the background
احتمالاً هیچ یک از جنبههای هوش هیجانی به اندازهی توانایی در مدیریت و کنترل احساسات منفی اهمیت ندارد. چرا که همین احساسات میتواند بر قضاوت شما نسبت به وقایع و رویدادها تأثیرگذار باشد. برای تغییر حسی که به یک موقعیت خاص پیدا میکنید، ابتدا باید طرز فکر خود را راجع به آن موقعیت تغییر دهید. در ادامه به دو نمونه اشاره میکنیم:
شخصیسازیهای منفی را کاهش دهید. وقتی نسبت به رفتار یک نفر احساس منفی پیدا کردهاید، سعی نکنید فوراً نتیجهگیری منفی داشته باشید. درعوض، قبل از هر واکنشی، آن رفتار را از جنبههای مختلف بررسی کنید. به عنوان مثال، ممکن است تصور کنید که چون دوست شما جواب تلفنتان را نداده است پس اهمیتی برای شما قائل نیست. در عوض میتوانید این احتمال را در نظر بگیرید که سرش شلوغ بوده است. وقتی سعی کنید از کارهای دیگران برداشت بدی پیدا نکنید، ارزیابی بهتری از رفتارهای آنها خواهید داشت. به خاطر داشته باشید که اکثر رفتارهای افراد به علت حالات درونی خود آنها است و ارتباطی به شما ندارد. این دیدگاه کمک میکند که سوءتفاهمات زندگی شما کمتر شود.
ترس از جواب رد شنیدن را در خود کاهش دهید. یک راه مفید و موثر برای کنترل و مدیریت این ترس در شما این است که برای موقعیتهای مختلف انتخابهای متعددی پیش روی خود قرار دهید تا هر اتفاقی هم که بیفتد، گزینههای دیگری پیش رو داشته باشید. بهعنوان مثال ممکن است بگویید: «میخواهم برای شغلی که همیشه آرزویش را داشتهام درخواست کار دهم. اما اگر آنها مرا قبول نکنند از درون به هم میریزم» در صورتی که اگر گزینههای دیگری هم برای خود فراهم کنید به این دیدگاه میرسید: “میخواهم برای شغل مورد علاقهام درخواست کار دهم. اما اگر این کار هم نشد کارهای دیگری است که میتوانم برای آنها اقدام کنم.”
۲. ترسهای خود را کنترل کنید
ترس حسی است که همهی ما در طول زندگی به دفعات متعدد آن را تجربه میکنیم و بسته به نوع شخصیت خود با آن برخورد خواهیم داشت. همهی ما میدانیم در شرایطی که دچار ترس یا استرس میشویم باید آرامش خود را حفظ کنیم. رعایت این نکته میتواند در کاهش استرس به ما کمک کند:
صورت خود را با آب سرد بشویید و خود را در معرض هوای تازه قرار دهید. هوای خنک کمک میکند که استرس شما کمتر شود. از مصرف نوشیدنیهای کافییندار پرهیز کنید چرا که کافیین باعث افزایش استرس میشود.
در مواقعی که احساس افسردگی یا ناامیدی میکنید، حرکاتی مثل ایروبیک را انجام دهید و از این طریق به خودتان انرژی بدهید. فعالیت بدنی تأثیر فوقالعادهای بر روحیهی شما خواهد گذاشت و اعتماد به نفس شما را هم تقویت خواهد کرد.
۳. در بعضی مواقع قاطعانه رفتار کنید
برای این که بتوانیم خود واقعیمان باشیم باید بتوانیم آنچه را که برایمان مهم است، ابراز کنیم و حد و مرزهای خودمان را مشخص کنیم- هریت لنر (Harriet Lener)
گاهی در زندگی شرایطی پیش میآید که باید حدود خود را مشخص کنیم تا دیگران از جایگاه فعلی ما مطلع شوند. از اینرو باید مهارتهایی مثل “نه گفتن” را در خود تقویت کنیم بدون اینکه بعد از آن احساس عذاب وجدان پیدا کنیم.
۴. در مواجهه با افراد لجباز، به جای منفعل بودن فعال باشیم
This is too loud! Frustrated mature man in shirt holding fingers in his ears and keeping eyes closed while standing against white background
همهی ما در طول زندگی خود از خانه تا محل کار گرفته با آدمهای غیرمنطقی زیادی روبرو میشویم. برای این که اجازه ندهیم افراد با سرسختی بیجای خود روز ما را خراب کنند باید این نکات را رعایت کنیم:
– قبل از اینکه چیزی بگویید که بعدا پشیمان شوید یک نفس عمیق بکشید و آرام تا ۱۰ بشمارید. در بیشتر مواقع وقتی به عدد ۱۰ رسیدید، واکنش بهتری به ذهن شما خطور پیدا خواهد کرد و میتوانید اوضاع را آرامتر کنید. اما اگر بعد از شمردن تا عدد ۱۰ هنوز ناراحت بودید، باز هم به خودتان زمان دهید تا آرامتر شوید و با آرامش موضوع را حل و فصل کنید.
– یک راه دیگر در این مواقع این است که برای لحظهای خود را جای طرف مقابل فرض کنید. البته قرار نیست رفتار غیرقابل قبول افراد را توجیه کنیم یا حتی آنها را تبرئه کنیم بلکه میخواهیم با دیدگاه منطقیتری مشکل را حل کنیم.
۵. بعد از زمین خوردن بلند شویم
من بیشتر از ۹۰۰۰ پرتاب را در زندگیام از دست دادهام. تقریباً در ۳۰۰ بازی باختهام. ۲۶ مرتبه پرتاب را از دست دادهام. بارها و بارها شکست خوردهام و تمامی اینها دلیل موفقیت من بودهاند. — مایکل جردن (Michael Jordan)
همهی ما میدانیم که زندگی همیشه آسان نیست و گاهی اوقات نمیدانیم که در برابر مشکلات زندگی چطور فکر کنیم و یا چه رفتاری از خود نشان دهیم.
با هر موقعیت چالشبرانگیزی که با آن مواجه شدیم، از خود بپرسیم: «از این موقعیت چه درسی میگیرم؟» «در حال حاضر مسئلهی مهمتر چیست؟» و «اگر بخواهم خارج از چارچوب فکر کنم چه راهحلهای بهتری پیش روی من قرار دارد؟ هرچه کیفیت این پرسشها بالاتر باشد، پاسخهای آنها هم باکیفیتتر خواهند بود. سعی کنید براساس آموختهها و اولویتها سوالات خود را مطرح کنید تا بتوانید با رویکردی درست با موقعیتها برخورد کنید.
آبراهام لینکلن در ۸ انتخابات بازنده شد، ۲ بار در کار ورشکست شد و قبل از اینکه رئیسجمهور ایالات متحده شود، دچار فروپاشی عصبی شد. – روزنامه والاستریت
۶. احساسات صمیمانهی خود را ابراز کنید
توانایی ابراز احساسات و ارزش قائل شدن برای آنها و عواطف لطیف و عاشقانه، برای حفظ ارتباطات نزدیک مهارتی ضروری است.
دکتر جان گاتمن این ابراز احساسات صمیمانه را “مناقصه” مینامد. مناقصه میتواند هر روش ارتباط مثبت بین دو نفری باشد که میخواهند رابطهای نزدیک با هم داشته باشند. این مناقصه میتواند به صورت زبان بدن، کلامی یا رفتاری باشد. مهارت در ابراز احساسات از دیگر روشهایی است که باعث افزایش هوش هیجانی میشود.
در این جلسه از سری آموزشهای پیاچپی میخواهیم اولین پروژه کاربردی را با این زبان برنامهنویسی محبوب ایجاد کنیم. پروژه ما اسکریپتی برای ارسال ایمیل است. بدین صورت شما با نحوه ارسال ایمیل و توابع مربوط به آن در PHP نیز آشنا خواهید شد. در ادامه مطلب با ما همراه باشید.
اگر آموزشهای پیاچپی را تا اینجا دنبال کردهاید پس تمامی پیشنیازهای لازم برای شروع کار یک پروژه کاربردی را دارید. میخواهیم در این جلسه یک اسکریپت کاربردی برای ارسال ایمیل ایجاد کنیم و سعی میکنیم علاوه بر استفاده از مباحث قبلی، موارد جدیدی را هم به شما آموزش دهیم.
خب اگر یادتان باشد در جلسات اولیه گفتم که مهمترین مرحله برای ایجاد یک پروژه، الگوریتم آن است. شاید بسیاری از افراد فکر کنند که یک پروژه ساده چه نیازی به الگوریتم دارد. خب شاید تا حدی گفته این افراد درست باشد زیرا بسیاری از پروژههای کوچک را بدون الگوریتمنویسی نیز میتوان ایجاد کرد. اما اگر بخواهیم بعدا اسکریپت خود را ارتقا دهیم و امکانات جدیدی به آن اضافه کنیم یا اشکلاتش را رفع کنیم، در صورتی که از الگوریتم استفاده کرده باشیم کار ما بسیار آسانتر خواهد شد.
پس اولین کاری که برای ایجاد پروژه ارسال ایمیل انجام میدهیم ترسیم یک الگوریتم است. پیش از اینکه بخواهید الگوریتم را ایجاد کنید باید در نظر داشته باشید که اسکریپتی که قصد ایجادش را دارید قرار است چه کاری را انجام دهد؟ خب در اینجا ما میخواهیم سیستم ارسال ایمیل تحت وب ایجاد کنیم پس مهمترین بخشهایی که پروژه ما باید داشته باشد به شرح زیر است:
یک فیلد برای وارد کردن ایمیل مقصد (آدرسی که ایمیل به آن ارسال خواهد شد)
یک فیلد برای وارد کردن نام ارسال کننده
یک فیلد برای وارد کردن موضوع ایمیل
یک فیلد برای نوشتن متن ایمیل
یک دکمه برای ارسال ایمیل
یک دکمه برای ریست کردن فرم
یک صفحه پیاچپی که عملیات پردازش و ارسال ایمیل را انجام دهد
خب این موارد مهمترین بخشهایی هستند که ما باید ایجاد کنیم. ما باید دو فایل ایجاد کنیم که البته میتوان کل پروژه را در یک فایل ایجاد کرد اما بهتر است هر بخش را در یک فایل جداگانه ایجاد کنیم. الگوریتم سادهای که من برای این پروژه در نظر گرفتهام به این صورت است:
کاربر اطلاعات خواسته شده را در فرم وارد میکند
اطلاعات به صفحه بررسی و ارسال ایمیل ارسال می شوند
در صفحه بررسی و ارسال ایمیل چک میکنیم که آیا کاربر تمامی فیلدها را پر کرده یا خیر. اگر فیلدها به درستی پر شده بود به مرحله ۴ میرویم و اگر پر نشده بود کاربر را به مرحله ۱ انتقال میدهیم
حال براساس اطلاعاتی که کاربر وارد کرده ایمیل موردنظر را با کمک PHP ارسال می کنیم.
بررسی میکنیم که آیا ایمیل با موفقیت ارسال شده یا خیر. اگر با موفقیت ارسال شده بود، باید پیامی مبنی بر ارسال موفق ایمیل به کاربر نمایش داده شود در غیر این صورت پیام خطای مناسب به کاربر نمایش داده شود
همانطور که میبینید در ۵ مرحله به سادهترین حالت ممکن الگوریتم پروژه ارسال ایمیل را ایجاد کردیم. البته میتوان از الگوریتمهای دیگری هم استفاده کرد و شاید الگوریتم موردنظر شما بسیار بهتر از الگوریتمی باشد که در بالا نوشتهام. اما برای یکپارچه شدن آموزش براساس همین الگوریتم پروژه را ایجاد میکنیم.
ابتدا نرمافزار زمپ را اجرا کرده و در پوشه htdocs یک پوشه جدید به نام email میسازیم. سپس در این پوشه دو فایل به نامهای index.php و send.php ایجاد میکنیم. فایل اول قرار است فرم ما را نشان دهد و فایل دوم پردازشگر و ارسال کننده ایمیل است.
در فایل index.php مطابق با نیاز خود که در بالا به آن اشاره کردم یک فرم با فیلدهای موردنظر ایجاد میکنیم. برای زیباتر شدن نتیجه کار میتوانید از دستورات اچتیامال بهره ببرید ولی ما به منظور سادهتر بودن هر چه بیشتر کدها از حداقل کد ممکن استفاده کردهایم.
//merge name and message $final_message = $username . ” : ” . $message;
if ($mailto != “” && $username !=”” && $subject !=”” && $message != “”) { //we know user filled the form $email_send = mail ($mailto, $from_mail, $final_message); //check for send email if ($email_send){ echo “Your Email Has Been Send Successfully!”; }else{ echo “sorry, there is problem in sending email, try again!”; } }else{ echo ‘You Must Fill All Fields! Go <a href=”index.php”>Back</a>’; } ?>
حال میخواهیم کد بالا را تحلیل کنیم. در واقع تمامی نکات کد بالا را قبلا یاد گرفتهاید اما در اینجا یک مرور کلی به کد داریم. ابتدا مقادیری که کاربر در فرم وارد کرده را درون چند متغیر قرار دادهایم. همچنین از تابع trim پیاچپی استفاده کردهایم تا فاصلههای اضافه اول و آخر عبارات وارد شده در هر فیلد به صورت خودکار حذف شود. سپس با یک دستور if بررسی کردهایم که در صورتیکه تمامی فیلدها خالی نباشند و کاربر یک مقدار در آنها وارد کرده باشد کد بخش صحیح بودن شرط اجرا شود و در غیر این صورت پیام خطایی به او نمایش داده میشود و یک لینک برای بازگشت به صفحه فرم در اختیار وی قرار میگیرد. اما در صورت صحیح بودن شرط با استفاده از تابع mail اقدام به ارسال ایمیل میکنیم و سپس مقدار بازگشتی این تابع را در متغیر email_send قرار میدهیم.
در مورد مقادیر بازگشتی در جلسه آموزش تابع مفصلا توضیح دادیم. اما در اینجا بد نیست بدانید در صورتی که ارسال ایمیل موفق باشد این تابع مقدار true را برمیگرداند و اگر ایمیل به هر دلیلی ارسال نشود مقدار بازگشتی تابع false خواهد بود.
پس در نتیجه مقدار متغیر email_send یا true میشود یا false. سپس با یک دستور if مجددا بررسی کردهایم که اگر ارسال ایمیل موفق بوده یعنی email_send = true بوده باشد، پیام موفق بودن ارسال ایمیل و در غیر این صورت، (یعنی email_send = false بوده) پیام خطای ارسال نشدن ایمیل به کاربر نمایش مییابد.
نکته: ما نام کاربر و متن پیام او را به هم ترکیب کردهایم و در یک متغیر دیگر به نام final_message قرار دادهایم تا کسی که ایمیل را دریافت میکند بداند این ایمیل از طرف چه شخصی برایش ارسال شده است.
تابع ارسال ایمیل را میتوان با تنظیمات و سفارشیسازیهای زیادی مورد استفاده قرار داد. اما برای شروع کار باید بدانید که این تابع به صورت پیشفرض و در سادهترین حالت ممکن چند ورودی دریافت میکند. همانطور که در کد زیر میبینید در هنگام استفاده از این تابع باید حداقل سه ورودی داشته باشد. آرگومان اول آدرس ایمیلی است که قصد داریم به آن ایمیل ارسال کنیم. آرگومان دوم موضوع ایمیل و آرگومان سوم متن ایمیل است.
همچنین به این نکته باید توجه کنید که برای استفاده از این تابع الزاما نیاز نیست مقدار بازگشتی آن را برابر یک متغیر قرار دهیم. در واقع در کد اسکریپت ارسال ایمیل، ما به این دلیل تابع را در برابر یک متغیر قرار دادیم تا از این طریق بتوانیم کنترل بیشتری بر روی عملیات داشته باشیم و پیام خطای مناسب را ایجاد کنیم.
اگر دقت کرده باشید اسکریپت نوشته شده توسط ما دقیقا منطبق بر همان الگوریتم ساده اولیهای است که نوشته بودیم. یعنی تک تک مراحل بهخوبی در پیاچپی پیادهسازی شدهاند.
با کمی تغییرات و زیباتر کردن کد بالا میتوانید یک اسکریپت کاربرپسند و کاربردیتر ایجاد کنید. به عنوان تمرین از css و html به منظور زیباتر شدن فرم ارسال ایمیل و حتی صفحه ارسال ایمیل و نمایش پیامها بهره ببرید. همچنین در صورتی که هرگونه سوالی در این مورد برایتان پیش آمده آن را در بخش نظرات اعلام کنید.
همچنین میتوانید از آنچه که در این جلسه یاد گرفتید به منظور ایجاد فرم تماس با ما برای سایت خود استفاده کنید.
در جلسات آینده و در پروژههای پیچیدهتر روش ارسال ایمیل با ضمیمه و نیز ایمیلهای HTML و UTF-8 را خواهید آموخت. فعلا سعی کنید مباحثی که تا اینجا آموزش داده شده را به صورت روان و کامل یاد بگیرید چراکه رفته رفته با بکار گرفتن پروژههای سنگینتر کار شما کمی بیشتر میشود.
در این بخش از سری آموزش برنامهنویسی وب با PHP میخواهیم دربارهی مبحث جذاب فرمها صحبت کنیم. علاوه بر این با متغیرهای کاربردی و پیشفرض پیاچپی نیز آشنا خواهیم شد. در ادامه با ما همراه باشید.
متغیرهای پیشفرض
در جلسات قبل اعلام کردیم، در نامگذاری متغیرها در php نباید از نامهای از پیش رزرو شده این زبان برنامهنویسی استفاده کنید. PHP شامل یکسری از متغیرهای از پیش تعریف شده است که مقادیر مشخصی را نگهداری میکنند و به برنامهنویس امکانات خوب و کاربردی را ارائه میدهند. میتوانید بهراحتی و تنها با دانستن نام این متغیرها در هرجای کدهای پروژه خود از آنها استفاده کنید.
متغیر SERVER_$
این متغیر در واقع یک آرایه از دادهها است که در آن اطلاعاتی از قبیل هدرها (Headers)، مسیرها (Paths) و … وجود دارد. همانطور که در بخش آموزش آرایهها توضیح دادیم برای دسترسی به هر عضو یک آرایه باید نام آن عضو را در مقابل نام آرایه بهکار ببرید. در مورد آرایه SERVER_$ باید از کدی شبیه به کد زیر استفاده کنید:
<?php echo $_SERVER[‘SCRIPT_NAME’]; ?>
کد بالا را در یک فایل به نام phpvars.php نوشته و در پوشهای به نام new در پوشه htdocs سرور زمپ خود ذخیره کنید. بدین صورت فرضا اگر Xampp را در درایو C خود نصب کرده باشید، مسیر فایل باید به صورت زیر باشد:
C:/Xampp/htdocs/new/phpvars.php
سپس سرور را اجرا کنید. حالا باید این فایل از طریق آدرس http://127.0.0.1/new/phpvars.php در دسترس باشد. کد بالا باعث میشود مسیر جاری فایل در مرورگر نمایش یابد. برای ما نتیجه اجرای کد بالا به صورت زیر بود:
همانطور که میبینید مسیر فایل فراخوانی شده در سرور نمایش یافته است. حال بیایید ببینیم این متغیر چه اطلاعات دیگری را میتواند نشان دهد. به کد زیر دقت کنید:
<?php echo $_SERVER[‘HTTP_HOST’]; ?>
کد بالا هدر هاست کنونی را برمیگرداند. از آنجا که ما این کد را در سرور محلی اجرا کردهایم نتیجه آن به صورت زیر خواهد بود:
شاید بپرسید این موارد به چه کار میآیند؟ یک مثال خوب میزنم. فرض کنید تصاویر زیادی روی سرور شما وجود دارند. حالا به هر دلیلی تصمیم میگیرید مسیر تصاویر را در سرور تغییر دهید یا به صورت کلی دامین خود را میخواهید تغییر دهید. در این صورت باید هرجا که از این تصاویر استفاده کردهاید، مسیردهی را برای تک تک فایلها تغییر دهید که این عملیات طبیعتا بسیار وقت گیر و کمبازده است. در عوض میتوانید تنها با چند کد ساده مسیر تمامی عکسهای سرور خود را به مسیر جدید تغییر دهید. به مثال زیر توجه کنید. برای این کار کافی است یک فایل با نام دلخواه مثلا config.php ایجاد کنید و کد زیر را در آن قرار دهید.
دقت کنید که به عنوان مثال تصاویر را به پوشهای به نام images منتقل کردهایم. ابتدا هدر هاست را همانطور که در بالا اشاره کردیم در متغیر جدیدی به نام host قرار دادهایم. سپس مسیر جدیدی را با ترکیب متغیر host و مسیر دلخواه جدید که در اینجا پوشه images است، در متغیر دیگری به نام image_path قرار دادهایم. به عنوان مثال در سرور محلی آنچه در متغیر image_path ذخیره میشود چیزی شبیه به مسیر زیر خواهد بود:
۱۲۷٫۰٫۰٫۱/images/
نکته مهم: اگر دقت کرده باشید بین متغیر host$ و مسیر ‘/images/’ از یک نقطه استفاده کردهایم. در پیاچپی برای اتصال رشتههای متنی به یکدیگر و نیز اتصال متغیرها به یکدیگر و همچنین اتصال متغیرها به رشتههای متنی میتوانید از نقطه استفاده کنید.
حالا در فایلهای پروژه خود هر کجا که از عکسهای جدید خود بخواهیم استفاده کنیم کافی است ابتدا فایل Config.php که در بالا ایجاد کردیم را به صفحه include یا require اضافه کنیم و سپس از متغیر image_path در هرجا که خواستیم استفاده کنیم. به مثال زیر توجه کنید:
در کد بالا در تگ img که در html به منظور نمایش تصاویر از آن استفاده میکنیم، به جای آدرس ثابت عکس از آدرس جدیدی که ایجاد کردهایم، بهره بردیم. به نوع استفاده از کاراکتر نقطه در کد بالا نیز توجه کنید چراکه در پیاچپی بارها و بارها شرایطی پیش خواهد آمد که نیاز به ترکیب رشتهها خواهید داشت. همچنین اگر فکر میکنید این کد کمی برایتان گیجکننده است پیشنهاد میکنیم ابتدا دستورات HTML را بهخوبی فرا گرفته و سپس شروع به یادگیری php کنید زیرا همانطور که در جلسه اول گفتیم، پیشنیاز این آموزشها آشنایی شما با دستورات HTML و تا حدودی دستورات CSS است. در جدول زیر لیست سایر اعضای آرایه SERVER_$ که میتوانید از آنها استفاده کنید را برایتان لیست کردهایم:
جدول اعضای آرایه SERVER_$ در PHP
نام فایل کنونی که در سرور اجرا شده را بر میگرداند
$_SERVER[‘PHP_SELF’]
آدرس آیپی سرور کنونی را بر میگرداند
$_SERVER[‘SERVER_ADDR’]
نام سرور کنونی را بر میگرداند
$_SERVER[‘SERVER_NAME’]
هدر هاست کنونی را بر میگرداند
$_SERVER[‘HTTP_HOST’]
آیپی سروری قبلیای که کاربر از آن به سایت ما وارد شده را بر میگرداند
$_SERVER[‘REMOTE_ADDR’]
پورت دستگاهی که کاربر از طریق آن با سرور ارتباط برقرار کرده را بر میگرداند
$_SERVER[‘REMOTE_PORT’]
نام مسیر دقیق فایلی که فراخوانی شده را بر میگرداند
$_SERVER[‘SCRIPT_FILENAME’]
پورتی که سرور از آن برای ارتباطات خود استفاده میکند را برمیگرداند
$_SERVER[‘SERVER_PORT’]
نام دقیق فایلی که فراخوانی شده را بر میگرداند
$_SERVER[‘SCRIPT_NAME’]
آدرس URI
$_SERVER[‘REQUEST_URI’]
میتوانید تک تک موارد بالا را خودتان برای تمرین تست کنید و نتیجه را در مرورگر مشاهده کنید. مطمئن باشید که این دادهها بارها و بارها بهکارتان خواهد آمد، پس سعی کنید آنقدر آنها را تمرین کنید که همیشه در ذهنتان باقی بمانند.
فرمها در PHP
در پیاچپی از دو متغیر POST_$ و GET_$ به منظور جمعآوری اطلاعات ثبتشده در فرمها استفاده میکنیم. فرمها در طراحی صفحات وب بخش غیرقابل انکاری هستند و به منظور تعامل کاربر و انجام اکثر کارهایی که به نوعی با اطلاعات سروکار دارند باید از فرمها استفاده کنیم. فرم ثبتنام، فرم ورود به محوطه کاربری، فرم بازیابی رمزعبور و … از جمله مهمترین کاربردهای فرمها در تولید وبسایتها هستند.
با استفاده از تگ FORM در اچتیامال میتوانیم فرم موردنظر خود را ایجاد کنیم. تمامی فیلدهای ورودی باید در داخل این تگ بهکار گرفته شوند. به مثال زیر توجه کنید:
<FORM action=”send.php” method=”post”>
name : <input type=”text” name=”username”>
<input type=”submit” name=”send” value=”Submit Your Name!”>
</form>
در کد بالا همانطور که میبینید یک فرم ایجاد کردهایم که شامل یک فیلد ورودی برای وارد کردن نام است. این فیلد از نوع متنی بوده و خاصیت name آن را username تعیین کردهایم. همچنین از یک دکمه از نوع Submit برای ثبت فرم استفاده کردهایم و خاصیت نام این دکمه را send و متن روی دکمه را با خاصیت value برابر Submit Your Name! قرار دادهایم.
مهمترین نکته کد بالا دو خاصیت action و method در تگ FORM است. در قسمت action ما عبارت send.php را نوشتهایم. این یعنی اطلاعات فرم ما پس از ثبت، به صفحهای که در بخش action تعیین کردهایم ارسال خواهد شد. همچنین در بخش method میتوان از دو حالت get و post استفاده کرد. تفاوت این دو روش را نیز به شما توضیح خواهیم داد اما در کل نتیجه کار در هر دو حالت یکی خواهد بود.
کد بالا را در یک فایل به نام form.php قرار دهید و سپس این فایل را در همان پوشه new که در ابتدای آموزش ایجاد کرده بودید قرار دهید. حالا یک فایل دیگر به نام send.php ایجاد کنید و کد زیر را در آن قرار دهید:
<?php $user = $_POST[‘username’]; echo “your name is : ” . $user; ?>
از آنجا که در بخش method فرم خود از روش post استفاده کردهایم در اینجا برای دریافت اطلاعات فرم خود، از متغیر POST_$ استفاده کردهایم. سپس در مقابل نام این متغیر (در واقع آرایه) به عضو مورد نظرمان که در اینجا name تعیین شده برای فیلد نام در فرم بالا است، را وارد کردهایم. سپس نتیجه را در متغیر user ذخیره کرده و نهایتا آن را با دستور echo نمایش دادهایم. پس مثال بالا شامل دو فایل شد. یکی فایل form.php که فقط کدهای html را در آن بهکار بردیم و دیگری فایل send.php که اطلاعات فرم ما به این صفحه ارسال میشود. سپس با دستورات پیاچپی، اطلاعات وارد شده در فیلد username را از فرم گرفته و آن را چاپ کردیم.
اگر در هنگام تست کدهای بالا به آدرس URL در مرورگر توجه کنید ابتدا از آدرس http://127.0.0.1/new/form.php به فرم دسترسی یافته و پس از ثبت فرم آدرس صفحه به http://127.0.0.1/new/send.php تغییر خواهد کرد. از آنجا که ما در ثبت فرم از متد post استفاده کردهایم، اطلاعات به صورت امن و بدون اینکه به کاربر نمایش داده شوند به صفحه جدید که در اینجا send.php است ارسال شده است. اما تفاوت این روش با get چیست؟ در کد form.php در بخش method اینبار به جای post از get استفاده کنید و فایل را ذخیره کنید. کد form.php شما در این حالت باید مثل زیر باشد:
<FORM action=”send.php” method=”get”> name : <input type=”text” name=”username”> <input type=”submit” name=”send” value=”Send Your Name!”> </form>
حالا فایل send.php را نیز به صورت زیر تغییر دهید:
<?php $user = $_GET[‘username’]; echo “your name is : ” . $user; ?>
میبینید که اینبار به جای POST_$ از GET_$ استفاده کردهایم و بقیه مراحل مشابه با روش قبل است. اما یک تفاوت بسیار مهم در این روش نسبت به روش post وجود دارد. اگر فرم را در این حالت ثبت کنید و به آدرس URL در مرورگر توجه کنید باید چیزی شبیه به عکس زیر را ببینید. من در صفحه form.php در فیلد نام عبارت mojtaba را نوشته و فرم را ثبت کردم.
همانطور که در تصویر بالا هم میبینید اینبار نام فیلد ثبتشده و نیز مقدار وارد شده در آن در آدرس مرورگر نمایان شده است. حال اگر کمی خلاقیت به خرج دهید کافی است به جای mojtaba در آدرس URL بالا، هر مقدار دیگری را که دوست دارید وارد کنید. نتیجه چه خواهد شد؟ نام جدید در مرورگر چاپ خواهد شد بدون اینکه نیاز باشد آن را از طریق فرم ثبت کنید! حالا اگر تعداد فیلدهای ما بیشتر باشد چه کاری باید انجام داد؟ فرض کنید در فرم خود ۳ فیلد با نامهای user و age و city داریم. اگر این فرم را با متد GET ارسال کنیم آدرس URL صفحهای که فرم به آنجا ارسال میشود به صورت زیر خواهد بود. فرض کنید نام صفحه مقصد mypage.php است:
mypage.php?user=mojtaba&age=25&city=tehran
میبینید که نام فیلد اول یعنی user پس از علامت سوال ? قرار گرفته و بعد = و سپس مقدار وارد شده در این فیلد. برای فیلدهای دوم به بعد نام هر فیلد پس از علامت & قرار میگیرد و مجددا = و سپس مقدار فیلد. به هر تعدادی که فیلد داشته باشیم از فیلد دوم به بعد به همین صورت در آدرس URL اضافه خواهند شد.
برای درک بهتر این بخش یک مثال دیگر میزنیم. یک فایل جدید به نام my.php در پوشه new ایجاد کنید و کد زیر را در آن قرار دهید:
اگر کد بالا را اجرا کنید میبینید که ما مقادیر را به صورت مستقیم و بدون نیاز به فرم از طریق آدرس به صفحه موردنظر خود ارسال کردهایم. نتیجه اجرای کد بالا در مرورگر به صورت زیر خواهد بود:
your name is mojtaba and yor age is 25 and your city is tehran
شما میتوانید به جای مقادیر این سه متغیر در آدرس URL از مقادیر دلخواه خود استفاده کنید تا مبحث get را بهتر درک کنید.
برای تمرین سعی کنید یک فرم جدید ایجاد کنید که به جای یک فیلد دارای چند فیلد باشد و سپس با استفاده از دو متد post و get دادههای ثبت شده توسط فرم را با پیاچپی دریافت کرده و آنها را نمایش دهید. با استفاده از آنچه تا به این لحظه یادگرفتهاید میتوانید یک ماشین حساب ساده بسازید. ابتدا دو عدد را با فرم از کاربر دریافت کنید و سپس با پیاچپی عملیات ریاضی موردنظر را انجام دهید. این کار بسیار ساده است و باعث میشود مبحث این جلسه را نیز بهخوبی یاد بگیرید.
در جلسه بعدی رفته رفته وارد مباحث پیشرفتهتر خواهیم شد. همچنین در صورتی که سوالی در مورد این جلسه دارید آن را از طریق بخش نظرات اعلام کنید.
خودروهای امداد و آتشنشانی شاید از آن دسته خودروهایی باشند که در مجلات و سایتهای خودرویی کمتر به آنها پرداخته شود. اما ما در اینجا ۱۳ نکتهی جالب در مورد این ماشینها را برای شما گردآوری کردهایم. با ما همراه باشید.
شنیدن آژیر ماشین آتشنشانی و امدادرسانی معمولا توجه افراد را به خود جلب میکند. البته باید توجه داشته باشید که ماشین آتشنشانی کاملا با خودروی امداد و نجات متفاوت است. این دو خودرو کاملا از هم متفاوت بوده و شاید خیلیها تفاوت آنها را تشخیص ندهند اما تفاوت آنها تنها یکی از ۱۳ نکتهای است که در این مقاله مطالعه خواهید کرد.
۱. ایدهی ماشین آتشنشانی به یونان باستان بر میگردد
ماشین آتشنشانی یونانیها در ابتدا تنها یک پمپ بزرگ بوده که آب را به مسافتی پرتاب کند. سپس ماشینهای آتشنشانی برای مدت طولانی کنار گذاشته شدند، تا اینکه حدود ۱۷۰۰ سال بعد دوباره در اروپا متولد شدند. در ابتدا ماشینهای آتشنشانی اروپا مانند ارابه توسط اسب کشیده شده و به محل حادثه منتقل میشدند.
۲. در ابتدا از سگهای نژاد دالماسین به عنوان آژیر خطر استفاده میشد
سگهای خالدار نژاد دالماسین به دلیل داشتن چند نکتهی مثبت، گزینهی مناسبی برای آتشنشانها بودند، این سگها باهوش بوده و با اسبها رابطهی خوبی داشتند و ضمنا کارایی بالایی در نقش نگهبانی نیز کاملا موفق عمل میکردند. بهکارگیری آنها توسط آتشنشانها نیز به این صورت بود که سگها در خیابان در جلوی اسبها به راه میافتادند تا راه را برای آنها باز کنند.
۳. ماشینهای آتشنشانی به شکل امروزی، از ابتدای قرن بیستم بهکار گرفته شدند
این ماشینها هم در زمانی ساخته شدند که همه عوامل دست به دست هم داده بودند که اتومبیلها هر روز گسترش پیدا کنند. خودروی آتشنشانی که در تصویر میبینید از نوع Knox بوده و متعلق به سال ۱۹۰۵است.
۴. تفاوت بسیار زیادی بین خودروی امداد و نجات و ماشین آتشنشانی وجود دارد
بسیاری از مردم هر دوی این خودروها را با نام ماشین آتشنشانی میشناسند اما آنها دو خودروی کاملا متفاوت از هم هستند. ماشین آتشنشانی (خودروی جلویی در تصویر) وظیفهی حمل پمپ آب و شلنگها را به صحنهی حادثه بر عده دارد در حالی که خودروی امداد و نجات (خودروی عقبی در تصویر) دارای یک نردبان بسیار بلند است.
۵. بسته به شرایط، خودروی اتش نشانی می تواند مقدار زیادی آب را بصورت اسپری تولید کند
دلیل استفاده از قطرات بسیار ریز آب بجای جریان پر فشار آب این است که قطرات ریز آب توانایی بهتری در دفع حرارت دارند، همچنین این قطرات ریز با ورود به محیط تا حدودی خود را با اکسیژن جایگزین کرده و باعث خفه شدن آتش میشوند.
۶. بعضی از ماشینهای آتشنشانی به جای آب از کف استفاده می کنند
برای استفاده از کف (فوم) مخصوص آتشنشانی چند دلیل موجه وجود دارد، اول اینکه وزن کف نسبت به آب کمتر است، بنابراین مامور آتشنشان فشار برگشتی شیر را راحتتر میتواند کنترل کند و زحمت کمتری نیاز دارد. کف آتشنشانی دارای ۷۵ درصد آب کمتر است و این به این معنی است که وسایل و هرچیزی که از آتش در امان مانده باشد دیگر توسط آب خراب نخواهد شد!
۷. کامیون نردبان همانطور که از اسمش بر میآید تنها حمل کنندهی یک نردبان بزرگ است
نام دیگر این ماشین ها TDA به معنای کامیون هوایی است. این کامیونها همانند ۱۸ چرخهایی که در جاده میبینید یک تریلر را پشت خودشان میکشند که روی آن یک نردبان بزرگ نصب شده است.
۸. برخی انواع TDA ها دارای دو راننده هستند
TDAها دارای طول بسیار زیادی هستند که باعث شده ماشینهای خیلی سریعی در هنگام حرکت در خیابان نباشند اما آن ها علیرغم داشتن جثهای بزرگ قابلیت مانور بسیار بالایی در مکان های تنگ و باریک دارند. معمولا TDAها یک رانندهی دیگر نیز دارند که در عقب تریلر قرار دارد و مسئول فرمان دادن به چرخهای عقبی است. این راننده را سکاندار (tillerman) مینامند.
۹. نردبانهای آتشنشانی میتوانند حتی در بادی با سرعت ۸۰ کیلومتر بر ساعت نیز کار خود را انجام دهند
وقتی که با سرعت ۸۰ کیلومتر بر ساعت در حال حرکت هستند دست خود را از دنجره بیرون ببرید تا شدت باد را حس کنید. حال تصور کنید که در معرض چنین بادی آن هم روی یک نردبان باریک و در ارتفاع یک ساختمان بلند مرتبه قرار داشته باشید.
۱۰. برای دسترسی به طبقات آسمانخراشها برخی ماشینهای امداد و نجات میتوانند آتشنشان را تا راتفاع ۱۰۰ متری بالا ببرند
خودرویی که در تصویر مشاهده میکنید ببرونتو نام دارد و نام خود را از دایناسور بسیار عظیمالجثهای به نام برونتوسوروس گرفته است. برونتوسوروس دارای گردنی بسیار دراز بود و این خودروی آتشنشانی نیز شمایلی تقریبا مشابه آن دارد. هر کسی که بخواهد از این ماشین استفاده کند قطعا نباید ترسی از ارتفاع داشته باشد.
۱۱. سریعترین خودروی آتشنشانی جهان دارای پیشرانهی جت است
این خودرو که نام عقاب هاوایی را روی آن گذاشتهاند مجهز به دو عدد پیشرانهی جت ساخت رولزرویس است که هر کدام نیروی رانشی معادل ۱۲ هزار پوند را تولید میکنند. با چنین نیروی عظیمی این خودرو مسافت ۴۰۰ متر را در کمتر از هفت ثانیه و با سرعتی بیش از ۳۲۰ کیلومتر بر ساعت طی میکند.
با شعلهی آتش عظیمی که از اگزوزهای این ماشین آتشنشانی بیرون میآید به نظر میرسد که توانایی این خودرو در به آتش کشیدن ساختمانها بهتر از توانایی آن در خاموش کردن آتش باشد.
۱۲. قدرت ماشینهای آتشنشانی تا ۶۰۰ اسب بخار میرسد
اکثر ماشینهای آتشنشانی دارای قدرتی بین ۴۵۰ تا ۶۰۰ اسب بخار هستند. شاید در نگاه نخست، این قدرت بسیار زیاد به چشم بیاید اما اگر بدانید که ماشین های آتشنشانی چه وزن سنگینی دارند متوجه خواهید شد که حتی این قدرت نیز به سختی نیاز آنها را پاسخ می دهد.
۱۳. ماشین های آتشنشانی قرمز رنگ باید به رنگ زرد لیمویی باشند
تحقیقات بسیار نشان داده است که آمار تصادف خودروهایی که دارای رنگ زرد هستند بسیار کمتر از خودروهای قرمز رنگ است. دلیل این امر این است که رنگ زرد لیمویی در شرایط مختلف برای چشم انسان بسیار قابل دیدن است. گزارشهای سازمان آتشنشانی ایالات متحده نشان میدهد که حوادث رانندگی عامل مرگ ۱۰ درصد آتشنشانان است، پس متوجه میشوید که قضیهی رنگ بسیار جدی است.