بایگانی دسته‌ی: PHP

Front End چیست و به چه کسی برنامه نویس فرانت اند می گویند؟

فرانت کار کیست

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

فرانت کار چیست؟

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

تمام آنچه در یک سایت مشاهده می کنید و تعاملاتی که با آن دارید را فرانت اند فراهم می کند. به عبارت دیگر، یک فرانت کار نتیجه کار بخش سرور را به شکل مناسب به کاربر نمایش می دهد.

فرانت اند کیست

تفاوت FRONT END  و BACK END چیست؟

یکی از ابهامات بسیار رایجی که در این زمینه وجود دارد این است که front end چه تفاوتی با back end دارد؟ بک اند به افرادی گفته میشود که با زبان های برنامه نویسی مختلف از جمله php و asp قابلیت های گوناگون را برای یک سایت پیاده سازی می کنند. این افراد تنها بر روی سرور کار می کنند و با دیتابیس و محاسبات سروکار دارند. بک اند در پشت صحنه حضور دارد و با کاربر سروکار نخواهد داشت. اما فرانت اند مانند بازیگران یک تئاتر یا فیلم هستند که نتیجه کار بک اند را نمایش می دهند.

از نظر اهمیت کار هر دو بخش بک اند و فرانت کار هر دو مهم بوده و بدون هم نتیجه کار ناقص خواهد بود. به همین دلیل نمی توان به طور واضح مشخص کرد که فرانت کار اهمیت بیشتری دارد یا بک اند، بلکه این دو مکمل هم هستند.

مهارت های فرانت کار چیست؟

مساله بسیار مهم بعدی که باید به آن پرداخته شود این است که مهارت های یک فرانت کار چیست؟ برای فرانت اند دولوپر شدن به چه مهارت هایی باید تسلط داشته باشیم؟ آیا front end نیاز به برنامه نویسی دارد؟ برخلاف تصور برخی از افراد تازه کار، فرانت اند نیز به برنامه نویسی احتیاج دارد. چون نیروی فرانت اند باید بتوانید با تسلط پیدا کردن بر زبان های برنامه نویسی متعدد از جمله جاوا اسکریپت، html، css تسلط داشته باشد.

علاوه براین، برای موفقیت در فرانت کار شدن، بهتر است به نرم افزارهای گرافیکی نیز تسلط داشته و قادر به ارائه آزمون های متعدد A/B باشید. یک فرانت کار باید بتواند با آزمون و تست های متعدد نتیجه حالت های مختلف کار را بررسی و در نهایت منجر به بهبود UX شود. البته به این نکته نیز باید اشاره شود که رابط کاربری و ظاهر یک سایت همیشه توسط فرانت اند دولوپر طراحی نمیشود. بلکه این کار توسط یکی از افراد متخصص در UI و طراحی رابط کاربری با فتوشاپ و فیگما و نمونه های مشابه انجام شده و فرانت اند بر اساس طرح آنها خروجی را پیاده سازی می کند.

ارتباط سئو و فرانت کار چیست؟

بدون شک هدف از راه اندازی یک سایت جذب مخاطب و کاربر می باشد و موتورهای جستجو بیشترین ترافیک را می توانند به سمت آنها هدایت کنند. به همین دلیل نمی توان از سئو سایت غافل شد و در ابتدایی ترین مراحل طراحی سایت نیز باید به آن توجه داشت. حال سوال این است، ارتباط سئو و فرانت کار چیست؟ آیا این دو به هم ارتباط دارند؟ لازم به ذکر است که بخش مهمی از سئو به رعایت استانداردها در مرحله طراحی ارتباط دارد. به عنوان مثال، سایت هایی که واکنش گرا نباشند از نظر گوگل استاندارد نبوده و تاثیر منفی بر سئو خواهد داشت.

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

فرانت اند همان Ui designer است؟

از دیگر ابهاماتی که وجود دارد این است که آیا UI designer همان فرانت اند کار است؟ ui دیزاینر فردی می باشد که به نرم افزارهای گرافیکی تسلط داشته و با شناخت استانداردها ظاهر یک سایت را بدون کد نویسی ارائه می دهد. پس از طراحی ظاهر سایت فایل psd آن در اختیار فرانت اند قرار گرفته و با کد نویسی پیاده سازی شده و برای کاربر نمایش داده میشود.

بازار کار فرانت اند چطور است؟

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

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

آموزش زبان های برنامه نویسی Fornt End

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

بهترین زبان های برنامه نویسی سال ۲۰۲۲ و درآمد آن ها

بهترین زبان های برنامه نویسی

بهترین زبان های برنامه نویسی سال ۲۰۲۲ یکی از مواردی می باشد که بسیاری از افراد تازه وارد به دنیای کد نویسی و وب به دنبال آن هستند. چون تنوع در زبان های برنامه نویسی بسیار زیاد بوده و در ابتدای راه اغلب افراد ترجیح می دهند گزینه هایی را انتخاب کنند که با استقبال بیشتری مواجه شده و بازار کار خوبی دارند. بدون شک بازار کار خوب تنها به معنای تقاضای زیاد نیست، بلکه درآمد ایده آل مد نظر است. به همین دلیل ما در آموزشگاه برنامه نویسی مشهد در ادامه به چند مورد از بهترین و پرطرفدارترین زبان های برنامه نویسی در سال ۱۴۰۱ پرداخته و متوسط درآمد آنها را بررسی خواهیم کرد.

درآمد بهترین زبان های برنامه نویسی

جاوا اسکریپت

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

لازم است بدانید که جاوا اسکریپت نه تنها بسیار پرطرفدار است، بلکه بازار کار بسیار خوبی دارد. به طوریکه می توان گفت، با تسلط پیدا کردن بر آن می توانید به درآمد متوسط ۱۰۱ هزار دلار سالانه در آمریکا و کشورهای غربی دست پیدا کنید. این زبان برنامه نویسی در ایران نیز در گروه پر درآمدترین زبان ها قرار گرفته است.

PHP ؛ بهترین زبان برنامه نویسی

یکی دیگر از قدیمی ترین و بهترین زبان های برنامه نویسی که همیشه در لیست محبوب ترین ها قرار دارد، پی اچ پی می باشد. زبان برنامه نویسی php بیشترین کاربرد را در برنامه نویسی سمت سرور دارد و یاهو و فیسبوک از گزینه های مطرحی هستند که در توسعه سایت خود از آن استفاده نموده اند. به چند دلیل php از پردرآمدترین زبان های برنامه نویسی محسوب میشود که یکی از آنها، کاربرد گسترده آن است. به عنوان مثال، نه تنها در اسکریپت نویسی سمت سرور، بلکه برای توسعه برنامه های دسکتاپ نیز می توان از آن استفاده نمود. درآمد php به طور متوسط سالانه ۱۰۷ هزار دلار می باشد. توجه داشته باشید که این درآمدها در آمریکا می باشد نه در ایران!

پایتون

به جرات می توان گفت، پایتون یکی از بهترین زبان های برنامه نویسی در سال ۲۰۲۲ بوده و به شدت بازار کار آن رو به رشد است. به دلیل کاربرد زبان برنامه نویسی پایتون در هوش مصنوعی، طراحی بازی های ویدئویی و ساخت انیمیشن های سه بعدی و همچنین توسعه وب و پیاده سازی برنامه های علمی و محاسباتی آینده ای بسیار روشن در انتظار آن است. در حال حاضر نیز بسیاری از برنامه نویسان مسلط بر پایتون به طور متوسط ۱۰۹ هزار دلار سالانه درآمد کسب می کنند. البته این درآمد بر اساس دستمزدهای پرداختی توسط شرکت ها می باشد و بدون شک افرادی که خود پروژه های خلاقانه را راه اندازی می کنند قطعا درآمد بیشتری کسب خواهند کرد.

؛ بهترین زبان برنامه نویسی گوگل

از دیگر زبان های برنامه نویسی بسیار محبوب و پردرآمد ۲۰۲۲ می توان به go اشاره کرد. این زبان برنامه نویسی توسط گوگل توسعه داده شد و گزینه ای کاربردی برای پروژه های بزرگ محسوب میشود. این زبان برنامه نویسی بیشتر برای کارهای علمی و همچنین استارت آپ ها کاربرد داشته و نمونه بارز آن uber می باشد که از go استفاده نموده است. برنامه نویسانی که با خلاقیت بالا از go استفاده می کنند، می توانند حداقل سالانه ۱۴۰ هزار دلار در آمریکا درآمد داشته باشند. جالب است بدانید که این درآمد تا ۲۶۰ هزار دلار نیز رشد می کند که به میزان تخصص برنامه نویس و تبهر آنها بستگی دارد.

