უსახლკარო. უსახლკარო ნახეთ რა არის „უსახლკარო“ სხვა ლექსიკონებში

გამარჯობა! ახლა ჩვენ შევეცდებით განვახორციელოთ საიტზე უმარტივესი რეგისტრაცია 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);
თუ (! ცარიელი ($myrow["id"])) (
exit("ბოდიში, თქვენ მიერ შეყვანილი შესვლა უკვე რეგისტრირებულია. გთხოვთ შეიყვანოთ სხვა შესვლა.");
}
// თუ ასეთი რამ არ არსებობს, მაშინ შეინახეთ მონაცემები
$result2 = mysql_query ("INSERT INTO მომხმარებლებს (შესვლა, პაროლი) VALUES ("$login","$პაროლი")");
// შეამოწმეთ არის თუ არა შეცდომები
თუ ($result2=="TRUE")
{
echo "თქვენ წარმატებით დარეგისტრირდით! ახლა შეგიძლიათ შეხვიდეთ საიტზე. მთავარი გვერდი";
}
სხვა (
echo "შეცდომა! თქვენ არ ხართ დარეგისტრირებული.";
}
?>

5. ახლა ჩვენს მომხმარებლებს შეუძლიათ რეგისტრაცია!შემდეგი, თქვენ უნდა შექმნათ "კარი" უკვე დარეგისტრირებული მომხმარებლებისთვის საიტზე შესასვლელად. index.php(კომენტარები შიგნით) :

// მთელი პროცედურა მუშაობს სესიებში. ეს არის სადაც მომხმარებლის მონაცემები ინახება საიტზე ყოფნისას. ძალიან მნიშვნელოვანია მათი გაშვება გვერდის დასაწყისში!!!
session_start();
?>


მთავარი გვერდი


მთავარი გვერდი











რეგისტრაცია



// შეამოწმეთ, არის თუ არა შესვლის და მომხმარებლის 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["პაროლი"])) ($პაროლი=$_POST["პაროლი"]; if ($password =="") ( გაუქმება ($პაროლი);) )
//ჩადეთ მომხმარებლის მიერ შეყვანილი პაროლი $password ცვლადში, თუ ის ცარიელია, გაანადგურეთ ცვლადი
თუ (ცარიელი($login) ან ცარიელი($პაროლი)) //თუ მომხმარებელმა არ შეიყვანა შესვლა ან პაროლი, მაშინ ჩვენ გამოვცდებით შეცდომას და ვაჩერებთ სკრიპტს
{
exit ("თქვენ არ შეიყვანეთ ყველა ინფორმაცია, დაბრუნდით და შეავსეთ ყველა ველი!");
}
//თუ შესვლა და პაროლი შეყვანილია, მაშინ ჩვენ ვამუშავებთ მათ ისე, რომ ტეგები და სკრიპტები არ იმუშაოს, თქვენ არასოდეს იცით, რა შეიძლება შეიყვანონ ხალხმა
$login = stripslashes ($login);
$login = htmlspecialchars($login);
$პაროლი = stripslashes ($პაროლი);
$პაროლი = htmlspecialchars($პაროლი);
//დამატებითი ადგილების ამოღება
$login = trim($login);
$პაროლი = მორთვა ($პაროლი);
// დაკავშირება მონაცემთა ბაზასთან
include("bd.php");// bd.php ფაილი უნდა იყოს იმავე საქაღალდეში, როგორც ყველა სხვა, თუ არ არის, უბრალოდ შეცვალეთ გზა

$result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //ამოიღეთ მონაცემთა ბაზიდან მომხმარებლის შესახებ ყველა მონაცემი შეყვანილი ლოგინით
$myrow = mysql_fetch_array ($ შედეგი);
თუ (ცარიელი ($myrow["პაროლი"]))
{
//თუ მომხმარებელი შეყვანილი ლოგინით არ არსებობს
}
სხვა (
//თუ არსებობს, მაშინ შეამოწმეთ პაროლები
თუ ($myrow["პაროლი"]==$პაროლი) (
//თუ პაროლები ემთხვევა, მაშინ ჩვენ ვიწყებთ სესიას მომხმარებლისთვის! შეგიძლიათ მიულოცოთ, ის შევიდა!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//ეს მონაცემები გამოიყენება ძალიან ხშირად, ასე რომ, შესული მომხმარებელი "გაატარებს მას"
echo "თქვენ წარმატებით შეხვედით საიტზე! მთავარ გვერდზე";
}
სხვა (
//თუ პაროლები არ ემთხვევა

გასვლა ("ბოდიში, თქვენ მიერ შეყვანილი შესვლა ან პაროლი არასწორია.");
}
}
?>

