سوكت پروگرامينگ
طريقه ساخت كپچا(capcha) يا همون تاييديه تصويري
- مرحله اول: فایل کتابخانه php-captcha.inc.php را از لینک زیر دانلود کنید: کد: http://www.ejeliot.com/samples/php-captcha/download.php - مرحله دوم: فایل دانلود شده را به پوشه سایت خود انتقال داده و سپس دو فایل با نام های visual-captcha.php و audio-captcha.php اضافه کرده و کد های زیر را در آن ها بنویسید:فایل visual-captcha.php: کد PHP: <?php require('php-captcha.inc.php'); $aFonts = array('fonts/VeraBd.ttf', 'fonts/VeraIt.ttf', 'fonts/Vera.ttf'); $oVisualCaptcha = new PhpCaptcha($aFonts, 200, 60); $oVisualCaptcha->Create();?> فایل audio-captcha.php: کد PHP: <?php require('php-captcha.inc.php'); $oAudioCaptcha = new AudioPhpCaptcha('/usr/bin/flite', '/tmp/'); $oAudioCaptcha->Create();?> این دو فایل وظیفه ساختن تصویر و صدای CAPTCHA را بر عهده دارند. پوشه ای با نام fonts ایجاد کنید و چند font (انگلیسی) در آن قرار دهید. سپس مقادیر موجود در آرایه aFonts$ فایل visual-captcha.php را با فونت های خود، تغییر دهید. برای تولید صدا نیز از انجین Flite استفاده کنید. می توانید آن را از لینک زیر دانلود کرده و در وب سرور نصب کنید: کد: http://www.speech.cs.cmu.edu/flite/ محل نصب انجین را می بایست در فایل audio-captcha.php ادیت کنید. (usr/bin/flite/) تنها چیزی که باقی مانده، اضافه کردن کد CAPTCHA به فرم است. پس از اینکه فرم مورد نظر رو طراحی کردید، ما به 4 خط کد اضافی نیاز داریم: 1. کد تصویر CAPTCHA کد HTML: "visual-captcha.php" width="200" height="60" alt="Visual CAPTCHA" /> 2. کد صدای CAPTCHA کد HTML: "audio-captcha.php">Can't see the image? Click for audible version 3. کد TextBox مربوط به CAPTCHA کد HTML: "text" name="user_code" size="20"> 4. کد پردازش صحت ورود داده توسط کاربر با PHP کد PHP: <?php require('php-captcha.inc.php'); if (PhpCaptcha::Validate($_POST['user_code'])) { echo 'Valid code entered'; } else { echo 'Invalid code entered';}?> همین! CAPTCHA شما آماده استفاده است. آن را امتحان کنید! حال اجازه دهید کمی این تصویر را دستکاری کنیم... بدیهی است که تمام تغییرات مورد نیاز خود را باید در فایل visual-captcha.php و قبل از کد ;()$oVisualCaptcha->Create اعمال کنیم. اولین تغییر رو هدیه می دهم به تمام دوستداران Copyright!! با اضافه کردن کد زیر، می توانید یک منبع برای کد خود ایجاد کنید: کد PHP: $oVisualCaptcha->SetOwnerText('Source: www.barnamenevis.com'); حالا بیایید برای کاراکترها سایه ایجاد کنیم: کد PHP: $oVisualCaptcha->DisplayShadow(true); حال میخواهیم از تصویر Background مشخصی استفاده شود، یک پوشه به نام images ساخته و تصویر مورد نظر خود را در آن قرار دهید (معمولا background های 100x100 استفاده می شود)، حال کد زیر را اضافه کنید: کد PHP: $oVisualCaptcha->SetBackgroundImages('images/captcha.gif'); خوب، حالا دوست دارید نوشته های موجود در تصویر رنگی شوند؟! کافی است کد زیر را اضافه کنید: کد PHP: $oVisualCaptcha->UseColour(true); خوب، اینم ...
ایرادهای طراحی وب
وجود اينگونه ايرادها سبب دفع بازديدكننده وبسايت شما ميشودعدم درج قیمت محصولات :برای بسیاری از مشتریان یافتن سریع قیمت یك كالا مهم است .· موتوری جستجوی انعطاف ناپذیر : كه كاربر را ملزم به ورود پارامترهای زیادی می كنند .· پیمایش عرضی صفحات :كاربران علاقه ای به پیمایش افقی صفحات ندارند .· اندازه ثابت فونت ها ومتون : افراد بالای 40 سال با حروف نازك یا كوچك مشكل دارند .· انبوهی متون :معمولا سایت های حاوی متون حجیم ، خسته كننده هستند .· پنجره های بازشونده خودكار : كاربران ترجیح می دهند كه خودشان مقصد را تعیین كنند .· جمع آوری آدرس پست الكترونیك بدون هیچ روند امنیتی :كاربران باید كاملا مطمئن و متقاعد شود .· آدرسهای طولانی یا پیچیده صفحات :كار بر روی آدرسهایی كه بیش از 75 كاراكتر دارند مشكل است .· لینك های ایمیل در مكان نامناسب :باید كاملا برجسته ومشخص و در مكانهای مناسب باشد.· بازگشت كند یا نا موفق به صفحات قبل :كلید Back دومین دكمه مورد استفاده كاربران است .· رابط گرافیكی ( GUI ) غیر استاندارد :برداشت از عناصر و اشیای موجود در برنامه ها تثبیت شده است .· نبود بیوگرافی در سایت ها :وجود بیوگرافی باعث ایجاد جو اطمینان در خوانندگان می شود.· ضعف آرشیو:در اغلب مواقع اطلاعات قدیمی هم مورد استفاده كاربران قرار می گیرد . · لینك های متعدد برای رسیدن به صفحات خاص :كاربران مایل به این كار نیستند.· استفاده پیش از موعد از امكانات پیشرفته : استفاده از امكاناتی مانند CHAT ، ایجاد انجمن های گفتـگو ، ایمیـل رایگان ، نقشه 3 بعـدی سایت وغیـره بارمالی زیادی را بر مدیران سایت تحمیل می كنند .· بارگزاری كند صفحات :وجود گرافیك های سنگین آزار دهنده خواهد بود .· ساختارهای تبلیغاتی : كاربران معمولا از مشاهده ساختارهای تبلیغاتی خودداری می كنند .· رسالت و هدف نامشخص سایت : باید نوع سایت از جنبه های تجاری یا اطلاع رسانی مشخص باشد .· طراحی اختصاصی برای افراد خاص :سایت بایدبرای همه كاربران نه فقط متخصصین قابل استفاده باشد .· لینك به سایتهای دیگر : به دلیل فلسفه وساختار متفاوت طراحی نباید تعداد لینك های خارج از سایت زیاد باشند .· فـراموش كـردن هزینه پشتیبـانی سایت :حداقل به اندازه 50 درصد از هزینه راه اندازی است . · تلقی از سایت به عنوان یك رسانه دست دوم :سایت با تلویزیون ، روزنامه یا بروشور فرق های اســاسی دارد . بنـابراین نباید از آنها كپی برداری كند . از طرفی ارتباط ما را به عنوان یك رسانه تمام وقت با افراد متعددی برقرار می كند ونباید آن را دست كم گرفت .· لینك های تكراری از لحاظ محتوا : مثلا" لینك یك تبلیغ بعد از ورود به آن نباید حاوی همان لینك تبلیغ ...
آشنايي با A(Automatic Private IP Addressing) APIPA
APIPA چيست ؟از آنجايي كه APIPA عملكري تا اندازه اي شبيه به DHCP دارد بنابراين اين بحث را با يك سوال شروع ميكنم سوال : در صورتی كه پيكربندی پروتكل TCP/IP بر روی يك كامپيوتر بگونه ای انجام شده باشد كه كامپيوتر و يا دستگاه شبكه ای مورد نظر را ملزم به استفاده از خدمات سرويس دهنده DHCP می نمايد ( تنظيمات انجام شده در صفحه Properties پروتكل TCP/IP ) ولی در عمل سرويس دهنده وجود نداشته باشد و يا سرويس گيرندگان قادر به برقراری ارتباط با آن نباشند و يا برای سرويس دهنده DHCP مشكل خاصی ايجاد شده باشد ، تكليف سرويس گيرندگان و متقاضيان استفاده از خدمات سرويس دهنده DHCP چيست ؟ در چنين مواردی سرويس گيرندگانی كه بر روی آنان يكی از نسخه های ويندوز ( به جزء ويندوز NT ) نصب شده است ، می توانند از APIPA ( برگرفته از Automatic Private IP Addressing ) استفاده نمايند . با استفاده از سرويس فوق كه صرفا" در شبكه های كوچك قابل استفاده خواهد بود ( حداكثر 25 دستگاه موجود در شبكه ) ، هر يك از سرويس گيرندگان می توانند به صورت تصادفی يك آدرس IP خصوصی را بر اساس مشخصات جدول زير به خود نسبت دهند . آدرس رزو شده توسط APIPA 169.254.0.1 TO 169.254.255.254 Subnet Mask 255 . 255 . 0 . 0 و اما چند نكته در ارتباط با روش آدرس دهی APIPA : زمانی كه يك سرويس گيرنده پاسخ مناسبی را از سرويس دهنده DHCP دريافت ننمايد ، پس از مدت زمان كوتاهی يك آدرس تصادفی را از شبكه دريافت می نمايد . با توجه به اين كه سرويس گيرنده به صورت كاملا" تصادفی يك آدرس IP را انتخاب می نمايد ، همواره اين احتمال وجود خواهد داشت كه يك كامپيوتر آدرسی را انتخاب نمايد كه قبلا" توسط كامپيوتر ديگری استفاده شده باشد . برای حل اين مشكل ، پس از انتخاب يك آدرس IP توسط سرويس گيرنده ، يك بسته اطلاعاتی broadcast شامل آدرس IP توسط سرويس گيرنده در شبكه ارسال و بر اساس پاسخ دريافتی ، در خصوص نگهداری و يا آزادسازی آدرس IP تصميم گيری می گردد. اطلاعات ارائه شده توسط APIPA ، يك آدرس IP و يك Subnet mask می باشد و ساير اطلاعلاتی كه عموما" توسط سرويس دهنده DHCP ارائه می گردد را شامل نمی شود . مثلا" با استفاده از APIPA نمی توان آدرس gateway پيش فرض را در اختيار سرويس گيرندگان قرار داد . بنابراين مبادله اطلاعات محدود به كامپيوترهای موجود در يك شبكه محلی كوچك می گردد كه تماما" دارای فضای آدرس دهی شبكه 0 . 0 . 254 . 169 می باشند . در صورت نياز می بايست ساير اطلاعات لازم در ارتباط با پيكربندی پروتكل TCP/IP به صورت دستی مشخص گردد. سرويس گيرندگانی كه از APIPA استفاده می نمايند به صورت ادواری و در بازه های زمانی پنج دقيقه ، شبكه را به منظور وجود يك سرويس ...