زبان برنامه نویسی R

همیشه بهترین زبان های برنامه نویسی گزینه هایی که برای توسعه وب استفاده می شوند نمی باشند، بلکه برخی از آنها تنها در محاسبات و پروژه های علمی مورد استفاده قرار میگیرند. به عنوان مثال، زبان برنامه نویسی R از جمله مواردی می باشد که بیشتر برای محسبات غیر خطی و آماری و ماشین لرنینگ کاربرد دارد. این زبان برنامه نویسی آسان می باشد و براحتی می توانید کد نویسی را انجام دهید. علاوه براین، متن باز بوده و بر روی پلتفرم های مختلف به شکل پیوسته قابل اجرا است. افراد حرفه ای و مسلط به زبان برنامه نویسی R می توانند به طور متوسط ۹۰ تا ۱۳۵ هزار دلار سالانه در آمریکا درآمد کسب کنند.

سویفت SWIFT؛ بهترین زبانه برنامه نویسی اپل

توسعه اپلیکیشن های IOS یکی از بهترین روش ها برای کسب درآمد می باشد و در تمام دنیا و حتی ایران طرفداران خاص خودش را دارد. برای برنامه نویسی و توسعه این اپلیکیشن ها می توانید از زبان برنامه نویسی SWIFT استفاده کنید که به شدت محبوب بوده و بازار کار فوق العاده ای دارد. اگر در این زبان برنامه نویسی تخصص داشته باشید، سالانه در آمریکا به درآمد ۱۰۶ هزار دلار دست پیدا خواهید کرد.

زبان برنامه نویسی ++C

زبان برنامه نویسی سی و سی پلاس از گذشته تا امروز همیشه در لیست بهترین زبان های برنامه نویسی قرار گرفته و به شدت می توان از آن درآمد کسب کرد. این زبان برنامه نویسی در توسعه محصولات تجاری مختلف، صنعت ربات سازی، توسعه سیستم عامل ها، پزشکی و هوش مصنوعی کاربرد بسیار زیادی دارد. به همین دلیل افراد حرفه ای در این حوزه می توانند درآمدهای خوبی را در بازار کار بین المللی کسب کنند. در سال ۲۰۲۲ برنامه نویسیان سی و سی پلاس به طور متوسط ۱۱۸ هزار دلار سالانه در آمریکا درآمد کسب می کنند.

علاوه بر موارد فوق، متلب، RUBY و اسکالا نیز از دیگر مواردی هستند که به عنوان بهترین زبان های برنامه نویسی با درآمد بالا در ۲۰۲۲ شناخته شده اند. دوره های کلاس برنامه نویسی در مشهد آکادمی برنامه نویسان بستر مناسبی را برای تسلط پیدا کردن به این زبان های محبوب فراهم می کند. از جمله دوره های در حال برگزاری می توان به آموزش برنامه نویسی پایتون، PHP و غیره اشاره نمود.  

آموزش ساخت فرم ثبت نام با PHP و MySql

نحوه ثبت نام و ورود به سایت با php

ثبت نام کاربر برای ورود به سیستم یکی از مهم ترین اجزا در هر سایت می باشد. در مطلب آموزش ساخت فرم ثبت نام با PHP و MySQL  به شما یاد خواهیم داد که چطور در PHP  با پشتیبانی MYSQL فرآیند ثبت نام به ساده ترین شکل انجام شود. از مهم ترین ویژگی های کامپوننت های ارائه شده در این مطلب، سادگی و سبک بودن آن نسبت به سایر نمونه های مشابه می باشد. در ادامه با آکادمی برنامه نویسان؛ برگزار کننده دوره های آموزش طراحی سایت در مشهد همراه باشید.

نمونه کد آموزش ساخت فرم ثبت نام با PHP و MySQL

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

آموزش ساخت فرم ثبت نام با php و mysql

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

نحوه ایجاد فرم ثبت نام برای ورود به سایت با PHP

برای انجام این کار ابتد سه فرم ایجاد می کنیم برای ورود، ثبت نام و داشبورد برای این کد ها.

در ادامه کد HTML برای نمایش فرم ورود کاربر وجود ارائه شده است. در این فرم دو ورودی در نظر گرفته شده است که به کاربر اجازه می دهد تا با ورود نام کاربری و رمز عبور وارد شود. بدون این اطلاعات امکان، کد اعتبارسنجی امکان ورود را به کاربر نخواهد داد.

تابع loginValidation() شامل اسکریپ اعتبار سنجی می باشد. با ارسال فرم ورود، کد PHP اعتبار کاربر را تایید می کند. در شرایطی که کاربر تلاش کند تا با اطلاعات اشتباه وارد سایت شود، کد پیغام خطای ورود به سیستم نمایش داده خواهد شد. همچنین در این فرم امکان انتخاب فراموشی رمز عبور برای کاربر در نظر گرفته شده است تا در صورت لزوم از آن استفاده نماید.

login.php

<?php
use Phppot\Member;

if (! empty($_POST["login-btn"])) {
    require_once __DIR__ . '/Model/Member.php';
    $member = new Member();
    $loginResult = $member->loginMember();
}
?>
<HTML>
<HEAD>
<TITLE>Login</TITLE>
<link href="assets/css/phppot-style.css" type="text/css"
    rel="stylesheet" />
<link href="assets/css/user-registration.css" type="text/css"
    rel="stylesheet" />
<script src="vendor/jquery/jquery-3.3.1.js" type="text/javascript"></script>
</HEAD>
<BODY>
    <div class="phppot-container">
        <div class="sign-up-container">
            <div class="login-signup">
                <a href="user-registration.php">Sign up</a>
            </div>
            <div class="signup-align">
                <form name="login" action="" method="post"
                    onsubmit="return loginValidation()">
                    <div class="signup-heading">Login</div>
                <?php if(!empty($loginResult)){?>
                <div class="error-msg"><?php echo $loginResult;?></div>
                <?php }?>
                <div class="row">
                        <div class="inline-block">
                            <div class="form-label">
                                Username<span class="required error" id="username-info"></span>
                            </div>
                            <input class="input-box-330" type="text" name="username"
                                id="username">
                        </div>
                    </div>
                    <div class="row">
                        <div class="inline-block">
                            <div class="form-label">
                                Password<span class="required error" id="login-password-info"></span>
                            </div>
                            <input class="input-box-330" type="password"
                                name="login-password" id="login-password">
                        </div>
                    </div>
                    <div class="row">
                        <input class="btn" type="submit" name="login-btn"
                            id="login-btn" value="Login">
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script>
function loginValidation() {
    var valid = true;
    $("#username").removeClass("error-field");
    $("#password").removeClass("error-field");

    var UserName = $("#username").val();
    var Password = $('#login-password').val();

    $("#username-info").html("").hide();

    if (UserName.trim() == "") {
        $("#username-info").html("required.").css("color", "#ee0000").show();
        $("#username").addClass("error-field");
        valid = false;
    }
    if (Password.trim() == "") {
        $("#login-password-info").html("required.").css("color", "#ee0000").show();
        $("#login-password").addClass("error-field");
        valid = false;
    }
    if (valid == false) {
        $('.error-field').first().focus();
        valid = false;
    }
    return valid;
}
</script>
</BODY>
</HTML>

در ادامه کد برای مشخص کردن اطلاعات اجباری و ورود حداقل اطلاعات توسط کاربر ارائه شده است. قبل از پردازش ثبت نام کاربر در PHP ، ابتدا از اعتبارسنجی جاوا اسکریپ عبور خواهد کرد.

با ارسال فیلدهای فرم ثبت نام، signupValidation() در جاوا اسکریپ فراخوانی میشود. در نهایت در شرایطی که فرمت ایمیل درست باشد و رمزهای عبور نیز با هم تناسب داشته و فیلدهای همگی پر شده باشند، تایید شده و وارد گام بعد خواهد شد.

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

user-registration.php

<?php
use Phppot\Member;
if (! empty($_POST["signup-btn"])) {
    require_once './Model/Member.php';
    $member = new Member();
    $registrationResponse = $member->registerMember();
}
?>
<HTML>
<HEAD>
<TITLE>User Registration</TITLE>
<link href="assets/css/phppot-style.css" type="text/css"
    rel="stylesheet" />
<link href="assets/css/user-registration.css" type="text/css"
    rel="stylesheet" />
