Uysiz. Uysizlar Boshqa lug'atlarda "uysiz" nima ekanligini ko'ring

Salom! Endi biz PHP + MySQL yordamida saytda eng oddiy ro'yxatdan o'tishni amalga oshirishga harakat qilamiz. Buning uchun kompyuteringizga Apache o'rnatilishi kerak. Bizning skriptimizning ishlash printsipi quyida ko'rsatilgan.

1. Ma’lumotlar bazasida foydalanuvchilar jadvalini yaratishdan boshlaylik. U foydalanuvchi ma'lumotlarini (login va parol) o'z ichiga oladi. Keling, phpmyadmin ga o'tamiz (agar siz shaxsiy kompyuteringizda ma'lumotlar bazasini yaratayotgan bo'lsangiz). http://localhost/phpmyadmin/). Jadval yarating foydalanuvchilar, u 3 ta maydonga ega bo'ladi.

Men uni mysql ma'lumotlar bazasida yarataman, siz uni boshqa ma'lumotlar bazasida yaratishingiz mumkin. Keyin qiymatlarni rasmdagi kabi o'rnating:

2. Ushbu jadvalga ulanish talab qilinadi. Keling, fayl yarataylik bd.php. Uning tarkibi:

$db = mysql_connect("sizning MySQL serveringiz","ushbu server uchun login","ushbu server uchun parol");
mysql_select_db ("biz ulanayotgan ma'lumotlar bazasi nomi", $db);
?>

Mening holimda bu shunday ko'rinadi:

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

Saqlash bd.php.
Ajoyib! Bizda ma'lumotlar bazasida jadval va unga ulanish mavjud. Endi siz foydalanuvchilar o'z ma'lumotlarini qoldiradigan sahifani yaratishni boshlashingiz mumkin.

3. Tarkibiga ega reg.php faylini yarating (barcha izohlar ichidagi):



Roʻyxatdan oʻtish


Roʻyxatdan oʻtish


















4. Fayl yarating, bu ma'lumotlar bazasiga ma'lumotlarni kiritadi va foydalanuvchini saqlaydi. save_user.php(Ichkaridagi sharhlar):



{
}
//agar login va parol kiritilgan bo'lsa, biz ularni teglar va skriptlar ishlamasligi uchun qayta ishlaymiz, odamlar nima kiritishini hech qachon bilmaysiz.


//qo'shimcha bo'shliqlarni olib tashlang
$login = trim($login);
$parol = trim($parol);
// ma'lumotlar bazasiga ulanish
// bir xil loginga ega foydalanuvchi mavjudligini tekshiring
$natija = mysql_query("QAYERDA login="$login"",$db);
agar (!empty($myrow["id"])) (
exit("Kechirasiz, siz kiritgan login allaqachon ro'yxatdan o'tgan. Iltimos, boshqa login kiriting.");
}
// agar bunday bo'lmasa, ma'lumotlarni saqlang
$result2 = mysql_query("INSERT INTO foydalanuvchilar (login,parol) VALUES("$login","$parol")");
// Xatolar borligini tekshiring
agar ($result2=="TRUE")
{
echo "Muvaffaqiyatli ro'yxatdan o'tdingiz! Endi siz saytga kirishingiz mumkin. Bosh sahifa";
}
boshqa(
echo "Xato! Siz ro'yxatdan o'tmagansiz.";
}
?>

5. Endi bizning foydalanuvchilarimiz ro'yxatdan o'tishlari mumkin! Keyinchalik, allaqachon ro'yxatdan o'tgan foydalanuvchilar uchun saytga kirish uchun "eshik" yaratishingiz kerak. index.php(Ichkaridagi sharhlar):

// butun protsedura sessiyalarda ishlaydi. Bu erda foydalanuvchining ma'lumotlari u saytda bo'lganida saqlanadi. Ularni sahifaning boshida ishga tushirish juda muhim!!!
session_start();
?>


Bosh sahifa


Bosh sahifa











Roʻyxatdan oʻtish



