Անօթևան. Անօթևան Տեսեք, թե ինչ է «անօթևան» բառը այլ բառարաններում

Բարեւ Ձեզ! Այժմ մենք կփորձենք իրականացնել ամենապարզ գրանցումը կայքում՝ օգտագործելով PHP + MySQL: Դա անելու համար Apache-ը պետք է տեղադրված լինի ձեր համակարգչում: Մեր սցենարի աշխատանքի սկզբունքը ներկայացված է ստորև։

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);
$գաղտնաբառ = կտրել ($գաղտնաբառ);
// միանալ տվյալների շտեմարանին
// ստուգեք նույն մուտքով օգտվողի առկայությունը
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
եթե (!empty($myrow["id"])) (
exit («Կներեք, ձեր մուտքագրված մուտքն արդեն գրանցված է: Խնդրում ենք մուտքագրել մեկ այլ մուտք»);
}
// եթե դա այդպես չէ, ապա պահպանեք տվյալները
$result2 = mysql_query ("INSERT INTO users (login, password) VALUES ("$login","$password")");
// Ստուգեք, արդյոք սխալներ կան
եթե ($result2=="TRUE")
{
echo «Դուք հաջողությամբ գրանցվել եք: Այժմ կարող եք մուտք գործել կայք: Գլխավոր էջ»;
}
ուրիշ (
echo «Սխալ: Դուք գրանցված չեք»:;
}
?>

5. Այժմ մեր օգտվողները կարող են գրանցվել:Հաջորդը, դուք պետք է ստեղծեք «դուռ» արդեն գրանցված օգտվողների համար կայք մուտք գործելու համար: index.php(մեկնաբանությունները ներսում) :

// ամբողջ պրոցեդուրան աշխատում է նիստերում։ Այն այնտեղ է, որտեղ պահպանվում են օգտատիրոջ տվյալները, երբ նա գտնվում է կայքում: Շատ կարևոր է դրանք գործարկել հենց էջի սկզբում!!!
նիստ_սկիզբ ();
?>


Գլխավոր էջ


Գլխավոր էջ











Գրանցվել