<script src="vendor/jquery/jquery-3.3.1.js" type="text/javascript"></script>
</HEAD>
<BODY>
    <div class="phppot-container">
        <div class="sign-up-container">
            <div class="login-signup">
                <a href="index.php">Login</a>
            </div>
            <div class="">
                <form name="sign-up" action="" method="post"
                    onsubmit="return signupValidation()">
                    <div class="signup-heading">Registration</div>
                <?php
    if (! empty($registrationResponse["status"])) {
        ?>
                    <?php
        if ($registrationResponse["status"] == "error") {
            ?>
                    <div class="server-response error-msg"><?php echo $registrationResponse["message"]; ?></div>
                    <?php
        } else if ($registrationResponse["status"] == "success") {
            ?>
                    <div class="server-response success-msg"><?php echo $registrationResponse["message"]; ?></div>
                    <?php
        }
        ?>
                <?php
    }
    ?>
                <div class="error-msg" id="error-msg"></div>
                    <div class="row">
                        <div class="inline-block">
                            <div class="form-label">
                                Username<span class="required error" id="username-info"></span>
                            </div>
                            <input class="input-box-330" type="text" name="username"
                                id="username">
                        </div>
                    </div>
                    <div class="row">
                        <div class="inline-block">
                            <div class="form-label">
                                Email<span class="required error" id="email-info"></span>
                            </div>
                            <input class="input-box-330" type="email" name="email" id="email">
                        </div>
                    </div>
                    <div class="row">
                        <div class="inline-block">
                            <div class="form-label">
                                Password<span class="required error" id="signup-password-info"></span>
                            </div>
                            <input class="input-box-330" type="password"
                                name="signup-password" id="signup-password">
                        </div>
                    </div>
                    <div class="row">
                        <div class="inline-block">
                            <div class="form-label">
                                Confirm Password<span class="required error"
                                    id="confirm-password-info"></span>
                            </div>
                            <input class="input-box-330" type="password"
                                name="confirm-password" id="confirm-password">
                        </div>
                    </div>
                    <div class="row">
                        <input class="btn" type="submit" name="signup-btn"
                            id="signup-btn" value="Sign up">
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script>
function signupValidation() {
    var valid = true;

    $("#username").removeClass("error-field");
    $("#email").removeClass("error-field");
    $("#password").removeClass("error-field");
    $("#confirm-password").removeClass("error-field");

    var UserName = $("#username").val();
    var email = $("#email").val();
    var Password = $('#signup-password').val();
    var ConfirmPassword = $('#confirm-password').val();
    var emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;

    $("#username-info").html("").hide();
    $("#email-info").html("").hide();

    if (UserName.trim() == "") {
        $("#username-info").html("required.").css("color", "#ee0000").show();
        $("#username").addClass("error-field");
        valid = false;
    }
    if (email == "") {
        $("#email-info").html("required").css("color", "#ee0000").show();
        $("#email").addClass("error-field");
        valid = false;
    } else if (email.trim() == "") {
        $("#email-info").html("Invalid email address.").css("color", "#ee0000").show();
        $("#email").addClass("error-field");
        valid = false;
    } else if (!emailRegex.test(email)) {
        $("#email-info").html("Invalid email address.").css("color", "#ee0000")
                .show();
        $("#email").addClass("error-field");
        valid = false;
    }
    if (Password.trim() == "") {
        $("#signup-password-info").html("required.").css("color", "#ee0000").show();
        $("#signup-password").addClass("error-field");
        valid = false;
    }
    if (ConfirmPassword.trim() == "") {
        $("#confirm-password-info").html("required.").css("color", "#ee0000").show();
        $("#confirm-password").addClass("error-field");
        valid = false;
    }
    if(Password != ConfirmPassword){
        $("#error-msg").html("Both passwords must be same.").show();
        valid=false;
    }
    if (valid == false) {
        $('.error-field').first().focus();
        valid = false;
    }
    return valid;
}
</script>
</BODY>
</HTML>

در صفحه اصلی فرم ورود و لاگین بارگزاری میشود.

<?php
require_once __DIR__ . "/login.php";

سپس CSS برای پردازش نمونه کد ثبت نام کاربر در نظر گرفته میشود.

user-registration.css

.sign-up-container {
    border: 1px solid;
    border-color: #9a9a9a;
    background: #fff;
    border-radius: 4px;
    padding: 10px;
    width: 350px;
    margin: 50px auto;
}

.page-header {
    float: right;
}

.login-signup {
    margin: 10px;
    text-decoration: none;
    float: right;
}

.login-signup a {
    text-decoration: none;
    font-weight: 700;
}

.signup-heading {
    font-size: 2em;
    font-weight: bold;
    padding-top: 60px;
    text-align: center;
}

.inline-block {
    display: inline-block;
}

.row {
    margin: 15px 0px;
    text-align: center;
}

.form-label {
    margin-bottom: 5px;
    text-align: left;
}

input.input-box-330 {
    width: 250px;
}

.sign-up-container .error {
    color: #ee0000;
    padding: 0px;
    background: none;
    border: #ee0000;
}

.sign-up-container .error-field {
    border: 1px solid #d96557;
}

.sign-up-container .error:before {
    content: '*';
    padding: 0 3px;
    color: #D8000C;
}

.error-msg {
    padding-top: 10px;
    color: #D8000C;
    text-align: center;
}

.success-msg {
    padding-top: 10px;
    color: #176701;
    text-align: center;
}

input.btn {
    width: 250px
}

.signup-align {
    margin: 0 auto;
}

.page-content {
    font-weight: bold;
    padding-top: 60px;
    text-align: center;
}

تایید اعتبار فرم ورود و ثبت نام

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

پردازش ثبت نام کاربر در PHP

پس از ارسال جزئیات فرم، ثبت نام کاربر در PHP پردازش میشود.

کد زیر در ابتدای فرم ثبت نام PHP اضافه شده و بررسی می کند که آیا کاربر فرم را ارسال کرده است یا خیر؟ سپس متد registerMember() در مدل MEMBER فراخوانی میشود.

همان طور که در قطعه کد زیر مشاهده می کنید، کد member در زیر کلاس آن نمایش داده شده است.  این شامل تمام توابع مربوط به ثبت نام و ورود به سیستم می باشد.

تابع registerMember() بررسی می کند که آیا ایمیل ارسال شده از قبل وجود داشته است یا خیر؟ در صورت وجود ایمیل از قبل، کد خطا برگردانده میشود و در غیر این صورت، رکورد جدید در MySQL اضافه خواهد شد.

تابع loginMember() بررسی می کند که آیا اطلاعات وارد شده در فرم با آنچه در پایگاه داده ثبت شده است تطابق دارد یا خیر؟

Model/Member.php

<?php
namespace Phppot;

class Member
{

    private $ds;

    function __construct()
    {
        require_once __DIR__ . '/../lib/DataSource.php';
        $this->ds = new DataSource();
    }

    /**
     * to check if the username already exists
     *
     * @param string $username
     * @return boolean
     */
    public function isUsernameExists($username)
    {
        $query = 'SELECT * FROM tbl_member where username = ?';
        $paramType = 's';
        $paramValue = array(
            $username
        );
        $resultArray = $this->ds->select($query, $paramType, $paramValue);
        $count = 0;
        if (is_array($resultArray)) {
            $count = count($resultArray);
        }
        if ($count > 0) {
            $result = true;
        } else {
            $result = false;
        }
        return $result;
    }

    /**
     * to check if the email already exists
     *
     * @param string $email
     * @return boolean
     */
    public function isEmailExists($email)
    {
        $query = 'SELECT * FROM tbl_member where email = ?';
        $paramType = 's';
        $paramValue = array(
            $email
        );
        $resultArray = $this->ds->select($query, $paramType, $paramValue);
        $count = 0;
        if (is_array($resultArray)) {
            $count = count($resultArray);
        }
        if ($count > 0) {
            $result = true;
        } else {
            $result = false;
        }
        return $result;
    }

    /**
     * to signup / register a user
     *
     * @return string[] registration status message
     */
    public function registerMember()
    {
        $isUsernameExists = $this->isUsernameExists($_POST["username"]);
        $isEmailExists = $this->isEmailExists($_POST["email"]);
        if ($isUsernameExists) {
            $response = array(
                "status" => "error",
                "message" => "Username already exists."
            );
        } else if ($isEmailExists) {
            $response = array(
                "status" => "error",
                "message" => "Email already exists."
            );
        } else {
            if (! empty($_POST["signup-password"])) {

                // PHP's password_hash is the best choice to use to store passwords
                // do not attempt to do your own encryption, it is not safe
                $hashedPassword = password_hash($_POST["signup-password"], PASSWORD_DEFAULT);
            }
            $query = 'INSERT INTO tbl_member (username, password, email) VALUES (?, ?, ?)';
            $paramType = 'sss';
            $paramValue = array(
                $_POST["username"],
                $hashedPassword,
                $_POST["email"]
            );
            $memberId = $this->ds->insert($query, $paramType, $paramValue);
            if (! empty($memberId)) {
                $response = array(
                    "status" => "success",
                    "message" => "You have registered successfully."
                );
            }
        }
        return $response;
    }