// Login va foydalanuvchi identifikatori o'zgaruvchilari bo'sh yoki yo'qligini tekshiring
agar (bo'sh($_SESSION["login"]) yoki bo'sh($_SESSION["id"]))
{
// Agar bo'sh bo'lsa, biz havolani ko'rsatmaymiz
echo "Siz mehmon sifatida tizimga kirdingiz
Ushbu havola faqat ro'yxatdan o'tgan foydalanuvchilar uchun mavjud";
}
boshqa
{

Fayl ichida index.php Biz faqat ro'yxatdan o'tgan foydalanuvchilar uchun ochiq bo'lgan havolani ko'rsatamiz. Bu skriptning butun nuqtasi - har qanday ma'lumotlarga kirishni cheklash.

6. Kiritilgan login va parolni tekshirish bilan fayl qoladi. testreg.php (ichki sharhlar):

session_start();// butun protsedura sessiyalarda ishlaydi. Bu erda foydalanuvchining ma'lumotlari u saytda bo'lganida saqlanadi. Ularni sahifaning boshida ishga tushirish juda muhim!!!
if (isset($_POST["login"])) ( $login = $_POST["login"]; if ($login == "") ( unset($login);) ) //kiritilgan loginni kiriting foydalanuvchi $login o'zgaruvchisiga kiradi, agar u bo'sh bo'lsa, o'zgaruvchini yo'q qiling
if (isset($_POST["password"])) ( $password=$_POST["password"]; if ($password =="") ( unset($password);) )
//foydalanuvchi kiritgan parolni $password oʻzgaruvchisiga qoʻying, agar u boʻsh boʻlsa, oʻzgaruvchini yoʻq qiling.
agar (empty($login) yoki empty($password)) //agar foydalanuvchi login yoki parolni kiritmagan bo'lsa, biz xatoga yo'l qo'yamiz va skriptni to'xtatamiz.
{
exit("Siz barcha ma'lumotlarni kiritmadingiz, orqaga qayting va barcha maydonlarni to'ldiring!");
}
//agar login va parol kiritilgan bo'lsa, biz ularni teglar va skriptlar ishlamasligi uchun qayta ishlaymiz, odamlar nima kiritishini hech qachon bilmaysiz.
$login = chiziqlar ($login);
$login = htmlspecialchars($login);
$parol = chiziq chizig'i ($parol);
$parol = htmlspecialchars($parol);
//qo'shimcha bo'shliqlarni olib tashlang
$login = trim($login);
$parol = trim($parol);
// ma'lumotlar bazasiga ulanish
include("bd.php");// bd.php fayli boshqalar bilan bir xil papkada bo'lishi kerak, agar u bo'lmasa, shunchaki yo'lni o'zgartiring.

$natija = mysql_query("FROM foydalanuvchilar FROM * QAYERDA login="$login"",$db); //ma'lumotlar bazasidan kiritilgan login bilan foydalanuvchi haqidagi barcha ma'lumotlarni olish
$myrow = mysql_fetch_array($natija);
agar (bo'sh($myrow["parol"]))
{
//agar kiritilgan loginli foydalanuvchi mavjud bo'lmasa
}
boshqa(
//agar mavjud bo'lsa, parollarni tekshiring
agar ($myrow["parol"]==$parol) (
//agar parollar mos kelsa, biz foydalanuvchi uchun sessiyani ishga tushiramiz! Siz uni tabriklashingiz mumkin, u kirdi!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//bu ma'lumotlar juda tez-tez ishlatiladi, shuning uchun tizimga kirgan foydalanuvchi uni "o'zi bilan olib yuradi"
echo "Siz saytga muvaffaqiyatli kirdingiz! Bosh sahifa";
}
boshqa(
//agar parollar mos kelmasa

Chiqish ("Kechirasiz, siz kiritgan login yoki parol noto'g'ri.");
}
}
?>

OK, hammasi tugadi! Dars zerikarli bo'lishi mumkin, lekin juda foydali. Bu erda faqat ro'yxatdan o'tish g'oyasi ko'rsatilgan, keyin siz uni yaxshilashingiz mumkin: himoya, dizayn, ma'lumotlar maydonlarini qo'shing, avatarlarni yuklang, hisobdan chiqing (buni amalga oshirish uchun seansdagi o'zgaruvchilarni funksiya bilan yo'q qilish kifoya. sozlanmagan) va hokazo. Omad!

Men hamma narsani tekshirdim, u to'g'ri ishlaydi!

O'LIM

O'LIM

DAXSHAT, kambag‘al, omadsiz, nasibasi, na bir qismi, na baxti bo‘lmagan odam. Hech qayerda uysizlar uchun joy yo'q.

| bot. urug 'bo'laklari haqida gapirganda, ko'chat barglari haqida: bu loblarga ega bo'lmagan o'simliklar, akotiledonlar; Bular aynan quyi ikki sinf, gulsiz o'simliklar: otlar, paporotniklar, moxlar, moxlar, moxlar, qo'ziqorinlar, suv o'tlari. Bekor odam uysiz ayol bechora, baxtsiz, baxtsiz. Birovni ulushdan mahrum qilmoq, birovni ulushdan, ulushdan, qismdan, ulushdan mahrum qilmoq, qatnashmaslik;

| baxtdan, merosdan, qismatdan, halokatdan, xafa qilishdan, zulmdan mahrum qilish. Nega mendan mahrum qilyapsan, yovuz qismat? Qo‘shnilarim kambag‘al, menga yer bermayapti. Bekor bo‘lmoq, ulushsiz yashamoq, bechora, bechora. Dole Wed etishmasligi. uysiz ayol musibat, baxtsizlik, qayg'u, baxtsizlik, uzoq davom etgan ofat, vaqtsizlik, yovuzlik, yomon qismat; ayollarning uysizligi hayotning etishmasligi, taqdirning qiyinchiliklari, taqdir;

| uysiz odamlar O'gay bolalar uysiz.


Dahlning tushuntirish lug'ati. IN VA. Dahl. 1863-1866 yillar.


Sinonimlar:

Boshqa lug'atlarda "arzimas" nima ekanligini ko'ring:

    Sm … Sinonim lug'at

    Bezdolniy, Aleksandr Vasilyevich Aleksandr Vasilyevich Bezdolniy partiyasi: Yagona Rossiya Tug'ilgan yili: 1935 yil 5 sentyabr (1935 ... Vikipediya)

    adj. parchalanish 1. nisbat ot bilan u bilan bog‘liq baxtsizlik 2. baxtli ko‘p narsadan mahrum; baxtsiz, baxtsiz. Efrayimning izohli lug'ati. T. F. Efremova. 2000... Efremova tomonidan rus tilining zamonaviy tushuntirish lug'ati

    Arzimas, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz, qarzsiz.

    uysiz- uysiz; qisqacha zig'ir shakli, zig'ir ... Rus imlo lug'ati

    Aya, oh; zig'ir, zig'ir, zig'ir. Savdo. adv. Baxtli taqdirni bilmaslik; baxtsiz, baxtsiz (odatda inson yoki uning hayoti haqida) ... ensiklopedik lug'at

    uysiz- oh, oh; zig'ir, zig'ir, zig'ir., savdo. adv. Baxtli taqdirni bilmaslik; baxtsiz, baxtsiz (odatda inson yoki uning hayoti haqida) ... Ko'p iboralar lug'ati

    uysiz- holda/dol/n/y… Morfemik-imlo lug'ati

    1999 yil dekabr oyidan uchinchi chaqiriq Rossiya Federatsiyasi Federal Majlisining Davlat Dumasi deputati, "Birlik" fraksiyasi a'zosi, Byudjet qo'mitasi a'zosi; 1935 yil 5 sentyabrda Pavlodar viloyatida tug‘ilgan; Tomsk moliya kredit kollejini tamomlagan... Katta biografik ensiklopediya

    Sergey Leonidovich Bezdolniy, Rostov viloyati, Azov shahri meri. Biografiyasi 1959 yil 20 oktyabrda Azov shahrida tug'ilgan. Oliy ma'lumot. 1982 yilda Rostov-Don qishloq xo'jaligi muhandislik institutini... ... Vikipediyani tamomlagan.

#o'z ichiga oladi
#o'z ichiga oladi
int regcomp (regex_t *preg, const char *regex, intbayroqlar);
int regexec(const regex_t *preg, const char *ip, size_tnmatch,
regmatch_to'yin, intbayroqlar);
size_t regerror(intxato kodi, const regex_t *preg, belgi *errbuf,
size_terrbuf_size);
bekor regfree(regex_t *preg);

TAVSIF

POSIX muntazam ifodalarini kompilyatsiya qilish

Funktsiya regcomp() muntazam ifodani keyingi qidiruvlar uchun mos formatga kompilyatsiya qilish uchun ishlatiladi regexec().

regcomp() bufer shablonini saqlash maydoniga ko'rsatgich uzatiladi preg, null bilan tugallangan qatorga ko'rsatgich regex va bayroqlar bayroqlar, kompilyatsiya turini aniqlash uchun ishlatiladi.

Barcha muntazam iboralar qidiruvi kompilyatsiya qilingan bufer naqsh yordamida amalga oshirilishi kerak, shuning uchun regexec() har doim funktsiya tomonidan ishga tushirilgan bufer shablonining manzili bilan chaqirilishi kerak regcomp().

Ma'nosi bayroqlar bitlidan iborat bo'lishi mumkin yoki quyidagi qiymatlardan nolga teng yoki undan ko'p:

REG_EXTENDED Sharhlashda POSIX kengaytirilgan muntazam ifoda sintaksisidan foydalaning regex. Agar bu belgi yoqilmagan bo'lsa, POSIX oddiy oddiy ifoda sintaksisi ishlatiladi. REG_ICASE Holatga e'tibor bermaslik. Keyingi qidiruvlar regexec() bu bufer naqshidan foydalanganda katta-kichik harf sezgir bo'lmaydi. REG_NOSUB Gugurtlarning holati haqida xabar bermang. Variantlar nmatch Va o'yin Uchun regexec Agar berilgan bufer shabloni ushbu bayroq yoqilgan holda tuzilgan bo'lsa () e'tiborga olinmaydi. REG_NEWLINE Har qanday belgi bilan mos keladigan operatorlar yangi qator belgisiga mos kelmaydi.

Mos kelmaydigan belgilar roʻyxati ( [^...] ) yangi qator belgisisiz yangi qator bilan bir xil emas.

Qator boshiga asoslangan taqqoslash operatori ( ^ ) nima bo'lishidan qat'iy nazar, yangi qatordan keyin darhol bo'sh satrga mos keladi bayroqlar, ijro bayroqlari regexec(), o'z ichiga oladi REG_NOTBOL.

Qator oxirini taqqoslash operatori ($) nima bo'lishidan qat'i nazar, bo'sh satrga satr boshi belgisigacha mos keladi. bayroqlar o'z ichiga oladi REG_NOTEOL.

POSIX muntazam ifodasi bilan taqqoslash

Funktsiya regexec() null bilan yakunlangan qatorni oldindan ishlangan bufer naqshiga solishtirish uchun ishlatiladi preg. Argumentlar nmatch Va o'yin har qanday o'yinlarning joylashuvi haqida ma'lumot berish uchun ishlatiladi. Ma'nosi bayroqlar bitli bo'lishi mumkin YOKI bir yoki ikkala qiymat REG_NOTBOL Va REG_NOTEOL. Ushbu qiymatlar quyida tavsiflanganidek, taqqoslash jarayonining harakatini aniqlaydi. REG_NOTBOL Satrning boshida joylashgan taqqoslash operatori har doim muvaffaqiyatsiz bo'ladi (lekin yuqorida tavsiflangan kompilyatsiya bayrog'iga qarang). REG_NEWLINE). Bu bayroqdan foydalanish mumkin regexec() satrning alohida qismlari uzatiladi va bu holda bunday satrning boshlanishi yangi satrning boshlanishi sifatida talqin qilinmasligi kerak. REG_NOTEOL Qator oxiridagi taqqoslash operatori har doim muvaffaqiyatsiz bo'ladi (lekin yuqorida tavsiflangan kompilyatsiya bayrog'iga qarang). REG_NEWLINE).

Bayt ofsetlari

Agar REG_NOSUB bufer shablonini kompilyatsiya qilishda o'rnatilmagan, mos keladigan joy haqida ma'lumot olish mumkin. Ma'nosi o'yin kamida ega bo'lishi aniqlanishi kerak nmatch elementlar. Ular to'ldirmoqda regexec() inline mosliklar manzillari. bilan boshlanadigan pastki ifodaning ofsetlari i- qavsni ochish, ichida saqlanadi pmatch[i]. Butun muntazam ifodaning mos manzili saqlanadi o'yin(esda tutingki, moslik ofsetlarini qaytarish uchun N pastki ifodalar, ma'no nmatch kam bo'lmasligi kerak N+1). Har qanday foydalanilmagan struktura elementlari -1 qiymatini o'z ichiga oladi.

Tuzilishi regmatch_t, qaysi bir turi o'yin, da belgilangan :

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

Har bir element rm_so, -1 ga teng emas, berilgan satr ichidagi eng katta pastki qatorning keyingi mosligining boshlang'ich ofsetini ko'rsatadi. Nisbiy element rm_eo mos keladigan matndan keyingi birinchi belgi bo'lgan o'yin oxirining ofsetini ko'rsatadi.

POSIX xatosi haqida xabar berish

Funktsiya qayta tiklash dan olinishi mumkin bo'lgan xato kodlarini aylantirish uchun ishlatiladi regcomp() Va regexec(), xato xabari satrlariga.

IN qayta tiklash uzatiladi: xato kodi xato kodi, bufer naqsh preg, belgilar qatori buferiga ko'rsatgich errbuf va qator bufer hajmi errbuf_size. Funktsiya o'lchamni qaytaradi errbuf, bu xato xabarini null bilan tugatilgan qator sifatida saqlash uchun talab qilinadi. Agar errbuf, Va errbuf_size u holda nolga teng emas errbuf birinchi bo'lib to'ldiriladi errbuf_size - 1 xato xabari belgilari va null bayt ("\0") bilan tugaydi.

POSIX shablon buferini bo'shatish

Funktsiya regfree() bufer shabloniga ajratilgan xotirani bo'shatadi preg yordamida kompilyatsiya jarayonida regcomp().

QAYTISH QIYMATI

Funktsiya regcomp() Muvaffaqiyatli kompilyatsiyada nol yoki xato kodini qaytaradi.

Funktsiya regexec() o'yinda nolni qaytaradi yoki REG_NOMATCH, agar mos keladiganlar bo'lmasa.

XATOLAR

Funktsiya regcomp() quyidagi xatolarni qaytarishi mumkin: REG_BADBR Orqaga ulanish operatoridan noto'g'ri foydalanish. REG_BADPAT Shablon operatorlaridan noto'g'ri foydalanish, masalan, guruh yoki ro'yxat operatorlari. REG_BADRPT Takrorlash operatorlaridan noto'g'ri foydalanish, masalan, birinchi belgi sifatida "*" dan foydalanish. REG_EBRACE Intervalli operatorlarda ajratilmagan qavslar. REG_EBRACK Roʻyxat bayonotlarida ajratilmagan kvadrat qavslar. REG_ECOLLATE Yaroqsiz tartiblash elementi. REG_ECTYPE Noma'lum belgilar sinfi nomi. REG_EEND Potentsial xato. POSIX.2 da aniqlanmagan. REG_EESCAPE Teskari chiziq. REG_EPAREN Guruhlash operatorlarida ajratilmagan qavslar. REG_ERANGE Hudud operatoridan noto'g'ri foydalanish: masalan, maydonning oxiri uning boshlanishidan oldin paydo bo'ladi. REG_ESIZE Kompilyatsiya qilingan muntazam ifoda 64 KB dan katta bufer naqshini talab qiladi. Bu POSIX.2 da aniqlanmagan. REG_ESPACE Oddiy ifoda tartiblari xotirasi tugadi. REG_ESUBREG Pastki ifodaga yaroqsiz qayta havola.