ُStrategy Pattern or Input Validator
تاریخ يكشنبه ۱۳ مرداد ۱۳۸۷
بی شک یکی از مشکلات برنامه نویسان Valid کردن اطلاعات ورودی هست . معمولا هم ما با استفاده از IF ... ELSE کار خودمونو راه می ندازیم. اما بهتره از Strategy Pattern استفاده بشه . بی شک به شما خیلی بیشتر کمک می کنه . برنامه هم خانایی بیشتری پیدا می کنه .
بهتره بریم سر اصل مطلب .
- <?php
- /**
- * کلاس اصلی
- */
- class Validator {
- /**
- * Private
- * $errorMsg نگهداری خطا ها در صورت وجود
- */
- var $errorMsg;
- //! A constructor.
- /**
- * ساخت یک شی validator جدید
- */
- function Validator () {
- $this->validate();
- }
- /**
- * @return void
- */
- function validate() {
- }
- /**
- * اضافه کردن خطا به آرایه
- * @return void
- */
- function setError ($msg) {
- $this->errorMsg[]=$msg;
- }
- /**
- * بازگشت درست و غلط
- * @return boolean
- */
- function isValid () {
- return false;
- } else {
- return true;
- }
- }
- /**
- * بدست آوردن خطا ها
- * @return string
- */
- function getError () {
- }
- }
- /**
- *valid کردن username
- */
- class ValidateUser extends Validator {
- /**
- * $user متغیر مورد نیاز
- */
- var $user;
- /**
- * اخت یک شی validatoruser جدید
- * @param $user the string to validate
- */
- function ValidateUser ($user) {
- $this->user=$user;
- Validator::Validator();
- }
- /**
- * Validates کردن username
- * @return void
- */
- function validate() {
- $this->setError('Username contains invalid characters');
- }
- $this->setError('Username is too short');
- }
- $this->setError('Username is too long');
- }
- }
- }
- /**
- * Validate کردن password
- */
- class ValidatePassword extends Validator {
- /**
- * $pass متغیر مورد نیاز
- */
- var $pass;
- /**
- * $conf متغیر تکرار کلمه عبور
- */
- var $conf;
- /**
- * ساخت ValidatePassword شی جدید
- * @param $pass the string to validate
- * @param $conf to compare with $pass for confirmation
- */
- function ValidatePassword ($pass,$conf) {
- $this->pass=$pass;
- $this->conf=$conf;
- Validator::Validator();
- }
- /**
- * Validates کردن password
- * @return void
- */
- function validate() {
- if ($this->pass!=$this->conf) {
- $this->setError('Passwords do not match');
- }
- $this->setError('Password contains invalid characters');
- }
- $this->setError('Password is too short');
- }
- $this->setError('Password is too long');
- }
- }
- }
- /**
- * Validates کردن email address
- */
- class ValidateEmail extends Validator {
- /**
- * $email متغیر مورد نیاز
- */
- var $email;
- /**
- * جدید ValidateEmail ساخت شی
- * @param $email the string to validate
- */
- function ValidateEmail ($email){
- $this->email=$email;
- Validator::Validator();
- }
- /**
- * Validates کردن email address
- * @return void
- */
- function validate() {
- $pattern=
- "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
- $this->setError('Invalid email address');
- }
- $this->setError('Address is too long');
- }
- }
- }
- ?>
این هم مثال
- <?php
- if ( $_POST['register'] ) {
- require_once('lib/Validator.php');
- $v['u']=new ValidateUser($_POST['user']);
- $v['p']=new ValidatePassword($_POST['pass'],$_POST['conf']);
- $v['e']=new ValidateEmail($_POST['email']);
- foreach($v as $validator) {
- if (!$validator->isValid()) {
- while ($error=$validator->getError()) {
- $errorMsg.="<li>".$error."</li>\n";
- }
- }
- }
- } else {
- }
- } else {
- ?>
- <h2>Create New Account</h2>
- <form action="<?php echo ($_SERVER['PHP_SELF']); ?>" method="post"><p>Username: <input type="text" name="user"></p><p>Password: <input type="password" name="pass"></p><p>Confirm: <input type="password" name="conf"></p><p>Email: <input type="text" name="email"></p><p><input type="submit" name="register" value=" Register "></p></form>
- <?php
- }
- ?>
امید وارم مورد توجه شما دوستان عزیز قرار بگیره .
مبارزه مستقیم با header already sent by
تاریخ جمعه ۱۱ مرداد ۱۳۸۷
یکی از بزرگترین مشکلات برنامه نویسان مبتدی خطایHeader AlReady Sent By File است .
به نظر من بهترین راه برای فرار از این خطا استفاده از ob_start است . پیشنهاد می کنم حتما از این تابع در برنامه های خودتون استفاده کنید . بابت دیر به دیر به روز شدن وبلاگ هم عذر می خام . بی نهایت سرم شلوغه . اصلا وقت نمی کنم بیام بالا . موفق و پیروز باشید.
عذر خواهی
تاریخ سه شنبه ۲۱ خرداد ۱۳۸۷
متا سفانه قسمت تماس با من کار نمی کنه !
عذر خواهی بنده رو بپذیرید.
نویسنده hidensoft > موضوع مطالب روزانه > لینک ثابت > نظرات : 3
webbyawards
تاریخ چهارشنبه ۰۸ خرداد ۱۳۸۷
webbyawwards.com هر سالبهترین سایت هارو انتخاب می کنه ، البته از نظر طراحی
یکی از نکات قابل توجه در این سایت اینه که بیشتر به ظرافت کار اهمیت داده میشه تا نمای ظاهری
به نظر من برای الگو گرفتن در طراحی سایت می تونید با مراجعه به این سایت نمونه کار های بسیار خوبی رو ببینید.
نویسنده hidensoft > موضوع مطالب روزانه > لینک ثابت > نظرات : 0
سوتی در روزنامه همشهری
تاریخ چهارشنبه ۲۵ ارديبهشت ۱۳۸۷
بعد از سوتی های زنجیره ای در اخبار شبکه 2 و 1 حالا نوبت به روزنامه همشهری رسیده تا با یک سوتی جالب هم یه سری رو بخندونه هم یه توهینی به مهندسین کامپیوتر کرده باشه .