    public function getMember($username)
    {
        $query = 'SELECT * FROM tbl_member where username = ?';
        $paramType = 's';
        $paramValue = array(
            $username
        );
        $memberRecord = $this->ds->select($query, $paramType, $paramValue);
        return $memberRecord;
    }

    /**
     * to login a user
     *
     * @return string
     */
    public function loginMember()
    {
        $memberRecord = $this->getMember($_POST["username"]);
        $loginPassword = 0;
        if (! empty($memberRecord)) {
            if (! empty($_POST["login-password"])) {
                $password = $_POST["login-password"];
            }
            $hashedPassword = $memberRecord[0]["password"];
            $loginPassword = 0;
            if (password_verify($password, $hashedPassword)) {
                $loginPassword = 1;
            }
        } else {
            $loginPassword = 0;
        }
        if ($loginPassword == 1) {
            // login sucess so store the member's username in
            // the session
            session_start();
            $_SESSION["username"] = $memberRecord[0]["username"];
            session_write_close();
            $url = "./home.php";
            header("Location: $url");
        } else if ($loginPassword == 0) {
            $loginStatus = "Invalid username or password.";
            return $loginStatus;
        }
    }
}

کد احراز هویت ورود در PHP

کد موجود در فایل login-form.php در بالا، بعد از ورود کاربر تابع احراز هوایت را فراخوانی می کند.

داشبورد کاربر

کد زیر داشبورد کاربر می باشد. این کد وظیفه نمایش پیام خوش آمدگویی به کاربر را برعهده دارد.

در بالای فایل home.php  ، بررسی اعتبارسنجی بر اساس جلسه یا Session صورت میگیرد. این کد برای اطمینان از این است که نشان دهد کاربران به این صفحه دسترسی ندارند و به صفحه ورود سیستم هدایت میشوند.

اگر کاربر به سیستم وارد نشده باشد، به این صفحه دسترسی پیدا می کند و وارد صفحه ورود خواهد شد.

<?php
session_start();
if (isset($_SESSION["username"])) {
    $username = $_SESSION["username"];
    session_write_close();
} else {
    // since the username is not set in session, the user is not-logged-in
    // he is trying to access this page unauthorized
    // so let's clear all session variables and redirect him to index
    session_unset();
    session_write_close();
    $url = "./index.php";
    header("Location: $url");
}

?>
<HTML>
<HEAD>
<TITLE>Welcome</TITLE>
<link href="assets/css/phppot-style.css" type="text/css"
    rel="stylesheet" />
<link href="assets/css/user-registration.css" type="text/css"
    rel="stylesheet" />
</HEAD>
<BODY>
    <div class="phppot-container">
        <div class="page-header">
            <span class="login-signup"><a href="logout.php">Logout</a></span>
        </div>
        <div class="page-content">Welcome <?php echo $username;?></div>
    </div>
</BODY>
</HTML>

Log out

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

<?php
// clear all the session variables and redirect to index
session_start();
session_unset();
session_write_close();
$url = "./index.php";
header("Location: $url");

Datasource.php

قطعه کد زیر پایگاه داده MYSQL/mysqli را نمایش می دهد. تنها در پروژه های MYSQL و PHP می توانید از آن استفاده نمایید.

<?php
/**
 * Copyright (C) Phppot
 *
 * Distributed under 'The MIT License (MIT)'
 * In essense, you can do commercial use, modify, distribute and private use.
 * Though not mandatory, you are requested to attribute Phppot URL in your code or website.
 */
namespace Phppot;

/**
 * Generic datasource class for handling DB operations.
 * Uses MySqli and PreparedStatements.
 *
 * @version 2.6 - recordCount function added
 */
class DataSource
{

    const HOST = 'localhost';

    const USERNAME = 'root';

    const PASSWORD = 'test';

    const DATABASENAME = 'db_rating';

    private $conn;

    /**
     * PHP implicitly takes care of cleanup for default connection types.
     * So no need to worry about closing the connection.
     *
     * Singletons not required in PHP as there is no
     * concept of shared memory.
     * Every object lives only for a request.
     *
     * Keeping things simple and that works!
     */
    function __construct()
    {
        $this->conn = $this->getConnection();
    }

    /**
     * If connection object is needed use this method and get access to it.
     * Otherwise, use the below methods for insert / update / etc.
     *
     * @return \mysqli
     */
    public function getConnection()
    {
        $conn = new \mysqli(self::HOST, self::USERNAME, self::PASSWORD, self::DATABASENAME);

        if (mysqli_connect_errno()) {
            trigger_error("Problem with connecting to database.");
        }

        $conn->set_charset("utf8");
        return $conn;
    }

    /**
     * To get database results
     *
     * @param string $query
     * @param string $paramType
     * @param array $paramArray
     * @return array
     */
    public function select($query, $paramType = "", $paramArray = array())
    {
        $stmt = $this->conn->prepare($query);

        if (! empty($paramType) && ! empty($paramArray)) {

            $this->bindQueryParams($stmt, $paramType, $paramArray);
        }
        $stmt->execute();
        $result = $stmt->get_result();

        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                $resultset[] = $row;
            }
        }

        if (! empty($resultset)) {
            return $resultset;
        }
    }

    /**
     * To insert
     *
     * @param string $query
     * @param string $paramType
     * @param array $paramArray
     * @return int
     */
    public function insert($query, $paramType, $paramArray)
    {
        $stmt = $this->conn->prepare($query);
        $this->bindQueryParams($stmt, $paramType, $paramArray);

        $stmt->execute();
        $insertId = $stmt->insert_id;
        return $insertId;
    }

    /**
     * To execute query
     *
     * @param string $query
     * @param string $paramType
     * @param array $paramArray
     */
    public function execute($query, $paramType = "", $paramArray = array())
    {
        $stmt = $this->conn->prepare($query);

        if (! empty($paramType) && ! empty($paramArray)) {
            $this->bindQueryParams($stmt, $paramType, $paramArray);
        }
        $stmt->execute();
    }

    /**
     * ۱٫
     * Prepares parameter binding
     * ۲٫ Bind prameters to the sql statement
     *
     * @param string $stmt
     * @param string $paramType
     * @param array $paramArray
     */
    public function bindQueryParams($stmt, $paramType, $paramArray = array())
    {
        $paramValueReference[] = & $paramType;
        for ($i = 0; $i < count($paramArray); $i ++) {
            $paramValueReference[] = & $paramArray[$i];
        }
        call_user_func_array(array(
            $stmt,
            'bind_param'
        ), $paramValueReference);
    }

    /**
     * To get database results
     *
     * @param string $query
     * @param string $paramType
     * @param array $paramArray
     * @return array
     */
    public function getRecordCount($query, $paramType = "", $paramArray = array())
    {
        $stmt = $this->conn->prepare($query);
        if (! empty($paramType) && ! empty($paramArray)) {

            $this->bindQueryParams($stmt, $paramType, $paramArray);
        }
        $stmt->execute();
        $stmt->store_result();
        $recordCount = $stmt->num_rows;

        return $recordCount;
    }
}

اسکریپ پایگاده داده MYSQL

اسکریپ SQL زیر ساختار ایجاد جدول در دیتابیس MYSQL را نمایش می دهد.

آموزش ساخت صفحه لاگین و فرم ثبت نام با php

اسکریپ زیر را در ریشه و روت PHP اضافه کنید تا اجرا شود:

sql/user-registration.sql

--
-- Database: `user-registration`
--

-- --------------------------------------------------------

--
-- Table structure for table `tbl_member`
--