// Ստուգեք՝ արդյոք մուտքի և օգտագործողի id փոփոխականները դատարկ են
եթե (դատարկ ($_SESSION["մուտք"]) կամ դատարկ ($_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);
$գաղտնաբառ = կտրել ($գաղտնաբառ);
// միանալ տվյալների շտեմարանին
include("bd.php");// bd.php ֆայլը պետք է լինի նույն թղթապանակում, ինչ բոլոր մյուսները, եթե այդպես չէ, ապա պարզապես փոխեք ուղին

$result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //առբերել տվյալների բազայից օգտագործողի մասին բոլոր տվյալները մուտքագրված մուտքով
$myrow = mysql_fetch_array ($ արդյունք);
եթե (դատարկ ($myrow["password"]))
{
//եթե մուտքագրված լոգինով օգտվողը գոյություն չունի
}
ուրիշ (
//եթե գոյություն ունի, ապա ստուգեք գաղտնաբառերը
եթե ($myrow["password"]==$password) (
//եթե գաղտնաբառերը համընկնում են, ապա մենք գործարկում ենք սեսիա օգտագործողի համար: Դուք կարող եք շնորհավորել նրան, նա ներս մտավ:
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//Այս տվյալներն օգտագործվում են շատ հաճախ, ուստի մուտք գործած օգտատերը «այն կտանի իր հետ»:
echo «Դուք հաջողությամբ մուտք եք գործել կայք! Գլխավոր էջ»;
}
ուրիշ (
//եթե գաղտնաբառերը չեն համընկնում

Դուրս գալ («Կներեք, ձեր մուտքագրած մուտքը կամ գաղտնաբառը սխալ է»);
}
}
?>

Լավ, հիմա ամեն ինչ ավարտված է: Դասը կարող է լինել ձանձրալի, բայց շատ օգտակար: Այստեղ ցուցադրվում է միայն գրանցման գաղափարը, այնուհետև կարող եք բարելավել այն. ավելացնել պաշտպանություն, դիզայն, տվյալների դաշտեր, բեռնել ավատարներ, դուրս գալ հաշվից (դա անելու համար պարզապես գործառույթով ջնջեք փոփոխականները նիստից: չկարգավորված) և այլն։ Հաջողություն!

Ես ամեն ինչ ստուգեցի, ճիշտ է աշխատում:

ՄԱՀԱՑՈՂ

ՄԱՀԱՑՈՂ

ՍԱՐՍԱՓԵԼԻ, խեղճ, անհաջողակ, փայ, մաս, երջանկություն չունեցող մարդ։ Անօթևանների համար ոչ մի տեղ տեղ չկա.

| բոտ. Խոսելով սերմերի բլթակների մասին, սածիլների տերևների մասին. բույսեր, որոնք չունեն այդ բլթակները, ակոտիլեդոններ; Սրանք հենց ստորին երկու դասերի՝ անծաղիկ բույսեր են՝ ձիաձետ, պտեր, մամուռ, մամուռ, մամուռ, սունկ, ջրիմուռներ։ Պարապ մարդ անօթևան կին խեղճ, դժբախտ, դժբախտ. Ինչ-որ մեկին բաժնեմասից զրկել, ինչ-որ մեկին հատկացումից զրկել, բաժնեմաս, մաս, բաժին, չմասնակցել;

| զրկել երջանկությունից, ժառանգությունից, ճակատագրից, կործանել, վիրավորել, ճնշել. Ինչու՞ ես զրկում ինձ, չար ճակատագիր: Հարևաններս աղքատ են և ինձ հող չեն տալիս. Պարապ լինել, ապրել առանց բաժին, աղքատ լինել, թշվառ լինել։ Բացակայություն Dole Wed. անօթևան կին դժբախտություն, դժբախտություն, վիշտ, դժբախտություն, երկարատև աղետ, անժամկետություն, չարություն, վատ ճակատագիր; կանանց անօթևանություն կյանքի բացակայություն, ճակատագրի դժբախտություն, ճակատագիր;

| անօթևան մարդիկ Խորթ որդիներն անօթեւան են.


Դալի բացատրական բառարան. ՄԵՋ ԵՎ. Դալ. 1863-1866 թթ.


Հոմանիշներ:

Տեսեք, թե ինչ է «ԱՆԱՐԺԵՔ»-ը այլ բառարաններում.

    Սմ … Հոմանիշների բառարան

    Բեզդոլնի, Ալեքսանդր Վասիլևիչ Ալեքսանդր Վասիլևիչ Բեզդոլնի Կուսակցություն. Միացյալ Ռուսաստան Ծնունդ. սեպտեմբերի 5, 1935 (1935 թ. ... Վիքիպեդիա

    Աջ. տարրալուծում 1. հարաբերակցությունը գոյականի հետ դրա հետ կապված երջանկության բացակայությունը 2. Երջանիկ վիճակից զրկված; դժբախտ, դժբախտ. Եփրեմի բացատրական բառարանը։ Տ. Ֆ. Եֆրեմովա. 2000... Էֆրեմովայի ռուսաց լեզվի ժամանակակից բացատրական բառարան

    Անարժեք, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտ, անպարտք, անպարտք, անպարտք

    անօթևան- անօթևան; հակիրճ սպիտակեղենի ձև, սպիտակեղեն... Ռուսերեն ուղղագրական բառարան

    Այա, օ; կտավատի, կտավատի, կտավատի. Առեւտր. adv. Չիմանալ երջանիկ ճակատագիր; դժբախտ, դժբախտ (սովորաբար մարդու կամ նրա կյանքի մասին) ... Հանրագիտարանային բառարան

    անօթևան- օհ, օհ; կտավատ, կտավատ, կտավ., տրադ. adv. Չիմանալ երջանիկ ճակատագիր; դժբախտ, դժբախտ (սովորաբար մարդու կամ նրա կյանքի մասին) ... Բազմաթիվ արտահայտությունների բառարան

    անօթևան- առանց / dol / n / y ... Մորֆեմիկ-ուղղագրական բառարան

    1999 թվականի դեկտեմբերից Ռուսաստանի Դաշնության Դաշնային ժողովի երրորդ գումարման Պետական ​​դումայի պատգամավոր, «Միասնություն» խմբակցության անդամ, բյուջետային հանձնաժողովի անդամ. ծնված 1935 թվականի սեպտեմբերի 5-ին Պավլոդարի մարզում; ավարտել է Տոմսկի ֆինանսական վարկային քոլեջը... Կենսագրական մեծ հանրագիտարան

    Ռոստովի մարզի Ազով քաղաքի քաղաքապետ Սերգեյ Լեոնիդովիչ Բեզդոլնին. Կենսագրություն Ծնվել է 1959 թվականի հոկտեմբերի 20-ին Ազով քաղաքում։ Բարձրագույն կրթություն. 1982 թվականին ավարտել է Դոնի Ռոստովի գյուղատնտեսական ճարտարագիտական ​​ինստիտուտը... ... Վիքիպեդիա

#ներառում
#ներառում
int regcomp(regex_t *պրեգ, const char *ռեգեքս, միջcflags);
int regexec(const regex_t *պրեգ, const char *լար, չափ_տnmatch,
regmatch_tpmatch, միջդրոշներ);
չափի_տ վերագրանցում (intսխալ կոդ, const regex_t *պրեգ, char *errbuf,
չափ_տerrbuf_size);
void regfree (regex_t *պրեգ);

ՆԿԱՐԱԳՐՈՒԹՅՈՒՆ

POSIX կանոնավոր արտահայտությունների կազմում

Գործառույթ regcomp() օգտագործվում է կանոնավոր արտահայտությունը կազմելու այն ձևաչափով, որը հարմար է հետագա որոնումների համար regexec().

regcomp() ցուցիչ է փոխանցվում բուֆերային ձևանմուշի պահպանման տարածքին պրեգ, ցուցիչ դեպի զրոյական վերջացրած տողը ռեգեքսև դրոշներ cflags, օգտագործվում է կազմման տեսակը որոշելու համար։

Բոլոր կանոնավոր արտահայտությունների որոնումները պետք է կատարվեն՝ օգտագործելով կազմված բուֆերային օրինաչափություն, ուստի regexec() միշտ պետք է կանչվի ֆունկցիայի կողմից սկզբնավորված բուֆերային կաղապարի հասցեով regcomp().

Իմաստը cflagsկարող է բաղկացած լինել բիթից կամզրո կամ ավելի հետևյալ արժեքներից.

REG_EXTENDEDՕգտագործեք POSIX ընդլայնված կանոնավոր արտահայտությունների շարահյուսությունը մեկնաբանության ժամանակ ռեգեքս. Եթե ​​այս դրոշը միացված չէ, POSIX պարզ կանոնավոր արտահայտության շարահյուսությունն օգտագործվում է: REG_ICASEԱնտեսել գործը. Հետագա որոնումներ regexec() այս բուֆերային օրինաչափության օգտագործումը մեծատառերի զգայուն չի լինի: REG_NOSUBՄի զեկուցեք խաղերի դիրքի մասին: Ընտրանքներ nmatchԵվ pmatchՀամար regexec() անտեսվում են, եթե տվյալ բուֆերային ձևանմուշը կազմվել է միացված այս դրոշակով: REG_NEWLINEՑանկացած նիշով օպերատորները չեն համապատասխանում նոր տողի նիշին:

Չհամապատասխանող նիշերի ցուցակ ( [^...] ) առանց նոր տողի նիշի նույնը չէ, ինչ նոր տողը:

Համեմատության օպերատոր՝ հիմնված տողի սկզբի վրա ( ^ ) համընկնում է դատարկ տողի նոր տողից անմիջապես հետո, անկախ ամեն ինչից դրոշներ, մահապատժի դրոշներ regexec(), պարունակում է REG_NOTBOL.

Գծի վերջի համեմատության օպերատորը ($) համապատասխանում է դատարկ տողին մինչև տողի սկզբի նիշը, անկախ նրանից, թե ինչ դրոշներպարունակում է REG_NOTEOL.

Համեմատություն POSIX կանոնավոր արտահայտության հետ

Գործառույթ regexec() օգտագործվում է զրոյական ավարտված տողը նախապես մշակված բուֆերային օրինաչափության հետ համեմատելու համար պրեգ. Փաստարկներ nmatchԵվ pmatchօգտագործվում են ցանկացած համընկնումների գտնվելու վայրի մասին տեղեկատվություն տրամադրելու համար: Իմաստը դրոշներկարող է լինել բիթ ԿԱՄմեկ կամ երկու արժեքներ REG_NOTBOLԵվ REG_NOTEOL. Այս արժեքները որոշում են համեմատության գործընթացի վարքագիծը, ինչպես նկարագրված է ստորև: REG_NOTBOLՀամեմատության օպերատորը տողի սկզբում միշտ ձախողվում է (բայց տես վերը նկարագրված կոմպիլյացիայի դրոշը REG_NEWLINE) Այս դրոշը կարող է օգտագործվել, երբ regexec() փոխանցվում են տողի առանձին մասեր, և այդպիսի տողի սկիզբն այս դեպքում չպետք է մեկնաբանվի որպես նոր տողի սկիզբ։ REG_NOTEOLԳծի վերջի համեմատության օպերատորը միշտ ձախողվում է (բայց տես վերը նկարագրված կազմման դրոշը REG_NEWLINE).

Բայթի օֆսեթներ

Եթե REG_NOSUBսահմանված չէ բուֆերային կաղապարը կազմելիս, հնարավոր է տեղեկատվություն ստանալ համընկնումների դիրքի մասին։ Իմաստը pmatchպետք է սահմանվի առնվազն nmatchտարրեր. Նրանք լցվում են regexec() ներկառուցված համընկնումների հասցեները: Ենթարտահայտման օֆսեթները սկսած ես- բաց փակագծեր, պահված pmatch[i]. Ամբողջ կանոնավոր արտահայտության համընկնման հասցեն պահվում է pmatch(նշեք, որ խաղի օֆսեթները վերադարձնելու համար Նենթաարտահայտություններ, իմաստ nmatchպետք է լինի ոչ պակաս N+1) Ցանկացած չօգտագործված կառուցվածքի տարրեր կպարունակեն -1 արժեք:

Կառուցվածք regmatch_t, որը տեսակ է pmatch, սահմանված է :

Typedef struct (regoff_t rm_so; regoff_t rm_eo;) regmatch_t;

Յուրաքանչյուր տարր rm_so, որը հավասար չէ -1-ի, ցույց է տալիս տվյալ տողի ներսում ամենամեծ ենթաշարքի հաջորդ համընկնման մեկնարկային օֆսեթը: Հարաբերական տարր rm_eoցույց է տալիս համընկնման ավարտի օֆսեթը, որը համընկնող տեքստից հետո առաջին նիշն է:

POSIX-ի սխալի մասին հաղորդում

Գործառույթ վերագրանցումօգտագործվում է սխալի կոդերը փոխարկելու համար, որոնք կարող են ստացվել regcomp() Եվ regexec(), սխալ հաղորդագրության տողերի մեջ:

IN վերագրանցումփոխանցված՝ սխալի կոդը սխալ կոդ, բուֆերային օրինաչափություն պրեգ, ցուցիչ դեպի նիշերի տողային բուֆեր errbufև տողի բուֆերի չափը errbuf_size. Ֆունկցիան վերադարձնում է չափը errbuf, որը պահանջվում է սխալի հաղորդագրությունը որպես զրոյական ավարտված տող պահելու համար։ Եթե errbuf, Եվ errbuf_sizeհավասար չեն զրոյի, ուրեմն errbufառաջինը լցված errbuf_size - 1սխալի հաղորդագրության նիշերը և ավարտվում են զրոյական բայթով («\0»):

POSIX կաղապարի բուֆերի ազատում

Գործառույթ regfree() ազատում է բուֆերային կաղապարին հատկացված հիշողությունը պրեգԿազմման գործընթացում օգտագործելով regcomp().

ՎԵՐԱԴԱՐՁ ԱՐԺԵՔ

Գործառույթ regcomp() վերադարձնում է զրո հաջող կազմման կամ սխալի կոդ, հակառակ դեպքում:

Գործառույթ regexec() համընկնումով վերադարձնում է զրո կամ REG_NOMATCH, եթե լուցկիներ չլինեին։

ՍԽԱԼՆԵՐ

Գործառույթ regcomp() կարող է վերադարձնել հետևյալ սխալները. REG_BADBR Backlink օպերատորի սխալ օգտագործումը: REG_BADPATԿաղապարի օպերատորների սխալ օգտագործումը, ինչպիսիք են խմբի կամ ցուցակի օպերատորները: REG_BADRPTԿրկնվող օպերատորների սխալ օգտագործումը, օրինակ՝ «*»-ի օգտագործումը որպես առաջին նիշ: REG_EBRACEՉզույգված փակագծեր միջակայքային օպերատորներում: REG_EBRACKՉզուգակցված քառակուսի փակագծերը ցուցակի հայտարարություններում: REG_ECOLLATEԱնվավեր տեսակավորման տարր: REG_ECTYPEԱնհայտ կերպարների դասի անուն: REG_EENDՀնարավոր սխալ. POSIX.2-ում սահմանված չէ: REG_EESCAPEՀետընթաց շեղ. REG_EPARENՉզույգված փակագծեր խմբավորման օպերատորներում: REG_ERANGEՏարածքի օպերատորի սխալ օգտագործում. օրինակ, տարածքի վերջը հայտնվում է դրա սկզբից առաջ: REG_ESIZEԿազմված կանոնավոր արտահայտությունը պահանջում է 64 ԿԲ-ից ավելի բուֆերային օրինակ: Սա սահմանված չէ POSIX.2-ում: REG_ESPACEԱրտահայտման կանոնավոր գործողությունների հիշողությունը սպառվել է: REG_ESUBREGԱնվավեր հետադարձ հղում ենթաարտահայտմանը: