• عبارات با قاعده. حالا بیایید اسکریپت های اصلی را برای کار بیشتر ایجاد کنیم

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

    قوانین طراحی یک الگو (الگو)

    مرزهای الگو باید با کاراکترهای خاصی مشخص شوند، اغلب با استفاده از " / "، اما من ترجیح می دهم استفاده کنم" # زیرا فراوانی اسلش‌های جلو و عقب می‌تواند در چشم شارژ شود و معمولاً از «شبکه‌ها» در هیچ جای دیگری استفاده نمی‌شود. بنابراین: #HereRegularExpressionBody#"

    پرانتز در داخل عبارت منظم استفاده می شود - اینها عبارت های فرعی هستند که می توانند دستکاری شوند، به عنوان مثال:

    #^/catalog/(+)/(+)\.html.*#

    این عبارت برای دریافت پارامترها در یک رشته در نظر گرفته شده است URL. در ابتدای خط یک کاراکتر خاص وجود دارد " ^ "- این به معنای ابتدای خط است. بعد می آید" /کاتالوگ/" - در اینجا هیچ کاراکتر خاصی وجود ندارد، فقط متنی است که باید در خط باشد. سپس پرانتزها را ملاقات کردیم، یعنی به اولین عبارت فرعی رسیدیم. براکت های مربع مجموعه کاراکترهایی را نشان می دهد که می توانند در خط باشند. این مکان. - "یعنی شمارش. علامت" \ " از کاراکترهای خاص فرار می کند. بنابراین، در اولین عبارت فرعی می توانیم حروف LARGE و کوچک الفبای لاتین، اعداد از 0 تا 9، یک خط زیر، یک خط تیره و یک نقطه را داشته باشیم. یک خط تیره و یک نقطه کاراکترهای خاص هستند، اما در اینجا آنها فرار کرده اند، بنابراین اینجا فقط کاراکترها هستند. بعد از براکت ها علامت " + "- این بدان معناست که کاراکتر قبلی (و ما این مجموعه از کاراکترها را در کروشه مربع داریم) می تواند 1 بار یا بیشتر برود. سپس می آید " / "فقط یک کاراکتر است، و یک عبارت فرعی مشابه. سپس می آید" \.html"که به معنای متن است" .html". و سپس شخصیت های خاص" .* "نقطه به معنای هر کاراکتر و ستاره هر عدد از کاراکتر قبلی است. یعنی بعد از" .html"هر چیزی ممکن است برود.

    تعیین کمیت، کمیت کننده ها

    در بالا، قبلاً چنین نمادهایی را در نظر گرفته ایم که نشان دهنده تعداد نمادهای قبلی است، مانند + و * . در اینجا تمام احتمالات برای تعیین مقدار وجود دارد:

    شخصیت های خاص

    برای برخی از گروه های شخصیت اختصارات خاصی وجود دارد:

    "طمع"

    مفهوم طمع بیان منظم را در نظر بگیرید. به عنوان مثال یک خط وجود دارد:

    #()#

    خواندن: زیر بیان:

    به نظر می رسد همه چیز درست است، عبارت فرعی در زیر قرار می گیرد:

    اما همچنین مناسب است:

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

    #() #U

    اصلاح کننده ها

    عبارات منظم را می توان با اصلاح کننده ها دنبال کرد: " #HereRegularExpressionBody#HereModifiers"انواع اصلاح کننده:

    من حالت حساس به حروف کوچک و بزرگ را فعال می کند، یعنی حروف بزرگ و کوچک در عبارت تفاوتی ندارند.
    متر نشان می دهد که متن مورد جستجو باید به عنوان چندین خط در نظر گرفته شود. به‌طور پیش‌فرض، موتور عبارت منظم، متن را بدون توجه به اینکه واقعاً چیست، به عنوان یک خط واحد در نظر می‌گیرد. بر این اساس، فراکاراکترها "^" و "$"ابتدا و انتهای کل متن را نشان می دهد. اگر این اصلاح کننده مشخص شده باشد، به ترتیب به ابتدا و انتهای هر خط متن اشاره می کنند.
    س متاکاراکتر پیش فرض " . " یک کاراکتر خط جدید را در تعریف خود شامل نمی شود. با مشخص کردن این اصلاح کننده، این محدودیت حذف می شود.
    U طمع یک عبارت منظم را از بین می برد
    تو عبارات منظم را برای کار با آنها فعال می کند سیریلیک به UTF-8وگرنه درست کار نمیکنه

    توابع php برای کار با عبارات منظم

    preg_replace

    جستجو و جایگزینی:

    preg_replace (مخلوط $pattern ، مختلط $جایگزینی ، مختلط $subject [, int $limit = -1 [, int &$count ]]);

    هر مقدار می تواند یک رشته یا یک آرایه باشد موضوع $آرایه - یک آرایه برگردانده می شود، در غیر این صورت یک رشته

    preg_split

    یک رشته را با عبارت منظم تقسیم می کند:

    preg_split(string $pattern, string $subject [, int $limit = -1 [, int $flags = 0 ]]);

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

    بازخوردها (0)

    به روز شده در: 2018-03-12

    نوشته شده در: 2016-12-21

    با گذشت زمان PHP ویژگی‌هایی را اضافه می‌کند که توسعه برنامه‌های کاربردی امن را ارتقا می‌دهند، همچنین ویژگی‌هایی منسوخ یا حذف شده که نوشتن کد ناامن را آسان می‌کنند.

    این آموزش را بخوانید تا بیاموزید چگونه یک سیستم ورود و ثبت نام مدرن ایجاد کنید که از ویژگی‌های متمرکز بر امنیت PHP بهره می‌برد و از jQuery برای ارسال درخواست‌های AJAX و بوت استرپ برای ارائه یک رابط کاربری سریع و زیبا استفاده می‌کند که می‌تواند بدون توجه به استفاده از چارچوب‌های دیگر یا فریمورک‌های دیگر کار کند. نه



    اگر سوال یا نظری دارید می توانید پیامی را به عنوان نظر به این مقاله یا در آن ارسال کنید.

    تغییر گزارش

    27/03/2017: اطلاعات دانلود و نصب بیشتری با استفاده از ابزار آهنگساز اضافه شد.

    01-01-2017: مقاله را به روز کرد تا نشان دهد که این اقدامات همچنان در سال 2017 ایمن هستند




    برای ارسال نظر باید یک کاربر ثبت نام شده باشید یا وارد شوید

    بلافاصله با حساب کاربری خود وارد شوید:

    سلام! اکنون سعی می کنیم با استفاده از PHP + MySQL ساده ترین ثبت نام را در سایت پیاده سازی کنیم. برای این کار باید آپاچی روی کامپیوتر شما نصب باشد. نحوه کار اسکریپت ما در زیر نشان داده شده است.

    1. بیایید با ایجاد جدول کاربران در پایگاه داده شروع کنیم. این شامل اطلاعات کاربر (ورودی و رمز عبور) خواهد بود. بیایید به phpmyadmin برویم (اگر یک پایگاه داده در رایانه شخصی خود ایجاد کنید http://localhost/phpmyadmin/). یک جدول ایجاد کنید کاربران، دارای 3 فیلد خواهد بود.

    من آن را در پایگاه داده mysql ایجاد می کنم، شما می توانید آن را در پایگاه داده دیگری ایجاد کنید. سپس مقادیر را مانند شکل تنظیم کنید:

    2. اتصال به این جدول الزامی است.بیایید یک فایل ایجاد کنیم bd.php. محتوای آن:

    $db = mysql_connect("سرور MySQL شما"،"ورود به این سرور"،"رمز عبور برای این سرور");
    mysql_select_db ("نام پایگاه داده برای اتصال به"، $db);
    ?>

    در مورد من به نظر می رسد این است:

    $db = mysql_connect("localhost", "user","1234");
    mysql_select_db("mysql",$db);
    ?>

    پس انداز می کنیم bd.php.
    عالی! ما یک جدول در پایگاه داده داریم، یک اتصال به آن. اکنون می توانید شروع به ایجاد صفحه ای کنید که در آن کاربران داده های خود را ترک کنند.

    3. یک فایل reg.php با محتوا ایجاد کنید (همه نظرات داخل):



    ثبت


    ثبت
















    4. یک فایل ایجاد کنید، که داده ها را وارد پایگاه داده و ذخیره کاربر می کند. save_user.php(نظرات داخل):



    {
    }
    //اگر لاگین و رمز عبور وارد شده باشد، آنها را پردازش می کنیم تا تگ ها و اسکریپت ها کار نکنند، شما هرگز نمی دانید افراد چه چیزی را می توانند وارد کنند.


    // حذف فضاهای اضافی
    $login = trim($login);
    $password = trim($password);
    // به پایگاه داده متصل شوید
    // وجود کاربری با همان ورود را بررسی کنید
    $result = mysql_query("SELECT ID FROM users WHERE login="$login"",$db);
    if (!empty($myrow["id"])) (
    exit("با عرض پوزش، نام کاربری که وارد کردید قبلا ثبت شده است. لطفا نام کاربری دیگری وارد کنید.");
    }
    // اگر وجود ندارد، داده ها را ذخیره کنید
    $result2 = mysql_query ("INSERT INTO users (login,password) VALUES("$login","$password")");
    // بررسی کنید که آیا خطا وجود دارد
    اگر ($result2=="TRUE")
    {
    echo "شما با موفقیت ثبت نام کردید! اکنون می توانید وارد سایت شوید.
    صفحه اصلی";
    }
    دیگر(
    echo "خطا! شما وارد نشده اید.";
    }
    ?>

    5. اکنون کاربران ما می توانند ثبت نام کنند!در مرحله بعد، باید یک "در" برای ورود به سایت برای کاربرانی که قبلا ثبت نام کرده اند ایجاد کنید. index.php(نظرات داخل):

    // کل رویه روی جلسات کار می کند. در آن است که داده های کاربر در حالی که او در سایت است ذخیره می شود. راه اندازی آنها در همان ابتدای صفحه بسیار مهم است!!!
    session_start();
    ?>


    صفحه اصلی


    صفحه اصلی











    ثبت نام



    // بررسی کنید که آیا متغیرهای login و user id خالی هستند یا خیر
    اگر (خالی ($_SESSION["login"]) یا خالی ($_SESSION["id"]))
    {
    // اگر خالی باشد، پیوند را نمایش نمی دهیم
    echo "شما به عنوان مهمان وارد شده اید
    این لینک فقط برای کاربران ثبت نام شده در دسترس است";
    }
    دیگر
    {

    در پرونده index.phpما لینکی را نمایش خواهیم داد که فقط برای کاربران ثبت نام شده باز خواهد بود. این تمام نکته اسکریپت است - محدود کردن دسترسی به هر داده.

    6. یک فایل با تایید ورود و رمز عبور وارد شده وجود دارد. testreg.php (نظرات در داخل):

    session_start();// کل رویه روی جلسات کار می کند. در آن است که داده های کاربر در حالی که او در سایت است ذخیره می شود. راه اندازی آنها در همان ابتدای صفحه بسیار مهم است!!!
    if (isset($_POST["login"])) ($login = $_POST["login"]; if ($login == "") ( unset($login);) ) //ورود وارد شده توسط کاربر در متغیر $login، اگر خالی باشد، متغیر را از بین می بریم
    if (isset($_POST["password"])) ($password=$_POST["password"]; if ($password =="") ( unset($password);) )
    // پسورد وارد شده توسط کاربر را در متغیر $password قرار دهید، اگر خالی است، متغیر را از بین ببرید.
    اگر (خالی($login) یا خالی($password)) //اگر کاربر لاگین یا رمز عبور وارد نکرده باشد، خطا صادر می کنیم و اسکریپت را متوقف می کنیم.
    {
    exit ("شما همه اطلاعات را وارد نکردید، به عقب برگردید و تمام فیلدها را پر کنید!");
    }
    //اگر لاگین و رمز عبور وارد شده باشد، آنها را پردازش می کنیم تا تگ ها و اسکریپت ها کار نکنند، شما هرگز نمی دانید افراد چه چیزی را می توانند وارد کنند.
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
    $password = stripslashes($password);
    $password = htmlspecialchars($password);
    // حذف فضاهای اضافی
    $login = trim($login);
    $password = trim($password);
    // به پایگاه داده متصل شوید
    include("bd.php");// فایل bd.php باید در همان پوشه ای باشد که همه افراد دیگر هستند، اگر اینطور نیست، فقط مسیر را تغییر دهید.

    $result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //بازیابی همه داده های مربوط به کاربر با ورود وارد شده از پایگاه داده
    $myrow = mysql_fetch_array($result);
    if (خالی ($myrow["password"]))
    {
    //اگر کاربری با لاگین وارد شده وجود نداشته باشد
    }
    دیگر(
    //در صورت وجود، پسوردها را بررسی کنید
    if ($myrow["password"]==$password) (
    //اگر رمزهای عبور مطابقت داشته باشند، جلسه را برای کاربر شروع می کنیم! می توانید به او تبریک بگویید، وارد شد!
    $_SESSION["login"]=$myrow["login"];
    $_SESSION["id"]=$myrow["id"];//این داده ها اغلب استفاده می شوند، بنابراین کاربر وارد شده آنها را "حمل" می کند
    echo "شما با موفقیت وارد سیستم شدید! صفحه اصلی";
    }
    دیگر(
    //اگر رمزهای عبور مطابقت ندارند

    Exit ("با عرض پوزش، ورود یا رمز عبوری که وارد کردید نادرست است.");
    }
    }
    ?>

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

    همه چیز را بررسی کرد، خوب کار می کند!