سبد (0)

آموزش پروژه محور PHP

- سطح پروژه: دانشجویی

- پیش نیاز ها: PHP مقدماتی - HTML - CSS

- مستندسازی: به ازای هر دستور، توضیحات لازم داخل کد ارائه شده است.

- پیش نمایش: مشاهده پیش نمایش یا Demo

- دانلود سورس: دانلود سورس پروژه هتل در PHP


پروژه رزرو هتل در PHP

Wiki

با توجه به درخواست های مکرر کاربران بیاموز، مبنی بر آموزش های پروژه محور، تصمیم گرفتیم تا آموزش های ارائه شده در بخش های آموزش PHP و آموزش HTML و آموزش CSS را تحت یک پروژه بکار ببریم.

حالا شما کاربران محترم می توانید با دانلود کامل پروژه رزرو هتل، با نحوه استفاده از مباحث خوانده شده تا اینجا آشنا شوید.

موارد استفاده شده در این پروژه عبارتند از:

    1. در پروژه رزرو هتل، برای کار با پایگاه داده از افزونه MySQLi بجای MySQL استفاده شده است.
    2. برای بالا بردن راندمان کوئری ها و جلوگیری از حملات SQL Injection از دستورات آماده یا Prepare استفاده شده است.
    3. در این پروژه، از Session ها برای نگه داشتن، نام کاربری استفاده شده است.
    4. در این پروژه، اعتبار سنجی داده ها در سه سطح: فرم، برنامه و پایگاه داده در نظر گرفته شده است.
    5. در این پروژه، از HTML5 برای اعتبار سنجی (Validation) فرم های رزرو و ثبت نام استفاده شده است.
    6. برای قابل فهم تر شدن اسکریبت ها، توضیحات یا comment به ازای تک تک کدها ذکر شده است.
    7. در این پروژه برای طراحی صفحات از Master Page استفاده شده است.

توجه: دانشجویان عزیز می توانند با کمی تغییرات در این پروژه آنرا بعنوان پروژه پایان ترم خود ارائه دهند.

در اینجا برای اطمینان بیشتر، ماژول "ورود کاربران" که در سمت چپ تمامی صفحات نشان داده می شود، آورده شده است:

login.php

<?php

//اضافه کردن فایل کانفیک به این صفحه این فایل شامل اطلاعات لازم برای اتصال به پایگاه داده است
require_once('config.php');

//تنظیم اکشن
$action=(isset($_POST['action']))? $_POST['action'] : '';

//بر اساس اکشن تنظیم شده، تابع مربوطه فراخوانی می شود
switch($action)
{
    case "login" : login();    break;
    case "exit_user" : exit_user();    break;
    default : display_form_login(); break;    
}

//وظیفه این تابع، نمایش فرم لاگین است
function display_form_login()
{
    //اگر کاربر، قبلاً لاگین کرده باشد بنابراین سشن زیر تنظیم شده است و نباید فرم لاگین نمایش داده شود
    if(isset($_SESSION['u_username']))
    {
        show_welcome_message($_SESSION['u_username']);
        return;
    }    
?>                
    <div class="form" id="login">
        <h2>ورود کاربران</h2>
        <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            <input type="hidden" name="action" value="login" />
            <dl>
                <dd>
                    <label style="min-width: 70px;">نام کاربری :</label>
                    <input type="text" name="u_username" size="18" maxlength="25" required />
                </dd>
                <dd>
                    <label style="min-width: 70px;">کلمه عبور :</label>
                    <input type="password" name="u_password" size="18" maxlength="25"  required />
                </dd>
                <dd class="button">
                    <input type="submit" value="ورود" />
                </dd>
                <dd style="margin:0 10px 10px;">
                    <a href="/register.php">ایجاد حساب کاربری</a>
                </dd>
            </dl>
            <div class="error"><?php if (isset($GLOBALS['error'])) echo $GLOBALS['error']; ?></div>                                    
        </form>
    </div>    

<?php
}