კარგი, ახლა ყველაფერი დასრულდა! გაკვეთილი შეიძლება იყოს მოსაწყენი, მაგრამ ძალიან სასარგებლო. აქ ნაჩვენებია მხოლოდ რეგისტრაციის იდეა, შემდეგ შეგიძლიათ გააუმჯობესოთ იგი: დაამატეთ დაცვა, დიზაინი, მონაცემთა ველები, ავატარების ჩატვირთვა, ანგარიშიდან გასვლა (ამისთვის უბრალოდ გაანადგურეთ ცვლადები სესიიდან ფუნქციით. დაუყენებელი) და ასე შემდეგ. Წარმატებები!

ყველაფერი შევამოწმე, მუშაობს გამართულად!

სასიკვდილო

სასიკვდილო

საშინელება, ღარიბი, უიღბლო ადამიანი, რომელსაც არ ჰქონდა წილი, წილი და ბედნიერება. უსახლკაროების ადგილი არსად არის.

| ბოტი. სათესლე ლობებზე საუბრისას, ჩითილის ფოთლებზე: მცენარეები, რომლებსაც არ აქვთ ეს წილები, აკოტილედონები; ეს არის ზუსტად ორი ქვედა კლასი, უყვავილო მცენარეები: ცხენის კუდები, გვიმრები, ხავსები, ხავსები, ხავსები, სოკოები, წყალმცენარეები. უსაქმური კაცი უსახლკარო ქალი ღარიბი, უბედური, უბედური. ვინმეს გამოყოფა, ვინმეს გამოყოფა, წილი, ნაწილი, წილი, არ მონაწილეობის მიღება;

| ართმევს ბედნიერებას, მემკვიდრეობას, ბედს, დანგრევას, შეურაცხყოფას, ჩაგვრას. რატომ მაშორებ, ბოროტი ბედი? ჩემი მეზობლები ღარიბები არიან და მიწას არ მაძლევენ. უსაქმოდ ყოფნა, წილის გარეშე ცხოვრება, გაჭირვება, გაჭირვება. ნაკლებობა Dole Wed. უსახლკარო ქალი უბედურება, უბედურება, მწუხარება, უბედურება, გახანგრძლივებული უბედურება, უდროობა, ბოროტება, ცუდი ბედი; ქალების უსახლკარობა სიცოცხლის ნაკლებობა, ბედის უბედურება, ბედი;

| უსახლ - კარო ადამიანები დედმამიშვილები უსახლკაროები არიან.


დალის განმარტებითი ლექსიკონი. და. დალი. 1863-1866 წწ.


სინონიმები:

