اجرای CronJob در وب سرور لوکال ویندوز

در صورتی که بخواهید یک برنامه نوشته شده به زبان PHP در سرور اجرا شود خیلی راحت میتوانید با استفاده از تنظیمات کنترل پنل سرور در قسمت CronJob این کار را انجام دهید اما اگر فایل PHP مورد نظر شما می بایست در لوکال مثلا xampp  یا wampp اجرا شود روش کار متفاوت خواهد بود . من برای هماهنگ سازی اطلاعات روی دیتابیس سرور با اطلاعات موجود در دیتابیس کامپیوترم از این روش استفاده کردم تا هر 5 دقیقه یکبار دستوراتی که میخواهم اجرا شود .

12413779-vector-illustration-of-clipboard-with-pen-on-white-background

برای اینکار می بایست ابتذا فایل PHP مورد نظر خود را در www یا htdocs لوکال قرار بدهید سپس با رفتن به تنظیمات Windows Task Scheduler و تعریف یک دستور و زمان بندی اجرا، اسکریپت مورد نظر را بطور مداوم اجرا کنید .

(بیشتر…)

ساخت برنامه از کدهای تحت وب برای همه ی سیستم عاملهای دسکتاپ

کدهای تحت وب برای اجرا همیشه احتیاج به وب سرور و در بعضی مواقع دیتابیس دارند و مانند برنامه های داخل ویندوز و مک و لینوکس بصورت اجرا شدنی نیستند ، بعضی مواقع لازم میشود که یک برنامه تحت وب که مثلا با PHP  یا Python نوشته شده را درون ویندوز بدون مرورگر اجرا کرد ، مثلا اینترنت برای مشتری قراهم نیست و شما میخواهید پیش نمایشی از سایتی که برایش طراحی کردید را به او نشان دهید ئ قصد نصب وب سرور داخلی و تنظیمات و راهنمایی استفاده هم ندارید در این حالت یه مبدل کدهای شما به فایل اجرایی بدون نیاز به نصب با استفاده آسان خیلی به کمکتان خواهد آمد . و از همه مهمتر برنامه در مرورگرهای قدیمی که HTML5 و CSS3 را پشتیبانی نمیکنند اجرا نمیشود ، تقریبا همان چیزی است که همه ی طراحان و برنامه نویسان میخواهند .

tidesdk نام برنامه ای است که این کار را به سرعت و به راحتی انجام می دهد کافیست کدها و برنامه ی مخصوص Developer ها را از سایت سازنده دانلود کنید و از  کدهای از قبل نوشته شده ی خود یک اپلیکیشن مثلا تحت ویندوز یا مک بسازید . استفاده از این برنامه هیچ دانش برنامه نویسی تحت ویندوز یا مک یا لینوکس لازم ندارد . کافیست دستور عمل و مستندات ساخت پروژه و دریافت پیکیج اجرایی را مطالعه کنید .در ضمن  این برنامه اوپن سورس و رایگان است .

tidesdk

(بیشتر…)

تجربه پرینت اطلاعات از مرورگر روی پرینترهای حرارتی

به تازگی برای یک پروژه ای که لازم بود اطلاعات از مرورگر مستقیما توسط یک فیش پرینتر (پرینتر حرارتی ) پرینت شود با مشکلاتی مواجه شده بودم که درنهایت موفق به حلشان شدم ، در این نوشته قصد دارم این مسائل و راه هایی که امتحان کردم را با شما اشتراک بگذارم که اگر روزی راهتان به این نوع پرینترها افتاد بتوانبد به سادگی با آنها کار کنید .


مسئله ای که در حین پرینت گرفتن مستقیم از مرورگر داشتم این بود که اندازه کاغذ پرینت شده قابل تنظیم و کنترل نبود وبه اندازه 287 میلیمتر که ارتفاع برگه ی A4است پرینت خالی گرفته میشد ، لازم بود بعد از اتمام پرینت اطلاعات چند خطی برش کاغذ اتفاق بیفتد وگرنه کاغذ زیادی مصرف میشد ، همچنین یک سری اطلاعات مثل آدرس وب و شماره صفحه و تاریخ هم روی برگه خودکار چاپ میکرد و از همه ی اینها مهم تر باز شدن Popup انتخاب پرینتر بود ، این پروژه چون مخصوص کاربران یک کیوسک ساخته شده بود می بایست پرینت مستقیم و بدون این تفاسیر گرفته میشد و فیش تحویل کاربر داده میشد.

(بیشتر…)

اتصال PHP به Microsoft sql server توسط sqlsrv

