I pastrehë. Të pastrehë Shihni se çfarë është "i pastrehë" në fjalorë të tjerë

Përshëndetje! Tani do të përpiqemi të zbatojmë regjistrimin më të thjeshtë në sit duke përdorur PHP + MySQL. Për ta bërë këtë, Apache duhet të instalohet në kompjuterin tuaj. Parimi i funksionimit të skenarit tonë është paraqitur më poshtë.

1. Le të fillojmë duke krijuar tabelën e përdoruesve në bazën e të dhënave. Ai do të përmbajë të dhënat e përdoruesit (identifikimi dhe fjalëkalimi). Le të shkojmë te phpmyadmin (nëse po krijoni një bazë të dhënash në kompjuterin tuaj http://localhost/phpmyadmin/). Krijo një tabelë përdoruesit, do të ketë 3 fusha.

Unë e krijoj atë në bazën e të dhënave mysql, ju mund ta krijoni në një bazë të dhënash tjetër. Më pas vendosni vlerat si në figurë:

2. Kërkohet një lidhje me këtë tabelë. Le të krijojmë një skedar bd.php. Përmbajtja e tij:

$db = mysql_connect("serveri juaj MySQL", "hyrja për këtë server", "fjalëkalimi për këtë server");
mysql_select_db ("emri i bazës së të dhënave me të cilën po lidhemi", $db);
?>

Në rastin tim duket kështu:

$db = mysql_connect ("localhost", "përdorues", "1234");
mysql_select_db("mysql",$db);
?>

Ruaj bd.php.
E shkëlqyeshme! Ne kemi një tabelë në bazën e të dhënave dhe një lidhje me të. Tani mund të filloni të krijoni një faqe në të cilën përdoruesit do të lënë të dhënat e tyre.

3. Krijoni një skedar reg.php me përmbajtjen (të gjitha komentet brenda):



Regjistrimi


Regjistrimi


















4. Krijo një skedar, i cili do të fusë të dhënat në bazën e të dhënave dhe do të ruajë përdoruesin. save_user.php(komentet brenda):



{
}
//nëse hyrja dhe fjalëkalimi janë futur, atëherë ne i përpunojmë ato në mënyrë që etiketat dhe skriptet të mos funksionojnë, ju kurrë nuk e dini se çfarë mund të futin njerëzit


//hiq hapësirat shtesë
$login = trim($login);
$fjalëkalim = shkurtoj($fjalëkalim);
// lidheni me bazën e të dhënave
// kontrolloni për ekzistencën e një përdoruesi me të njëjtin hyrje
$rezultat = mysql_query("SELECT ID FROM users WHERE login="$login"",$db);
nëse (!empty($myrow["id"])) (
exit("Na falni, identifikimi që futët është tashmë i regjistruar. Ju lutemi vendosni një hyrje tjetër.");
}
// nëse nuk është kështu, atëherë ruani të dhënat
$rezultat2 = mysql_query("INSERT INTO përdoruesit (hyrja, fjalëkalimi) VALUES("$login","$password")");
// Kontrolloni nëse ka gabime
nëse ($result2=="E VËRTETË")
{
echo "Je regjistruar me sukses! Tani mund të hysh në sajt. Faqja kryesore";
}
tjeter(
echo "Gabim! Nuk jeni regjistruar.";
}
?>

5. Tani përdoruesit tanë mund të regjistrohen! Tjetra, duhet të krijoni një "derë" për përdoruesit e regjistruar tashmë që të hyjnë në sit. indeks.php(komentet brenda):

// e gjithë procedura funksionon në sesione. Është vendi ku ruhen të dhënat e përdoruesit ndërsa ai është në sit. Është shumë e rëndësishme t'i hapni ato që në fillim të faqes!!!
sesioni_fillimi ();
?>


Faqja kryesore


Faqja kryesore











Regjistrohu



// Kontrolloni nëse variablat e hyrjes dhe ID-së së përdoruesit janë bosh
nëse (bosh ($_SESSION["login"]) ose bosh ($_SESSION["id"]))
{
// Nëse bosh, atëherë ne nuk e shfaqim lidhjen
echo "Ju keni hyrë si i ftuar
Kjo lidhje është e disponueshme vetëm për përdoruesit e regjistruar";
}
tjetër
{

Në dosje indeks.php Ne do të shfaqim një lidhje që do të jetë e hapur vetëm për përdoruesit e regjistruar. Kjo është e gjithë pika e skenarit - për të kufizuar aksesin në çdo të dhënë.

6. Mbetet një skedar me verifikimin e hyrjes dhe fjalëkalimit të futur. testreg.php (komentet brenda):

session_start();// e gjithë procedura funksionon në sesione. Është vendi ku ruhen të dhënat e përdoruesit ndërsa ai është në sit. Është shumë e rëndësishme t'i hapni ato që në fillim të faqes!!!
if (isset($_POST["login"])) ($login = $_POST["login"]; if ($login == "") ( unset($login);) ) //hyni hyrjen e futur nga përdoruesi në ndryshoren $login, nëse është bosh, atëherë shkatërrojeni variablin
if (isset($_POST["fjalëkalimi"])) ( $password=$_POST["fjalëkalimi"]; if ($password =="") ( unset($password);) )
//vendosni fjalëkalimin e futur nga përdoruesi në variablin $password, nëse është bosh, atëherë shkatërroni variablin
nëse (bosh ($login) ose bosh ($fjalëkalim)) //nëse përdoruesi nuk ka futur një hyrje ose fjalëkalim, atëherë ne nxjerrim një gabim dhe ndalojmë skriptin
{
exit ("Nuk i keni futur të gjitha informacionet, kthehuni dhe plotësoni të gjitha fushat!");
}
//nëse hyrja dhe fjalëkalimi janë futur, atëherë ne i përpunojmë ato në mënyrë që etiketat dhe skriptet të mos funksionojnë, ju kurrë nuk e dini se çfarë mund të futin njerëzit
$login = stripslashes($login);
$login = htmlspecialchars($login);
$fjalëkalim = stripslashes ($fjalëkalim);
$fjalëkalim = htmlspecialchars ($fjalëkalim);
//hiq hapësirat shtesë
$login = trim($login);
$fjalëkalim = shkurtoj($fjalëkalim);
// lidheni me bazën e të dhënave
include("bd.php");// skedari bd.php duhet të jetë në të njëjtën dosje si gjithë të tjerët, nëse nuk është, atëherë thjesht ndryshoni shtegun

$result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //merr nga baza e të dhënave të gjitha të dhënat rreth përdoruesit me hyrjen e futur
$myrow = mysql_fetch_array($rezultat);
nëse (bosh ($myrow["fjalëkalim"]))
{
//nëse përdoruesi me hyrjen e futur nuk ekziston
}
tjeter(
//nëse ekziston, atëherë kontrolloni fjalëkalimet
nëse ($myrow["password"]==$fjalëkalimi) (
//nëse fjalëkalimet përputhen, atëherë ne nisim një sesion për përdoruesin! Mund ta përgëzoni, ai hyri!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//këto të dhëna përdoren shumë shpesh, kështu që përdoruesi i identifikuar do ta "bartë me vete"
echo "Ju keni hyrë me sukses në faqe! Faqja kryesore";
}
tjeter(
//nëse fjalëkalimet nuk përputhen

Dalje ("Na falni, identifikimi ose fjalëkalimi që keni futur është i pasaktë.");
}
}
?>

OK tani ka mbaruar! Mësimi mund të jetë i mërzitshëm, por shumë i dobishëm. Këtu shfaqet vetëm ideja e regjistrimit, atëherë mund ta përmirësoni: shtoni mbrojtjen, dizajnin, fushat e të dhënave, ngarkimin e avatarëve, daljen nga llogaria (për ta bërë këtë, thjesht shkatërroni variablat nga seanca me funksionin i pavendosur) dhe kështu me radhë. Paç fat!

Kontrollova gjithçka, funksionon siç duhet!

Vdekjeprurëse

Vdekjeprurëse

I Tmerrshëm, i varfër, i pafat, njeri që nuk kishte as hise, as një pjesë, as lumturi. Nuk ka vend askund për të pastrehët.

| bot. duke folur për lobet e farës, për gjethet e fidanëve: bimë që nuk i kanë këto lobe, akotiledone; Këto janë pikërisht dy klasat e ulëta, bimët pa lule: bishtet e kalit, fierët, myshqet, myshqet, myshqet, kërpudhat, algat. Njeri i papunë grua e pastrehë i varfër, fatkeq, fatkeq. t'i heqësh dikujt një ndarje, t'i heqësh dikujt një pjesë, pjesë, pjesë, pjesë, të mos marrësh pjesë;

| privoj nga lumturia, trashëgimia, fati, rrënimi, ofendimi, shtypja. Pse po më privon, fat i keq? Fqinjët e mi janë të varfër dhe nuk më japin tokë. Të jesh kot, të jetosh pa hise, të jesh i varfër, të jesh i mjerë. Mungesa e Dole Wed. grua e pastrehë fatkeqësi, fatkeqësi, pikëllim, fatkeqësi, fatkeqësi e zgjatur, kohëzgjatje, e keqe, fat i keq; të pastrehët e grave mungesa e jetës, fatkeqësia e fatit, fati;

| njerëz të pastrehë Njerkët janë të pastrehë.


Fjalori shpjegues i Dahl-it. NË DHE. Dahl. 1863-1866.


Sinonimet:

Shihni se çfarë është "PA VLETË" në fjalorë të tjerë:

    cm… Fjalor sinonimik

    Bezdolny, Alexander Vasilyevich Alexander Vasilyevich Bezdolny Partia: Rusia e Bashkuar Lindja: 5 shtator 1935 (1935 ... Wikipedia

    Adj. dekompozimi 1. raporti me emër mungesa e lumturisë e lidhur me të 2. I privuar nga një lot i lumtur; i pakënaqur, i mjerë. Fjalori shpjegues i Efraimit. T. F. Efremov. 2000... Fjalori modern shpjegues i gjuhës ruse nga Efremova

    i pavlefshëm, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh, pa borxh,... ... Format e fjalëve

    i pastrehë- i pastrehë; shkurtimisht formë liri, lino... Fjalori drejtshkrimor rus

    Aja, oh; liri, liri, liri. Trad. adv. Duke mos ditur një fat të lumtur; i pakënaqur, i mjerë (zakonisht për një person ose jetën e tij) ... fjalor enciklopedik

    i pastrehë- oh, oh; liri, liri, liri, trad. adv. Duke mos ditur një fat të lumtur; i pakënaqur, i mjerë (zakonisht për një person ose jetën e tij) ... Fjalor i shumë shprehjeve

    i pastrehë- pa/dol/n/y… Fjalor morfemiko-drejtshkrimor

    Deputet i Dumës Shtetërore të Asamblesë Federale të Federatës Ruse të thirrjes së tretë që nga dhjetori 1999, anëtar i fraksionit të Unitetit, anëtar i Komitetit të Buxhetit; i lindur më 5 shtator 1935 në rajonin e Pavlodarit; u diplomua në Tomsk Financial Credit College... Enciklopedi e madhe biografike

    Sergey Leonidovich Bezdolny kryetar i qytetit të Azov, rajoni Rostov. Biografia Lindur më 20 tetor 1959 në qytetin e Azov. Arsimi i lartë. Në vitin 1982 ai u diplomua në Institutin e Inxhinierisë Bujqësore Rostov-on-Don në... ... Wikipedia

#përfshi
#përfshi
int regcomp(regex_t *preg, konst char *regex, intcflamuj);
int regexec(const regex_t *preg, konst char *varg, madhësia_tnpërputhje,
regmatch_tndeshje, intflamuj);
Regjistrimi i madhësisë_t (intkodi i gabuar, const regex_t *preg, karakter *errbuf,
madhësia_tmadhësia_errbuf);
void regfree(regex_t *preg);

PËRSHKRIM

Kompilimi i shprehjeve të rregullta POSIX

Funksioni regcomp() përdoret për të përpiluar shprehjen e rregullt në një format që është i përshtatshëm për kërkime të mëvonshme duke përdorur regexec().

regcomp() kalohet një tregues në zonën e ruajtjes së shabllonit të tamponit preg, treguesi në një varg të përfunduar me null regex dhe flamuj cflamuj, përdoret për të përcaktuar llojin e përpilimit.

Të gjitha kërkimet e shprehjeve të rregullta duhet të bëhen duke përdorur një model të përpiluar buffer, kështu që regexec() duhet gjithmonë të thirret me adresën e shabllonit të buferit të inicializuar nga funksioni regcomp().

Kuptimi cflamuj mund të përbëhet nga bitwise ose zero ose më shumë nga vlerat e mëposhtme:

REG_EXTENDED Përdorni sintaksën e zgjeruar të shprehjes së rregullt të POSIX gjatë interpretimit regex. Nëse ky flamur nuk aktivizohet, përdoret sintaksa e thjeshtë e shprehjes së rregullt POSIX. REG_ICASE Injoroje rastin. Kërkimet e mëvonshme regexec() përdorimi i këtij modeli buffer nuk do të jetë i ndjeshëm ndaj shkronjave të vogla. REG_NOSUB Mos raportoni pozicionin e ndeshjeve. Opsione npërputhje Dhe ndeshje Për regexec() injorohen nëse shablloni i dhënë buffer është përpiluar me këtë flamur të aktivizuar. REG_NEWLINE Operatorët e përputhjes me asnjë karakter nuk përputhen me karakterin e linjës së re.

Lista e karaktereve që nuk përputhen ( [^...] ) pa një karakter të linjës së re nuk është e njëjtë me një rresht të ri.

Operatori krahasues bazuar në fillimin e një vargu ( ^ ) përputhet me vargun bosh menjëherë pas rreshtit të ri pa marrë parasysh çfarë flamuj, flamujt e ekzekutimit regexec(), përmbajnë REG_NOTBOL.

Operatori i krahasimit në fund të linjës ($) përputhet me vargun bosh deri në karakterin e fillimit të linjës, pavarësisht se çfarë flamuj përmban REG_NOTEOL.

Krahasimi me shprehjen e rregullt POSIX

Funksioni regexec() përdoret për të krahasuar një varg të përfunduar me null me një model buferi të para-përpunuar preg. Argumentet npërputhje Dhe ndeshje përdoren për të dhënë informacion rreth vendndodhjes së çdo ndeshjeje. Kuptimi flamuj mund të jetë bitwise OSE një ose të dyja vlerat REG_NOTBOL Dhe REG_NOTEOL. Këto vlera përcaktojnë sjelljen e procesit të krahasimit siç përshkruhet më poshtë. REG_NOTBOL Operatori i krahasimit në fillim të vargut gjithmonë dështon (por shikoni flamurin e përpilimit të përshkruar më sipër REG_NEWLINE). Ky flamur mund të përdoret kur regexec() pjesë të veçanta të një vargu transmetohen, dhe fillimi i një vargu të tillë në këtë rast nuk duhet të interpretohet si fillimi i një rreshti të ri. REG_NOTEOL Operatori i krahasimit në fund të linjës dështon gjithmonë (por shikoni flamurin e përpilimit të përshkruar më sipër REG_NEWLINE).

Kompensimet e bajtit

Nëse REG_NOSUB nuk është vendosur gjatë përpilimit të shabllonit të tamponit, është e mundur të merret informacion për pozicionin e ndeshjeve. Kuptimi ndeshje duhet të përcaktohet që të ketë të paktën npërputhje elementet. Po mbushen regexec() adresat e ndeshjeve në linjë. Kompensimet e një nënshprehje duke filluar me i- kllapa e hapur, e ruajtur në ndeshje[i]. Adresa e përputhjes së të gjithë shprehjes së rregullt ruhet në ndeshje(vini re se për të kthyer kompensimet e ndeshjes N nënshprehje, kuptim npërputhje duhet të jetë jo më pak N+1). Çdo element i papërdorur i strukturës do të përmbajë një vlerë prej -1.

Struktura regmatch_t, që është një lloj ndeshje, të përcaktuara në :

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

Çdo element rm_pra, jo e barabartë me -1, tregon zhvendosjen fillestare të ndeshjes tjetër të nënvargut më të madh brenda vargut të dhënë. Element relativ rm_eo tregon zhvendosjen e fundit të ndeshjes, e cila është karakteri i parë pas tekstit të përputhur.

Raportimi i gabimit POSIX

Funksioni regerror përdoret për të konvertuar kodet e gabimit që mund të merren nga regcomp() Dhe regexec(), në linjat e mesazheve të gabimit.

regerror transmetuar: kodi i gabimit kodi i gabuar, model tampon preg, një tregues në një buffer të vargut të karaktereve errbuf dhe madhësia e buferit të rreshtit madhësia_errbuf. Funksioni kthen madhësinë errbuf, e cila kërkohet për të ruajtur mesazhin e gabimit si një varg i përfunduar me null. Nëse errbuf, Dhe madhësia_errbuf atëherë nuk janë të barabartë me zero errbuf mbushur së pari erbuf_size - 1 karakteret e mesazhit të gabimit dhe përfundon me një bajt null ("\0").

Lirimi i një tamponi shabllon POSIX

Funksioni regfree() çliron memorien e alokuar në shabllonin e tamponit preg gjatë procesit të përpilimit duke përdorur regcomp().

VLERA E KTHIMIT

Funksioni regcomp() kthen zero në përpilimin e suksesshëm ose një kod gabimi përndryshe.

Funksioni regexec() kthen zero në ndeshje ose REG_NOMATCH, nëse nuk do të kishte ndeshje.

GABIME

Funksioni regcomp() mund të kthejë gabimet e mëposhtme: REG_BADBR Përdorimi i gabuar i operatorit backlink. REG_BADPAT Përdorimi i gabuar i operatorëve shabllon, të tillë si operatorët e grupeve ose listave. REG_BADRPT Përdorimi i gabuar i operatorëve të përsëritjes, si p.sh. përdorimi i "*" si karakteri i parë. REG_EBRACE Kllapat e paçiftuara në operatorët e intervalit. REG_EBRACK Kllapa katrore të paçiftuara në deklaratat e listës. REG_ECOLLATE Element i pavlefshëm renditjeje. REG_ECTYPE Emri i panjohur i klasës së personazheve. REG_EEND Gabim i mundshëm. Nuk është përcaktuar në POSIX.2. REG_EESCAPE Prapavija pasuese. REG_EPAREN Kllapa të paçiftuara në operatorët e grupimit. REG_ERANGE Përdorimi i gabuar i operatorit të zonës: për shembull, fundi i zonës shfaqet para fillimit të saj. REG_ESIZE Shprehja e rregullt e përpiluar kërkon një model buferi më të madh se 64 KB. Kjo nuk është përcaktuar në POSIX.2. REG_ESPACE Rutinat e shprehjeve të rregullta kanë mbaruar memorien. REG_ESUBREG Referencë e pasaktë e pavlefshme në nënshprehje.