ნახეთ, რა არის „უღირს“ სხვა ლექსიკონებში:

    Სმ … სინონიმური ლექსიკონი

    ბეზდოლნი, ალექსანდრე ვასილიევიჩი ალექსანდრე ვასილიევიჩ ბეზდოლნი პარტია: ერთიანი რუსეთი დაბადება: 1935 წლის 5 სექტემბერი (1935 ... ვიკიპედია

    ადჯ. დაშლა 1. თანაფარდობა არსებითი სახელით მასთან დაკავშირებული ბედნიერების ნაკლებობა 2. მოკლებულია ბედნიერ ლოტს; უბედური, უბედური. ეფრემის განმარტებითი ლექსიკონი. ტ.ფ. ეფრემოვა. 2000... ეფრემოვას რუსული ენის თანამედროვე განმარტებითი ლექსიკონი

    უღირსი, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ, უვალოდ... ... სიტყვების ფორმები.

    უსახლკარო- უსახლკარო; მოკლედ თეთრეულის ფორმა, თეთრეული... რუსული მართლწერის ლექსიკონი

    აი, ოჰ; სელის, სელის, სელის. ტრად. ადვ. არ იცის ბედნიერი ბედი; უბედური, უბედური (ჩვეულებრივ ადამიანზე ან მის ცხოვრებაზე) ... ენციკლოპედიური ლექსიკონი

    უსახლკარო- ოჰ ოჰ; სელის, სელის, სელის, ტრად. ადვ. არ იცის ბედნიერი ბედი; უბედური, უბედური (ჩვეულებრივ ადამიანზე ან მის ცხოვრებაზე) ... მრავალი გამოთქმის ლექსიკონი

    უსახლკარო- გარეშე/დოლ/წ/წ… მორფემულ-მართლწერის ლექსიკონი

    1999 წლის დეკემბრიდან მესამე მოწვევის რუსეთის ფედერაციის ფედერალური ასამბლეის სახელმწიფო დუმის დეპუტატი, ფრაქციის ერთიანობის წევრი, საბიუჯეტო კომიტეტის წევრი; დაიბადა 1935 წლის 5 სექტემბერს პავლოდარის მხარეში; დაამთავრა ტომსკის ფინანსური საკრედიტო კოლეჯი... დიდი ბიოგრაფიული ენციკლოპედია

    სერგეი ლეონიდოვიჩ ბეზდოლნი როსტოვის ოლქის ქალაქ აზოვის მერი. ბიოგრაფია დაიბადა 1959 წლის 20 ოქტომბერს ქალაქ აზოვში. Უმაღლესი განათლება. 1982 წელს დაამთავრა დონის როსტოვის სოფლის მეურნეობის ინჟინერიის ინსტიტუტი... ... ვიკიპედია

#შეიცავს
#შეიცავს
int regcomp(regex_t *პრეგ, const char *რეგექსი, ინტcflags);
int regexec(const regex_t *პრეგ, const char *სიმებიანი, ზომა_ტnmatch,
regmatch_tმატჩი, ინტდროშები);
ზომის_t გადაწერა (ინტშეცდომის კოდი, const regex_t *პრეგ, char *ერბუფი,
ზომა_ტერბუფის_ზომა);
void regfree(regex_t *პრეგ);

აღწერა

POSIX რეგულარული გამონათქვამების შედგენა

ფუნქცია regcomp() გამოიყენება რეგულარული გამონათქვამის შედგენის ფორმატში, რომელიც შესაფერისია შემდგომი ძიების გამოყენებით regexec().

regcomp() ბუფერული შაბლონის შენახვის ზონის მაჩვენებელი გადაცემულია პრეგ, მაჩვენებელი null-შეწყვეტილი სტრიქონისკენ რეგექსიდა დროშები cflags, გამოიყენება კომპილაციის ტიპის დასადგენად.

ყველა რეგულარული გამოხატვის ძიება უნდა განხორციელდეს შედგენილი ბუფერული ნიმუშის გამოყენებით, ასე რომ regexec() ყოველთვის უნდა გამოიძახოთ ბუფერული შაბლონის მისამართით, რომელიც ინიციალიზებულია ფუნქციით regcomp().

მნიშვნელობა cflagsშეიძლება შედგებოდეს ბიტალურად ანნული ან მეტი შემდეგი მნიშვნელობებიდან:

REG_EXTENDEDგამოიყენეთ POSIX გაფართოებული რეგულარული გამოხატვის სინტაქსი ინტერპრეტაციისას რეგექსი. თუ ეს დროშა არ არის ჩართული, POSIX მარტივი რეგულარული გამოხატვის სინტაქსი გამოიყენება. REG_ICASEსაქმეს იგნორირება. შემდგომი ძიებები regexec() ამ ბუფერული ნიმუშის გამოყენება არ იქნება რეგისტრირებული. REG_NOSUBარ შეატყობინოთ მატჩების პოზიციას. Პარამეტრები nmatchდა მატჩიამისთვის regexec() იგნორირებულია, თუ მოცემული ბუფერული შაბლონი შედგენილია ამ დროშის ჩართულით. REG_NEWLINEნებისმიერი სიმბოლოს მქონე ოპერატორები არ ემთხვევა ახალი ხაზის სიმბოლოს.

შეუსაბამო სიმბოლოების სია ( [^...] ) ახალი ხაზის სიმბოლოს გარეშე არ არის იგივე რაც ახალი ხაზი.

შედარების ოპერატორი სტრიქონის საწყისზე დაფუძნებული ( ^ ) ემთხვევა ცარიელ სტრიქონს ახალი ხაზის შემდეგ, რაც არ უნდა მოხდეს დროშები, აღსრულების დროშები regexec(), შეიცავს REG_NOTBOL.

ხაზის ბოლოს შედარების ოპერატორი ($) ემთხვევა ცარიელ სტრიქონს საწყისის სიმბოლომდე, რაც არ უნდა დროშებიშეიცავს REG_NOTEOL.

POSIX რეგულარულ გამოხატულებასთან შედარება

ფუნქცია regexec() გამოიყენება ნულშეწყვეტილი სტრიქონის წინასწარ დამუშავებულ ბუფერულ შაბლონთან შესადარებლად პრეგ. არგუმენტები nmatchდა მატჩიგამოიყენება ნებისმიერი მატჩის ადგილმდებარეობის შესახებ ინფორმაციის მისაწოდებლად. მნიშვნელობა დროშებიშეიძლება იყოს ბიტალურად ანერთი ან ორივე ღირებულება REG_NOTBOLდა REG_NOTEOL. ეს მნიშვნელობები განსაზღვრავს შედარების პროცესის ქცევას, როგორც ეს აღწერილია ქვემოთ. REG_NOTBOLსტრიქონის დასაწყისში შედარების ოპერატორი ყოველთვის ვერ ხერხდება (მაგრამ იხილეთ ზემოთ აღწერილი კომპილაციის დროშა REG_NEWLINE). ამ დროშის გამოყენება შესაძლებელია, როდესაც regexec() სტრიქონის ცალკეული ნაწილები გადაცემულია და ასეთი სტრიქონის დასაწყისი ამ შემთხვევაში არ უნდა იქნას განმარტებული, როგორც ახალი ხაზის დასაწყისი. REG_NOTEOLხაზის ბოლოს შედარების ოპერატორი ყოველთვის მარცხდება (მაგრამ იხილეთ ზემოთ აღწერილი კომპილაციის დროშა REG_NEWLINE).

ბაიტის ოფსეტები

თუ REG_NOSUBარ არის დაყენებული ბუფერული შაბლონის შედგენისას, შესაძლებელია ინფორმაციის მიღება მატჩების პოზიციის შესახებ. მნიშვნელობა მატჩიუნდა განისაზღვროს მინიმუმ nmatchელემენტები. ისინი ივსება regexec() ხაზოვანი მატჩების მისამართები. ქვეგამოთქმის ოფსეტები დაწყებული მე- ღია ფრჩხილები, შენახული მატჩი[i]. მთელი რეგულარული გამონათქვამის შესატყვისი მისამართი ინახება მატჩი(გაითვალისწინეთ, რომ მატჩის ოფსეტების დასაბრუნებლად ქვეგამოთქმები, მნიშვნელობა nmatchარ უნდა იყოს ნაკლები N+1). ნებისმიერი გამოუყენებელი სტრუქტურის ელემენტი შეიცავს -1 მნიშვნელობას.

სტრუქტურა regmatch_t, რომელიც არის ტიპი მატჩი, განსაზღვრულია :

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

თითოეული ელემენტი rm_so, არ არის -1-ის ტოლი, მიუთითებს მოცემულ სტრიქონში ყველაზე დიდი ქვესტრიქონის შემდეგი მატჩის საწყის ოფსეტზე. შედარებითი ელემენტი rm_eoმიუთითებს მატჩის დასასრულის ოფსეტზე, რომელიც არის პირველი სიმბოლო შესატყვისი ტექსტის შემდეგ.

POSIX შეცდომის შეტყობინება

ფუნქცია რეგენერაციაგამოიყენება შეცდომის კოდების გადასაყვანად, რომელთაგან შეიძლება მიღებული იყოს regcomp() და regexec(), შეცდომის შეტყობინების ხაზებში.

IN რეგენერაციაგადაცემული: შეცდომის კოდი შეცდომის კოდი, ბუფერული ნიმუში პრეგ, მაჩვენებელი სიმბოლოს სტრიქონის ბუფერზე ერბუფიდა მწკრივის ბუფერის ზომა ერბუფის_ზომა. ფუნქცია აბრუნებს ზომას ერბუფი, რომელიც საჭიროა შეცდომის შეტყობინების შესანახად, როგორც null-შეწყვეტილი სტრიქონი. თუ ერბუფი, და ერბუფის_ზომამაშინ ნულის ტოლი არ არის ერბუფიპირველი შევსებული errbuf_size - 1შეცდომის შეტყობინების სიმბოლოები და მთავრდება ნულოვანი ბაიტით („\0“).

POSIX შაბლონის ბუფერის გათავისუფლება

ფუნქცია რეგფრი() ათავისუფლებს ბუფერულ შაბლონზე გამოყოფილ მეხსიერებას პრეგგამოყენების დროს შედგენის პროცესში 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 KB-ს. ეს არ არის განსაზღვრული POSIX.2-ში. REG_ESPACEრეგულარული გამოხატვის რუტინებს მეხსიერება ამოეწურა. REG_ESUBREGქვეგამოხატვის არასწორი მინიშნება.