CREATE TABLE `tbl_member` (
  `id` int(11) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(200) NOT NULL,
  `email` varchar(255) NOT NULL,
  `create_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_member`
--
ALTER TABLE `tbl_member`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_member`
--
ALTER TABLE `tbl_member`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

در تصویر زیر خروجی و نتیجه اجرای کدهای فوق را مشاهده می کنید. با ساده ترین شکل و با سبک ترین کدها موفق به پیاده سازی فرم ثبت نام و ورود کاربر در PHP شدید.

فرم ورود به سایت با php

آموزش ساخت صفحه لاگین با php

 

بزرگترین اشتباهات در شروع یادگیری کدنویسی  

اشتباهات در شروع یادگیری کدنویسی

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

اشتباه در انتخاب دوره آموزش کدنویسی

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

اشتباه در انتخاب زبان کدنویسی

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

ایده آل گرایی در شروع یادگیری کدنویسی

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

دنیای برنامه نویسی مسابقه نیست

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

آزمون و خطا داشته باشید

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

محدود به زمان و مکان نباشید – اشتباهات در شروع یادگیری کدنویسی

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

 

مراحل طراحی وب سایت کدام است؟

مراحل طراحی سایت

مراحل طراحی وب سایت یکی از مهم ترین مسائلی می باشد که اغلب برنامه نویسان در ابتدای ورود به این حوزه باید از آن آگاه باشند. با اطلاع از این گام ها می توان مسیر مشخص و بهتری را پیش رو داشت و بسیاری از سردرگمی ها ناخودآگاه کمرنگ میشوند. گستردگی دنیای برنامه نویسی و طراحی سایت هایی با قابلیت های مختلف اصلی ترین دلیل برای این حرف می باشد که قبل از شروع کار ابتدا باید از مراحل طراحی سایت آگاه باشید. آکادمی برنامه نویسان مشهد در ادامه به این سوال پاسخ خواهد داد که طراحی سایت را از کجا شروع کنیم؟

 

برنامه نویس بک اند هستید با فرانت اند؟

قبل از وارد شدن به مرور هر یک از مراحل مهم در طراحی سایت لازم است بدانید که برنامه نویسان این حوزه را می توان به دو گروه کلی تقسیم نمود که عبارتند از بک اند  (Back End) و فرانت اند (Front End). بک اند به گروهی از برنامه نویسان گفته میشود که مسئول برقراری ارتباط سایت با سرور و پایگاه داده ها می باشد و در مقابل فرانت اند بیشتر با ارتباط سایت با کاربر و ظاهر سایت سر و کار دارد. فعالیت در هر یک از این حوزه ها کاملا با هم متفاوت می باشد. البته برخی از برنامه نویسان در هر دو حوزه فعالیت دارند که به Full Stack معروف می باشند و از توانایی و تخصص بالایی برخوردار هستند. برای معرفی گام های طراحی سایت فرض را بر این می گذاریم که قصد دارید یک Full Stack باشید.

 

HTML را جدی بگیرید

سایت هایی که در دنیای امروز وجود دارند در دو گروه ایستا (Static) و پویا یا داینامیک تقسیم میشوند که در گروه اول سایت شامل صفحاتی با المان های ساده می باشد و تعامل کاربر و سایت بسیار اندک است. در مقابل سایت های داینامیک کاربر با سایت تعامل زیادی داشته و امروزه به شدت مورد توجه قرار گرفته اند. در طراحی ظاهر سایت های ایستا برای تعیین المان ها و عناصر موجود در ظاهر سایت و در حالت کلی طراحی ظاهر صفحه از زبان  HTML (Hyper Text Markup Language) یا زبان نشانه گذاری ابرمتن استفاده میشود. یادگیری HTML اولین مرحله طراحی سایت می باشد که تمام طراحان حرفه ای وب به آن مسلط می باشند و یادگیری آن نیاز به پیش زمینه دانش برنامه نویسی و تخصص ندارد.

 

جذاب کردن سایت با CSS

با توجه به اهمیت بسیار زیاد ظاهر سایت و تجربه کاربری، به مرور برای رفع کاستی های موجود در HTML زبان دیگری به نام CSS معرفی شد. با یادگیری CSS می توان فونت، رنگ و سایر المان ها و عناصر سایت را زیباتر و جذاب تر کرد. Cascading Style Sheets زبان ساده و جذابی می باشد که تسلط به آن می تواند خروجی کار طراحی سایت را بهتر کند و به نوعی مکمل HTML به شمار میرود.

 

یادگیری جاوا اسکریپت

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

 

انتخاب ابزارهای گرفیکی

طراحی گرفیک یکی از مهم ترین بخش ها در طراحی سایت می باشد که وظیفه آن طراحی ظاهر یک سایت در نرم افزارهای مختلف از قبیل فتوشاپ می باشد. یک فرانت اند باید بتواند طرح ارائه شده توسط طراح گرافیک را به کد تبدیل کند. برای اینکه بتوانید ظاهر سایت را راحت تر و در کمترین زمان انجام دهید، پیشنهاد می کنیم به یکی از نرم افزارهای گرافیکی طراحی وب از قبیل scketch مسلط شوید. این نرم افزار در طراحی اپلیکیشن های موبایل نیز کاربرد بسیار زیادی دارد.

 

برقراری ارتباط سایت با سرور با PHP

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

 

انتخاب IDE و Text editor برای طراحی سایت

تمام برنامه نویسان بک اند و فرانت اند درست مانند یک مکانیک به جعبه ابزار نیاز دارند و مسلما هر چه ابزارها قوی تر و کاملتر باشد در نهایت عملکرد و بازدهی بهتری را شاهد خواهید بود. انتخاب IDE و Text Editor یکی دیگر از گام های شروع طراحی وب سایت می باشد که به شما ابزارهایی را برای کدنویسی بهتر با خوانایی بالاتر ارائه می دهد. ویرایشگرهای متن یا Text Editorهای متنوعی در حال حاضر در دسترس می باشند که می توان آنها را انتخاب کرد که از معروف ترین آنها Microsoft Visual Studio، PhpStorm، Microsoft Expression Web می باشند.

از بهترین IDE ها برای طراحی وب سایت می توان به موارد زیر اشاره کرد:

  • Sublime Text
  • Xcode
  • Vim
  • NetBeans برای PHP
  • Pycharm برای پایتون

 

آموزش مقدماتی و پیشرفته مراحل طراحی وب سایت

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

ساخت فرم تماس با ما در PHP

آموزش PHP

فرم تماس با ما یکی از ابزارهای ضروری برای تبدیل کاربر به مشتری می باشد. در این مطلب قصد داریم به آموزش  ایجاد یک فرم با PHP برای تماس با ما بپردازیم  که رایگان بوده و می توانید بر روی وب سایت تان از آن استفاده نمایید. این فرم تماس واکنش گرا بوده و قابل استفاده بر روی دستگاه های مختلف می باشد.

فرم های تماس با ما، در ابتدا نوعی ارتباط سرد با کاربری که قرار است به مشتری تبدیل شود برقرار می کند. اهمیت بهترین فرم تماس با ما متاسفانه در سایت ها دچار آسیب شده است. به همین خاطر، ساخت یک فرم تماس در نگاه اول ساده می باشد و در واقع سخت است.

 

ایجاد یک فرم با php

در این آموزش ما یک فرم تماس با ما با PHP داریم تا کاربر بتواند سوالات، توضیحات، بازخورد و جزئیات بیشتری را ارسال کند. در این فرم دو فایل PHP در زمینه های مختلف با دو شیوه ی متفاوت وجود دارد. در اسکریپت index.php اطلاعات فرم ارسال شده در پایگاه داده ذخیره میشود. در فایل send_contact_mail.php‚  یک کد PHP را برای ارسال ایمیل به منظور ارسال اطلاعات تماس تایید شده قرار گرفته است.

رابط کاربری فرم تماس با ما

رابط کاربری فرم تماس با ما PHP با نام، ایمیل، موضوع و فیلد محتوا به کاربر نمایش داده میشود که برای این منظور از کد اسکریپت HTML استفاده شده است. اگر به دنبال کد واکنش گرا برای رابط کاربری فرم تماس با ما هستید، مقاله را بررسی کنید. در این کد HTML، رابط کاربری کاملا ساده در نظر گرفته شده و بیشتر تمرکز بر روی نشان دادن قابلیت ارسال ایمیل یا ذخیره اطلاعات در پایگاه داده باشد.

این فرم شامل اسکریپت اعتبارسنجی jQuery با مقادیر بولین می باشد. اگر تابع اعتبارسنجی مقدار true را برگرداند، آن فرم برای PHP تایید میشود. در غیر این صورت، پیام های اعتبارسنجی به منظور اشاره به اینکه کاربر اطلاعات اشتباه وارد نموده است، در فرم نمایش داده میشوند.

<html>
<head>
<title>PHP Contact Form</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div class="form-container">
        <form name="frmContact" id="" frmContact"" method="post"
            action="" enctype="multipart/form-data"
            onsubmit="return validateContactForm()">

            <div class="input-row">
                <label style="padding-top: 20px;">Name</label> <span
                    id="userName-info" class="info"></span><br /> <input
                    type="text" class="input-field" name="userName"
                    id="userName" />
            </div>
            <div class="input-row">
                <label>Email</label> <span id="userEmail-info"
                    class="info"></span><br /> <input type="text"
                    class="input-field" name="userEmail" id="userEmail" />
            </div>
            <div class="input-row">
                <label>Subject</label> <span id="subject-info"
                    class="info"></span><br /> <input type="text"
                    class="input-field" name="subject" id="subject" />
            </div>
            <div class="input-row">
                <label>Message</label> <span id="userMessage-info"
                    class="info"></span><br />
                <textarea name="content" id="content"
                    class="input-field" cols="60" rows="6"></textarea>
            </div>
            <div>
                <input type="submit" name="send" class="btn-submit"
                    value="Send" />

                <div id="statusMessage"> 
                        <?php
                        if (! empty($message)) {
                            ?>
                            <p class='<?php echo $type; ?>Message'><?php echo $message; ?></p>
                        <?php
                        }
                        ?>
                    </div>
            </div>
        </form>
    </div>

    <script src="https://code.jquery.com/jquery-2.1.1.min.js"
        type="text/javascript"></script>
    <script type="text/javascript">
        function validateContactForm() {
            var valid = true;

            $(".info").html("");
            $(".input-field").css('border', '#e0dfdf 1px solid');
            var userName = $("#userName").val();
            var userEmail = $("#userEmail").val();
            var subject = $("#subject").val();
            var content = $("#content").val();
            
            if (userName == "") {
                $("#userName-info").html("Required.");
                $("#userName").css('border', '#e66262 1px solid');
                valid = false;
            }
            if (userEmail == "") {
                $("#userEmail-info").html("Required.");
                $("#userEmail").css('border', '#e66262 1px solid');
                valid = false;
            }
            if (!userEmail.match(/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/))
            {
                $("#userEmail-info").html("Invalid Email Address.");
                $("#userEmail").css('border', '#e66262 1px solid');
                valid = false;
            }

            if (subject == "") {
                $("#subject-info").html("Required.");
                $("#subject").css('border', '#e66262 1px solid');
                valid = false;
            }
            if (content == "") {
                $("#userMessage-info").html("Required.");
                $("#content").css('border', '#e66262 1px solid');
                valid = false;
            }
            return valid;
        }
</script>
</body>
</html>

فرآیند ورود اطلاعات در فرم تماس با ما PHP

در قالب فرم تماس با ما، برچسب فرم با متد درخواست POST مشخص میشود. در فرم های موفق که بعد از اعتبارسنجی JQUERY پذیرفته میشوند، اسکریپت PHP به اطلاعات از طریق متد درخواست $-POST دسترسی دارد.

فرم های تماس با ما همیشه با مسائل مربوط به اسپم یا هرزنامه ها روبرو هستند. تعداد زیادی ربات در سراسر وب وجود دارند که از فرم های تماس با ما مخصوصا فرم هایی که برای تایید و پذیرش اطلاعات می باشد، برای ارسال ایمیل های اسپم استفاده می کنند. در محتوای اسپم بیشتر لینک های مجاز برای تبلیغ وجود دارد. دو راه برای مسدود کردن این ایمیل های اسپم وجود دارد. یکی از این روش ها استفاده از اسکریپت سازی سفارشی شده honypot و منطق مربوط به آن می باشد و روش دوم، استفاده از اجرای برنامه captcha مانند google recapcha می باشد. 

فایل های index.php و send_contact_mail.php از فایل های PHP به منظور مدیریت داده های فرم تماس با ما PHP استفاده می کند تا در پایگاه داده ذخیره کند و از طریق یک ایمیل ارسال کند. هر دو فایل PHP ذکر شده از قالب فرم تماس مشابه که با فایل contact-view.php ایجاد شده است، استفاده می کنند.

ارسال داده های ورودی فرم تماس از طریق ایمیل

در این قطعه کد PHP، اطلاعات فرم تماس با استفاده از $-POST دریافت شده اند. این اطلاعات برای تنظیم هدر ایمیل و بدنه ی آن و همچنین تنظیم تابع ایمیل PHP مور استفاده قرار میگیرد. هنگامی که ایمیل به گیرنده ارسال میگردد، پیام های موفق در رابط کاربری برای کاربر نمایش داده میشود. ارسال ایمیل را می توانید با پکیج PHPmailer انجام دهید و می توانید در PHP با سرور SMTP گوگل  به ایمیل مراجعه کنید.

<?php
if(!empty($_POST["send"])) {
	$name = $_POST["userName"];
	$email = $_POST["userEmail"];
	$subject = $_POST["subject"];
	$content = $_POST["content"];

	$toEmail = "admin@phppot_samples.com";
	$mailHeaders = "From: " . $name . "<". $email .">\r\n";
	if(mail($toEmail, $subject, $content, $mailHeaders)) {
	    $message = "Your contact information is received successfully.";
	    $type = "success";
	}
}
require_once "contact-view.php";
?>

ذخیره سازی اطلاعات فرم تماس با ما در پایگاه داده

قطعه کد زیر به شما کمک میکند تا اطلاعات فرم تماس را در پایگاه داده ذخیره نمایید. برای این منظور ابتدا یک جدول پایگاه داده به نام tbl_content به فیلدهای name، ایمیل و سایر ستون های موجود در فرم تماس ایجاد کنید. پس از دریافت اطلاعات فرم PHP، آنها در mysql insert مورد استفاده قرار میگیرند. با اجرای insert، اطلاعات فرم تماس در پایگاه داده ذخیره میشوند. کد زیر اتصال پایگاه داده mysql و دسترسی به پایگاه داده را برای ورود اطلاعات تماس پیاده سازی میکند. بعد از ورود اطلاعات به صورت موفق در پایگاه داده، متغییر $message به ترتیب تنظیم میشود.

<?php
$conn = mysqli_connect("localhost", "root", "test", "blog_samples") or die("Connection Error: " . mysqli_error($conn));
mysqli_query($conn, "INSERT INTO tblcontact (user_name, user_email,subject,content) VALUES ('" . $name. "', '" . $email. "','" . $subject. "','" . $content. "')");
$insert_id = mysqli_insert_id($conn);
if(!empty($insert_id)) {
$message = "Your contact information is saved successfully";
?>

پس از اجرای قطعه کد بالا، اطلاعات تماس در جدول پایگاه داده اضافه میشود.

ساخت فرم تماس با ما در php

خروجی فرم تماس PHP 

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

نتجیه نهایی  مقاله ایجاد یک فرم با PHP :

فرم تماس با ما در php

 

آکادمی برنامه نویسان برگزار کننده کلاس های برنامه نویسی در مشهد می باشد و دوره های تخصصی برنامه نویسی و آموزش طراحی سایت مشهد را برگزار می کند جهت شرکت در این دوره می توانید با آموزشگاه تماس بگیرید 



استخدام برنامه نویس PHP

استخدام برنامه نویس PHP

استخدام در شرکت دانش بنیان حوزه کشاورزی

برنامه نویسی PHP و آشنا به طراحی وب

متقاضیان محترم رزومه خود را به آیدی  تلگرام زیر ارسال نمایید.

@n_a_iranian

و یا آدرس ایمیل :

naico@chmail.ir

استخدام برنامه نویس PHP

سرویس وب RESTful در PHP – آموزش ساخت وب سرویس با PHP

آموزش api در php

Representational State Transfer یا (REST) یکی از سبک های طراحی ساختار و معماری در برنامه نویسی است. سرویس های وبی که از اصول RESTful تبعیت می کنند سرویس های RESTful هستند. در سرویس های RESTful ، از URI ها برای دسترسی به منابع استفاده می شود. در سرویس RESTful ، داده ها و توابع را منابع می نامند. بنابراین در نهایت داده ها و توابع چیزی هستند که ما از طریق سرویس به آن دسترسی خواهیم داشت. در این آموزش ساخت وب سرویس با PHP ، به شما نشان خواهیم داد که چگونه می توانید یک سرویس وب RESTful را ایجاد کنید. برای این کار هیچ چارچوبی بجز کدهای ساده PHP  مورد استفاده قرار نمی گیرد. اکثر اوقات، ترجیح می دهم که کد هایی معمولی و بدون وابستگی به چارچوب را بنویسم ، این رویکرد مزایای خود را دارد. در اینترنت، من آموزشهایی از سرویس های وب را دیده ام که اکثر اوقات، آنها دارای خطا هستند و یا ناقص پیاده سازی شده اند. من این سرویس های RESTful را با استفاده از یک REST client آزمایش کرده ام که اکثرا با شکست و عدم موفقیت مواجه شده اند.

 اهداف این مثال آموزش ساخت وب سرویس با PHP :

• بتوانید یک سرویس وب RESTful بسازید.
• بتوانید از PHP ساده و بدون وابستگی و نیازبه چارچوبی دیگراستفاده کنید.
• الگوهای URI باید از اصول REST پیروی کنند.
• سرویس RESTful باید قادر به پاسخگویی به نیاز برای فرمت هایی مانند JSON، XML باشد.
• بر اساس سناریوهای مختلف ، باید بتوانید استفاده از کد HTTP Status را نشان دهید.
• کاربرد Request headers را نشان دهید.
• سرویس وب RESTful را با استفاده از یک REST client بررسی کنید.

مثالی از سرویس وب RESTful:

در زیر یک دسته دامنه آمده است که برای نشان دادن سرویس RESTful مورد استفاده قرار می گیرد.

<?php
/* 
A domain Class to demonstrate RESTful web services
*/
Class Mobile {
	
	private $mobiles = array(
		۱ => 'Apple iPhone 6S',  
		۲ => 'Samsung Galaxy S6',  
		۳ => 'Apple iPhone 6S Plus',  			
		۴ => 'LG G4',  			
		۵ => 'Samsung Galaxy S6 edge',  
		۶ => 'OnePlus 2');
		
	/*
		you should hookup the DAO here
	*/
	public function getAllMobile(){
		return $this->mobiles;
	}
	
	public function getMobile($id){
		
		$mobile = array($id => ($this->mobiles[$id]) ? $this->mobiles[$id] : $this->mobiles[1]);
		return $mobile;
	}	
}
?>

مپ کردن URI در سرویس هایRESTful :

سرویس های وب RESTful باید URI هایی یکسان و مرتب داشته باشند. فایل HTACCESS برای مپ کردن URL بین فایل درخواست و فایل واقعی استفاده می شود. در این  آموزش ساخت وب سرویس با PHP ، ما از دو URI استفاده می کنیم. برای دریافت فهرستی از تمامی موبایل ها ،وارد این سایت شوید.

http://localhost/restexample/mobile/list/

برای دریافت جزئیات خاصی از یک موبایل ، از شناسه آن استفاده کنید. در ذیل ‘۲’ شناسه یک موبایل است.

http://localhost/restexample/mobile/list/2/

در ادامه ، فایل htaccess نشان داده شده است که درخواست URL را طراحی می کند و آن را به یک فایل PHP ارسال می نماید.

# Turn rewrite engine on
Options +FollowSymlinks
RewriteEngine on

# map neat URL to internal URL
RewriteRule ^mobile/list/$   RestController.php?view=all [nc,qsa]
RewriteRule ^mobile/list/([0-9]+)/$   RestController.php?view=single

کنترل کننده سرویس وب RESTful :

در فایل .htaccess، به منظورشناسایی نمودن درخواست ، از واژه کلیدی ‘view’ استفاده کرده و تمامی درخواست ها را به فایل RestController.php ارسال می کنیم. در زیر، RestController.php نام فایلی است که درخواست ارسال به روش های مربوطه را برای رسیدگی به آن دریافت می کند. واژه کلیدی ‘view’ برای شناسایی درخواست URL استفاده می گردد.

<?php
require_once("MobileRestHandler.php");
		
$view = "";
if(isset($_GET["view"]))
	$view = $_GET["view"];
/*
controls the RESTful services
URL mapping
*/
switch($view){

	case "all":
		// to handle REST Url /mobile/list/
		$mobileRestHandler = new MobileRestHandler();
		$mobileRestHandler->getAllMobiles();
		break;
		
	case "single":
		// to handle REST Url /mobile/show/<id>/
		$mobileRestHandler = new MobileRestHandler();
		$mobileRestHandler->getMobile($_GET["id"]);
		break;

	case "" :
		//۴۰۴ - not found;
		break;
}
?>

یک کلاس پایه برای یک RESTful ساده:

در ذیل،کلاسی نشان داده شده که دارای دو روشی است که معمولا برای تمام هندلرهای سرویسREStful مورد استفاده قرار گیرد. یک روش برای ساخت پاسخ و روش دیگر برای نگهداری از کد وضعیت مختلف HTTP و پیام های مربوط به آن استفاده می شود. چنین متدهای مرسوم و ساده ای می تواند به این کلاس  اضافه شود و این کلاس را پایه و مبنایی برای همه گروه های هندلر RESTful تبدیل کند.

<?php 
/*
A simple RESTful webservices base class
Use this as a template and build upon it
*/
class SimpleRest {
	
	private $httpVersion = "HTTP/1.1";

	public function setHttpHeaders($contentType, $statusCode){
		
		$statusMessage = $this -> getHttpStatusMessage($statusCode);
		
		header($this->httpVersion. " ". $statusCode ." ". $statusMessage);		
		header("Content-Type:". $contentType);
	}
	
	public function getHttpStatusMessage($statusCode){
		$httpStatus = array(
			۱۰۰ => 'Continue',  
			۱۰۱ => 'Switching Protocols',  
			۲۰۰ => 'OK',
			۲۰۱ => 'Created',  
			۲۰۲ => 'Accepted',  
			۲۰۳ => 'Non-Authoritative Information',  
			۲۰۴ => 'No Content',  
			۲۰۵ => 'Reset Content',  
			۲۰۶ => 'Partial Content',  
			۳۰۰ => 'Multiple Choices',  
			۳۰۱ => 'Moved Permanently',  
			۳۰۲ => 'Found',  
			۳۰۳ => 'See Other',  
			۳۰۴ => 'Not Modified',  
			۳۰۵ => 'Use Proxy',  
			۳۰۶ => '(Unused)',  
			۳۰۷ => 'Temporary Redirect',  
			۴۰۰ => 'Bad Request',  
			۴۰۱ => 'Unauthorized',  
			۴۰۲ => 'Payment Required',  
			۴۰۳ => 'Forbidden',  
			۴۰۴ => 'Not Found',  
			۴۰۵ => 'Method Not Allowed',  
			۴۰۶ => 'Not Acceptable',  
			۴۰۷ => 'Proxy Authentication Required',  
			۴۰۸ => 'Request Timeout',  
			۴۰۹ => 'Conflict',  
			۴۱۰ => 'Gone',  
			۴۱۱ => 'Length Required',  
			۴۱۲ => 'Precondition Failed',  
			۴۱۳ => 'Request Entity Too Large',  
			۴۱۴ => 'Request-URI Too Long',  
			۴۱۵ => 'Unsupported Media Type',  
			۴۱۶ => 'Requested Range Not Satisfiable',  
			۴۱۷ => 'Expectation Failed',  
			۵۰۰ => 'Internal Server Error',  
			۵۰۱ => 'Not Implemented',  
			۵۰۲ => 'Bad Gateway',  
			۵۰۳ => 'Service Unavailable',  
			۵۰۴ => 'Gateway Timeout',  
			۵۰۵ => 'HTTP Version Not Supported');
		return ($httpStatus[$statusCode]) ? $httpStatus[$statusCode] : $status[500];
	}
}
?>

آموزش طراحی سایت مشهد

هندلر وب RESTful :

این کلاسی است که درخواست REST را مدیریت می کند. شما باید دو چیز را با دقت درنظر داشته باشید. اولی آن است که چگونه هندلر REST تصمیم می گیرد که چه نوع فرمتی از درخواست باید ارسال شود. این کار بر اساس پارامتر” Accept ” در Request Header تعیین می شود. هنگامی که درخواست ارسال می شود، پروتکلی که در اینجا نشان داده شده است ، باید پارامتر ” Accept” را تنظیم کرده و آن را ارسال کند. مقادیر می توانند مانند “application / json” یا “application / xml” یا “text / html” باشند. دومین چیزی که باید توجه داشته باشید استفاده از Status codes است. برای موفقیت در کار، کد وضعیت ۲۰۰ باید برای پاسخ تنظیم و ارسال شود. به طور مشابه، کدهای وضعیت مختلفی وجود دارند که باید با توجه به شرایط استفاده شوند.

<?php
require_once("SimpleRest.php");
require_once("Mobile.php");
		
class MobileRestHandler extends SimpleRest {

	function getAllMobiles() {	

		$mobile = new Mobile();
		$rawData = $mobile->getAllMobile();

		if(empty($rawData)) {
			$statusCode = 404;
			$rawData = array('error' => 'No mobiles found!');		
		} else {
			$statusCode = 200;
		}

		$requestContentType = $_SERVER['HTTP_ACCEPT'];
		$this ->setHttpHeaders($requestContentType, $statusCode);
				
		if(strpos($requestContentType,'application/json') !== false){
			$response = $this->encodeJson($rawData);
			echo $response;
		} else if(strpos($requestContentType,'text/html') !== false){
			$response = $this->encodeHtml($rawData);
			echo $response;
		} else if(strpos($requestContentType,'application/xml') !== false){
			$response = $this->encodeXml($rawData);
			echo $response;
		}
	}
	
	public function encodeHtml($responseData) {
	
		$htmlResponse = "<table border='1'>";
		foreach($responseData as $key=>$value) {
    			$htmlResponse .= "<tr><td>". $key. "</td><td>". $value. "</td></tr>";
		}
		$htmlResponse .= "</table>";
		return $htmlResponse;		
	}
	
	public function encodeJson($responseData) {
		$jsonResponse = json_encode($responseData);
		return $jsonResponse;		
	}
	
	public function encodeXml($responseData) {
		// creating object of SimpleXMLElement
		$xml = new SimpleXMLElement('<?xml version="1.0"?><mobile></mobile>');
		foreach($responseData as $key=>$value) {
			$xml->addChild($key, $value);
		}
		return $xml->asXML();
	}
	
	public function getMobile($id) {

		$mobile = new Mobile();
		$rawData = $mobile->getMobile($id);

		if(empty($rawData)) {
			$statusCode = 404;
			$rawData = array('error' => 'No mobiles found!');		
		} else {
			$statusCode = 200;
		}

		$requestContentType = $_SERVER['HTTP_ACCEPT'];
		$this ->setHttpHeaders($requestContentType, $statusCode);
				
		if(strpos($requestContentType,'application/json') !== false){
			$response = $this->encodeJson($rawData);
			echo $response;
		} else if(strpos($requestContentType,'text/html') !== false){
			$response = $this->encodeHtml($rawData);
			echo $response;
		} else if(strpos($requestContentType,'application/xml') !== false){
			$response = $this->encodeXml($rawData);
			echo $response;
		}
	}
}
?>

RESTful Web Service Client:

برای بررسی یک سرویس وب RESTful، باید REST client را به صورت برنامه نویسی نوشته و سرویس را مورداستفاده قرار دهید. راه دیگر این است که از یک REST client استفاده کنید. بسیاری از REST clients ، به صورت مستقل (standalone) در بازار موجود هستند. من معمولا از Google Chrome plugin REST client استفاده می کنم. “Advance Rest Client” یک افزونه (extension) گوگل کروم است که یک REST client خوب محسوب می شود. شما باید افزونه (extension) را اضافه کرده و از آن به صورت زیر استفاده کنید. در ذیل ، اسکرین شات هایی از بررسی سرویس وب RESTful در مثال فوق ارائه شده است.
در انتهای آموزش ساخت وب سرویس با PHP خروجی XML در سرویس وب RESTful به شکل زیر خواهد بود :

آموزش ساخت وب سرویس با php

خروجی JSON در سرویس وب RESTful ( آموزش ساخت وب سرویس با PHP) :

php api آموزش

لینک های مرتبط با آموزش ساخت وب سرویس با PHP

آموزش ساخت سبد خرید در PHP

پیاده سازی CRUD در PHP (قسمت ۱)

طراحی سایت مشهد

آموزش ساخت سبد خرید در PHP

php-crud-file-structure-3

در این پست به آموزش ساخت سبد خرید در PHP خواهیم پرداخت . این برنامه کاربردی عمدا ساده و تا حد امکان کوچک درنظر گرفته شده است. شما می توانید آن را دانلود کرده و برای نیازهایتان شخصی سازی (customize) کنید. در این مثال، ما فهرستی را از محصولات پایگاه داده را نمایش می دهیم. در مورد هر محصول می توانیم مقدار و اندازه آنرا انتخاب کرده و به سبد خرید اضافه کنیم. اقلام سبد خرید در نشست ذخیره می گردند. با حذف آیتم های هر نشست ، می توانید سبد خرید را خالی کنید.

آموزش ساخت سبد خرید در PHP

آموزش ساخت سبد خرید در PHP

افزودن محصولات مختلف به سبد خرید

اول از همه ، باید با خواندن فهرست محصولات خود از پایگاه داده ، صفحه کاتالوگی از محصولات ایجاد کنیم. کد زیر ، فهرست محصولات پایگاه داده را بازیابی کرده و آنها را بصورت یک نمای گرید نمایش می دهد. هر محصول دارای گزینه «اضافه کردن به سبد خرید» برای گنجانیدن آن در سبد خرید می باشد.

<?php
$product_array = $db_handle->runQuery("SELECT * FROM tblproduct ORDER BY id ASC");
if (!empty($product_array)) { 
foreach($product_array as $key=>$value){
?>
<div class="product-item">
	<form method="post" action="index.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>">
	<div class="product-image"><img src="<?php echo $product_array[$key]["image"]; ?>"></div>
	<div><strong><?php echo $product_array[$key]["name"]; ?></strong></div>
	<div class="product-price"><?php echo "$".$product_array[$key]["price"]; ?></div>
	<div><input type="text" name="quantity" value="1" size="2" /><input type="submit" value="Add to cart" class="btnAddAction" /></div>
	</form>
</div>
<?php }} ?>

با کلیک نمودن بر روی دکمه «افزودن به سبد خرید»، شناسه محصول انتخاب شده و با تعیین مقدار محصول ، می توانیم آن را به سبد خرید اضافه می کنیم. برای ذخیره آیتم ها در سبد خرید از PHP SESSION استفاده می کنیم. کد زیر گزینه دیگری را نشان می دهد که برای اضافه کردن محصولات به سبد خرید مورد استفاده قرار می گیرد. اگر چندین بار یک محصول را به سبد خرید اضافه کنیم، مقدار آیتم مورد نظر افزایش خواهد یافت.

case "add":
	if(!empty($_POST["quantity"])) {
		$productByCode = $db_handle->runQuery("SELECT * FROM tblproduct WHERE code='" . $_GET["code"] . "'");
		$itemArray = array($productByCode[0]["code"]=>array('name'=>$productByCode[0]["name"], 'code'=>$productByCode[0]["code"], 'quantity'=>$_POST["quantity"], 'price'=>$productByCode[0]["price"]));
		
		if(!empty($_SESSION["cart_item"])) {
			if(in_array($productByCode[0]["code"],array_keys($_SESSION["cart_item"]))) {
				foreach($_SESSION["cart_item"] as $k => $v) {
						if($productByCode[0]["code"] == $k) {
							if(empty($_SESSION["cart_item"][$k]["quantity"])) {
								$_SESSION["cart_item"][$k]["quantity"] = 0;
							}
							$_SESSION["cart_item"][$k]["quantity"] += $_POST["quantity"];
						}
				}
			} else {
				$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
			}
		} else {
			$_SESSION["cart_item"] = $itemArray;
		}
	}
break;

حذف یا پاکسازی آیتم ها از سبد خرید

در این قسمت آموزش ساخت سبد خرید در PHP ، به کاربران اجازه می دهیم تا با استفاده از لینک «حذف آیتم» در هر ردیف ، بتوانند آیتم ها را از سبد خرید حذف کنند. همچنین، به کاربران این توانایی را می دهیم با استفاده از گزینه “تخلیه سبد ” ، کل سبد خرید را پاکسازی کنند. به منظور پاکسازی آیتم خاصی از دوره زمانی خرید ، با کلیک کردن روی «حذف آیتم» می توانیم عمل پاکسازی را با توجه به کد آیتم انجام دهیم. می توانیم از تابعPHP  ()unset  برای پاکسازی نشست در سبد خرید استفاده می کنیم.

case "remove":
	if(!empty($_SESSION["cart_item"])) {
		foreach($_SESSION["cart_item"] as $k => $v) {
			if($_GET["code"] == $k)	unset($_SESSION["cart_item"][$k]);				
			if(empty($_SESSION["cart_item"])) unset($_SESSION["cart_item"]);
		}
	}
break;
case "empty":
	unset($_SESSION["cart_item"]);
break;

کد زیر گزینه های مورد استفاده برای “حذف آیتم ” و عمل ” پاکسازی سبد” را نشان می دهد. برای ایجاد جدولی از محصولات ، SQL ذیل را وارد کرده و داده های خود را برای نمایش در صفحه کاتالوگ خود بارگذاری کنید.

CREATE TABLE IF NOT EXISTS `tblproduct` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `code` varchar(255) NOT NULL,
  `image` text NOT NULL,
  `price` double(10,2) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `product_code` (`code`)
)

دانلود پروژه آموزش ساخت سبد خرید در PHP

دانلود پروژه

لینک های مرتبط :

کلاس طراحی وب مشهد

دوره آموزش Android