برای نمایش کامل عکس روی عکس کلیک کنید.
نویسنده hidensoft > موضوع مطالب روزانه > لینک ثابت > نظرات : 0
نگاهی تازه به JQuery
تاریخ سه شنبه ۲۴ ارديبهشت ۱۳۸۷
jQuery Virtual Tour یک اسکریپت جاوا اسکریپت است که بر روی فریم ورک JQuery نوشته شده و به شما قدرت ایجاد یک فضای 3 بعدی را می دهد . البته این اسکریپت فقط گردش به سمت چپ و راست انجام می دهد .
یکی از نکات جالب این اسکریپت سرعت بالای آن در گردش به دو سمت می باشد .
حرکت جالبی بود که گروه طراحی صفحات وب open studio ، با امید اینکه هر روز اسکریپت های کم حجم تر و پیشرفته تر ساخته بشه .
تغییر دکوراسیون !
تاریخ جمعه ۲۰ ارديبهشت ۱۳۸۷
بنا به دلایل مالی دیگه قادر به ادامه در زمینه Web APP نیستم . در شهر جدیدی که در حال اقامت هستم دیگه خبری از مشتری برای وبلاگ ویا وبسایت نیست .
من هم تسمیم گرفتم برم سراغ یه زبان که اونجا نیاز داشته باشند.
واسه اینم بین دلفی و وی بی ، وی بیس رو انتخاب کردم .
نمی دونم دوباره سراغ وی بی میام یا نه ! امید ولارم بتونم دوباره برگردم
خدا حافظ وب ، سلام ویندوز !
نویسنده hidensoft > موضوع مطالب روزانه > لینک ثابت > نظرات : 4
Ajax Gallery
تاریخ پنجشنبه ۲۹ فروردين ۱۳۸۷
Ajax Gallery یک استکریپت گالری است که توسط سیستم آژاکس کار می کند . این اسکریپت عکس ها را توسط سیستم آژاکس لود می کند و دارای یک نوار Scroll می باشد که شما می توانید با حرکت دادن این نوار عکس مورد نظرتان را انتخاب کنید ، این اسکریپت یک سیستم اسلاید هم دارد که خیلی زیبا کار می کند.
برای دانلود گالری اینجا و برای کسب اطلاعات بیشتر اینجا را کلیک کنید.
نویسنده hidensoft > موضوع Ajax Script > لینک ثابت > نظرات : 3
آموزش ساخت لوگین
تاریخ سه شنبه ۲۷ فروردين ۱۳۸۷
امروز می خوام آموزش ساختن یک لوگین ساده با PHP و session رو بدم. چون قراره یک آموزش ساده باشه ، فقط از دوفایل استفاده می کنیم :
1- login.php
2- admin.php
login.php همون فایلی هست که ما با اون لوگین می کنیم و admin.php فایلی هست که باید فقط کسی که لوگین کرده بهش دسترسی داشته باشه.
پس یک فایل با نام login.php ایجاد می کنیم. توجه داشته باشید برای اینکه بتونیم از سشن استفاده کنیم باید در اولین خط بعد از تگ PHP از session_start استفاده کنیم :
- <?php
- if ($_POST['username'] == mysql_real_escape_string ('myusername') and $_POST['password']==mysql_real_escape_string ('mypassword'))
- {
- $_SESSION['login'] = 'admin';
- }
- ?>
سپس کد HTML برای لوگین رو می نویسیم :
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
- <title>Login</title>
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
- </head>
- <form action="login.php" method="post">
- <input type="text" name='username'>
- <input type="password" name='password'>
- <input type="submit" value="ورود">
- </form>
- </body>
- </html>
در ابتدای فایل admin.php هم این کد رو برای اینکه بفهمیم کسی لوگین کرده یا نه میگذاریم :
- <?php
- {
- }
- ?>
- Hello , Your Logged in !
توی فایل login.php نگاه می کنیم که آیا username & password وارد شده مطابق با اون چیزی که ما می خوایم هست یا نه ! اگه بود در آرایه سشن مقداری رو قرار می دیم ، در فایل admin.php بررسی می کنیم که آیا اون مقدار در سشن وجود داره یا نه ، اگه وجود نداشت کاربر رو به فایل login.php ارجاع می دیم. فکر نمی کنم زیاد سخت باشه ! اگه مشکلی وجود داشت ، بپرسید.
می تونید این فایل رو هم دانلود کنید ، همین اسکریپتی هست که اینجا نوشتم.
امید وارم مورد قبول واقع شده باشه .
XAJAX V.0.5 beta 4 Released
تاریخ يكشنبه ۲۵ فروردين ۱۳۸۷
xajax یک پروژه باز متن است که به شما کمک می کند بدون استفاده از جاوا اسکریپت از Ajax استفاده کنید . با توجه به پیشرفت این پروژه به نظر من کم کم به یک پروژه شناخته شده تبدیل می شه ، یکی از نقاط قوط این پروژه Community قوی است. این پروژه بصورت کامل OOP است و این باعث شده که استفاده از آن آسان شود. در حال حاضر جدید ترین نسخه این پروژه V.0.5 beta 4 است.
برای دانلود این پروژه به اینجا ، برای کسب اطلاعات بیشتر به اینجا مراجعه کنید.
اگه تونستم حتما یه آموزش ازش میگذارم.