//وظیفه این تابع، این است که براساس نام کاربری و کلمه عبور دریافت شده، اجازه ورود به کاربر بدهد
function login()
{
    if ($_SERVER["REQUEST_METHOD"] == "POST")
    {
        //متغییری برای ذخیره پیغام های خطا
        global $error;
        $error='';
        
        //تنظیم مقادیر ارسال شده از سمت کاربر
        $u_username=$_POST['u_username'];
        $u_password=$_POST['u_password'];
        
        //مقادیر ارسال شده از سمت کاربر، نباید خالی باشد
        if(empty($u_username) || empty($u_password))
        {
            $error = "لطفاً همه فیلدها را پر کنید.";
            display_form_login();
            return;
        }        
        
        //ایجاد ارتباط به پایگاه داده
        $conn= new mysqli(DBHOST, DBUSER, DBPASS,DBNAME);   
        
        //اطمینان از صحت ارتباط
        if($conn->connect_error)
        {
            $error = "متاسفانه نمی توان به پایگاه داده متصل شد.";
            display_form_login();
            return;
        }
               
        //تنظیم کوئری و اطمینان از صحت کار
        if ($stmt = $conn->prepare("SELECT u_id FROM users WHERE u_username=? and u_password=?"))
        {
            //بایند کردن پارامترها
            $stmt->bind_param("ss", $u_username, $u_password);
            //اجرای کوئری
            $stmt->execute();
            
            //ذخیره کردن نتیجه
            $stmt->store_result();
            //اگر تعداد رکوردها بزرگتر از صفر باشد، کاربر بدرستی اطلاعات را وارد کرده است
            if($stmt->num_rows>0)
                {
                    $_SESSION['u_username']=$u_username;
                    show_welcome_message($u_username);
                }
            else
                {
                    $error = "نام کاربری یا کلمه عبور اعتبار ندارد";
                    display_form_login();
                    return;
                }
        }       
        else
        {
            $error = "عدم اجرای دستور Prepare <br /> شماره خطا = $conn->errno <br /> متن خطا = $conn->error";
            display_form_login();
            return;
        }
        //بستن ارتباط با پایگاه داده
        $stmt->close();
        $conn->close();        
    }
}

//وظیفه این تابع، نمایش پیغام خوش آمد گویی است البته بهمراه نمایش دکمه خروج
function show_welcome_message($u_username)
{
?>                
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
        <input type="hidden" name="action" value="exit_user" />
        <div class="form" id="login">
            <h2>ورود کاربران</h2>
            <div>سلام، <?php echo $u_username; ?> عزیز</div>
            <div class="button"><input type="submit" value="خروج" /></div>            
        </div>    
    </form>
<?php
}
//وظیفه این تابع خروج و پاک کردن سشن هاست
function exit_user()
{
    unset($_SESSION['u_username']);
    display_form_login();
}
?>


امکانات مورد نیاز

Wiki

به ابزار خاصی برای پیاده سازی این پروژه نیاز نیست، اما برای اجرای کدهای PHP و استفاده از پایگاه داده MySQL باید آنها را نصب نمایید که پکیج Xampp برای این منظور مناسب می باشد.

برای اطلاعات بیشتر به لینک روبرو مراجعه فرمایید: آموزش PHP-نصب PHP

در ضمن برای نوشتن کدها از ادیتور ++Notepad استفاده شده است.


پروژه هتل چیست؟

Wiki

مهم ترین قسمت های پروژه هتل شامل موارد زیر می شود:

  • فرم رزرو هتل
  • فرم ثبت نام کاربران (عضویت)
  • فرم ورود کاربران
  • مشاهده اطلاعات رزروی
  • مشاهده کاربران عضو شده
  • درباره ما
  • گالری تصاویر
  • تماس با ما

پیش نمایش فیلم آموزش پروژه محور PHP

پیش نمایش زیر، جهت آشنایی شما کاربران محترم بیاموز با نحوه ی تدریس و بیان مدرس تهیه شده است:

پیش نمایش شماره 1 - درس شماره 1

آموزش صوتی PHP

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

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