MS SQL یکی از انواع دیتابیس ارائه شده توسط ماکروسافت می باشد ، این دیتابیس معمولا بر روی windows server نصب شده و میتوان هم تحت وب و هم تحت پلاتفرم های نرم افزاری دیگر مثل C sharp و … از آن استفاده نمود ، اما موضوعی که در این نوشته قصد شرح آن را دارم اتصال به آن توسط PHP است ، دیتابیسی که در PHP معمولا با آن کار می شود Mysql می باشد که بصورت پیش فرض تمامی امکانات برای این اتصال در وب سرور های شبیه Apache فراهم شده است ، اما متاسفانه برای اتصال به ms sql این امکانات بصورت پیش فرض فراهم نیست. در گذشته و ورژن های قبلی PHP از دستور mssql_connect برای اتصال استفاده میشد اما در ورژن های اخیر PHP و ویندوزهای پیشرفته تر مثل 7 این دستور به خوبی کار نمی کند و ماکروسافت را مجبور به ارائه درایوری به نام Sqlsrv کرده است .


(بیشتر…)

تبدیل خودکار لینکهای نسبی به مطلق در متن با PHP

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

(بیشتر…)

اضافه کردن فیلد جدید به فرم ثبت نام جوملا

ممکن است برای عضو گیری جوملا لازم باشد اطلاعات بیشتری را از کاربر دریافت کنید مثلا تلفن یا آدرس و …

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

ابتدا برای هر فیلدی که میخواهید اضافه کنید می بایست با phpMyadmin یک ستون در جدول Jos_user بسازید ، مثلا برای ساختن فیلدهای آدرس و تلفن میتوانید بطور دستی این کار را بکنید یا عبارات زیر را در قسمت SQL اجرا کنید .

(بیشتر…)

ساخت منو و زیر منو با اطلاعات داینامیک دیتابیس با PHP

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

(بیشتر…)

استفاده ساده از Cache در درخواست های AJAX

استفاده از Cache ، درخواست های مکرر به سرور را کاهش می دهد ، چون هر درخواست AJAX که از طرف مرورگر به سرور داده شود از نظر سرور یک درخواست جدید است در بعضی مواقع که اطلاعات طی درخواست های مکرر تغییر نمی کنند می توان از اطلاعات ذخیره شده درخواست قبل استفاده نمود . مثلا در صورتی که اطلاعات آماری هفته ی قبل که با درخواستهای مکرر تغییر نمی کنند را با AJAX می خواهیم از دیتابیس دریافت نماییم بهتر است فقط یکبار درخواست به سرور داده شود . البته چون این اطلاعات را در متغیر جاواسکریپتی ذخیره می کنیم فقط با کلیک های پی در پی از Cache استفاده می شود و  بعد از یک رفرش این متغییر از بین می رود و دوباره به سرور درخواست فرستاده می شود .

مثلا یک نمونه در این دمو آماده کرده ام که در بار اول اطلاعات با AJAX گرفته می شود ، سپس با کلیکهای پی در پی بدون وقفه همان اطلاعات قبلی نمایش داده می شود (در firebug می توانید درخواست های AJAX را مشاهده کنید که فقط یکبار انجام می شود .)
(بیشتر…)

مروری بر Regular Expression

Regular Expression یک الگو برای داده ها را نشان می دهد که می توان کنار هم قرار گرفتن کاراکتر های یک رشته رو تحلیل کرد ، مثلا می توان مشخص کرد که رشته ی مورد نظر چند کاراکتر باشد و اعداد و حروف چگونه در کنار هم قرار بگیرند و حتی چه عدد و حروفی استفاده شوند ، همه ی این ها را می توان با الگوهای Regular Expression مشخص کرد ، میتوان فقط رشته هایی ساخت که از یک الگوی خاص پیروی کنند یا مطابق با الگوی خاصی باشند ، می توان رشته های مختلف را با این الگو مقایسه کرد و در صورت صحیح بودن از آنها استفاده نمود ، مثلا آدرس ایمیل یک الگوی خاصی دارد که تشکیل شده از @ و . و چند کلمه ی حروفی است ، برای اینکه چک شود که رشته ی وارد شده صحیح است یا نه آن را با الگویی مقایسه می کنیم .


(بیشتر…)

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

داشتن قسمت مدیریت فایل با قابلیهای کامل برای کاربران (و نه فقط مدیر) یک امکان جالبی است ، مثلا برای هر کاربر یک گروه یک فایل منیجر با سطح دسترسی خاص میتوان ایجاد کرد . داشتن فضای اختصاصی و ایجاد و جذف و تغییر نام پوشه ها و فایلها و انتقال و کپی و … با استفاده از AJAX از دیگر امکانات فایل منیجری است که قصد معرفی آن را دارم .

(بیشتر…)