Walang tirahan. Homeless Tingnan kung ano ang "homeless" sa ibang mga diksyunaryo

Kamusta! Ngayon ay susubukan naming ipatupad ang pinakasimpleng pagpaparehistro sa site gamit ang PHP + MySQL. Upang gawin ito, dapat na naka-install ang Apache sa iyong computer. Ang prinsipyo ng pagtatrabaho ng aming script ay ipinapakita sa ibaba.

1. Magsimula tayo sa paglikha ng talahanayan ng mga gumagamit sa database. Maglalaman ito ng data ng gumagamit (pag-login at password). Pumunta tayo sa phpmyadmin (kung gumagawa ka ng database sa iyong PC http://localhost/phpmyadmin/). Gumawa ng table mga gumagamit, magkakaroon ito ng 3 field.

Ginagawa ko ito sa mysql database, maaari mo itong gawin sa ibang database. Susunod, itakda ang mga halaga tulad ng sa figure:

2. Kinakailangan ang koneksyon sa talahanayang ito. Gumawa tayo ng file bd.php. Ang nilalaman nito:

$db = mysql_connect("iyong MySQL server","mag-login para sa server na ito", "password para sa server na ito");
mysql_select_db ("pangalan ng database kung saan kami kumukonekta", $db);
?>

Sa aking kaso, ganito ang hitsura:

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

I-save bd.php.
Malaki! Mayroon kaming isang talahanayan sa database at isang koneksyon dito. Ngayon ay maaari ka nang magsimulang lumikha ng isang pahina kung saan iiwan ng mga user ang kanilang data.

3. Lumikha ng isang reg.php file na may mga nilalaman (lahat ng mga komento sa loob):



Pagpaparehistro


Pagpaparehistro


















4. Gumawa ng file, na magpapasok ng data sa database at i-save ang user. save_user.php(mga komento sa loob):



{
}
//kung ipinasok ang login at password, pagkatapos ay pinoproseso namin ang mga ito upang hindi gumana ang mga tag at script, hindi mo alam kung ano ang maaaring ipasok ng mga tao


//alisin ang mga karagdagang espasyo
$login = trim($login);
$password = trim ($password);
// kumonekta sa database
// suriin ang pagkakaroon ng user na may parehong login
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
kung (!empty($myrow["id"])) (
exit("Paumanhin, ang login na iyong ipinasok ay nakarehistro na. Mangyaring magpasok ng isa pang login.");
}
// kung hindi ito ang kaso, pagkatapos ay i-save ang data
$result2 = mysql_query("INSERT INTO users (login,password) VALUES("$login","$password")");
// Suriin kung may mga error
kung ($result2=="TRUE")
{
echo "Matagumpay kang nakarehistro! Ngayon ay maaari kang pumasok sa site. Home page";
}
iba pa(
echo "Error! Hindi ka nakarehistro.";
}
?>

5. Ngayon ang aming mga gumagamit ay maaaring magparehistro! Susunod, kailangan mong lumikha ng isang "pinto" para sa mga nakarehistrong user na makapasok sa site. index.php(mga komento sa loob):

// gumagana ang buong procedure sa mga session. Ito ay kung saan naka-imbak ang data ng user habang siya ay nasa site. Napakahalaga na ilunsad ang mga ito sa pinakadulo simula ng pahina!!!
session_start();
?>


Home page


Home page











Magrehistro



// Suriin kung walang laman ang login at user id variable
kung (walang laman($_SESSION["login")]) o walang laman($_SESSION["id"]))
{
// Kung walang laman, hindi namin ipapakita ang link
echo "Naka-log in ka bilang bisita
Ang link na ito ay magagamit lamang sa mga rehistradong gumagamit";
}
iba pa
{

Nasa file index.php Magpapakita kami ng link na magbubukas lamang sa mga rehistradong user. Ito ang buong punto ng script - upang limitahan ang pag-access sa anumang data.

6. May nananatiling isang file na may pagpapatunay ng inilagay na login at password. testreg.php (mga komento sa loob):

session_start(); // gumagana ang buong procedure sa mga session. Ito ay kung saan naka-imbak ang data ng user habang siya ay nasa site. Napakahalaga na ilunsad ang mga ito sa pinakadulo simula ng pahina!!!
if (isset($_POST["login"])) ($login = $_POST["login"]; if ($login == "") ( unset($login);) ) //ipasok ang login na ipinasok ni ang user sa $login variable, kung ito ay walang laman, pagkatapos ay sirain ang variable
if (isset($_POST["password"])) ($password=$_POST["password"]; if ($password =="") ( unset ($password);) )
//ilagay ang password na inilagay ng user sa variable na $password, kung ito ay walang laman, pagkatapos ay sirain ang variable
if (empty($login) or empty($password)) //kung hindi nagpasok ng login o password ang user, maglalabas kami ng error at itigil ang script
{
exit("Hindi mo nailagay ang lahat ng impormasyon, bumalik at punan ang lahat ng mga patlang!");
}
//kung ipinasok ang login at password, pagkatapos ay pinoproseso namin ang mga ito upang hindi gumana ang mga tag at script, hindi mo alam kung ano ang maaaring ipasok ng mga tao
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//alisin ang mga karagdagang espasyo
$login = trim($login);
$password = trim ($password);
// kumonekta sa database
include("bd.php");// ang bd.php file ay dapat nasa parehong folder tulad ng lahat ng iba pa, kung hindi, palitan lang ang path

$result = mysql_query("SELECT * FROM users WHERE login="$login"",$db); //kunin mula sa database ang lahat ng data tungkol sa user na may inilagay na login
$myrow = mysql_fetch_array($result);
kung (walang laman($myrow["password")]))
{
//kung ang user na may inilagay na login ay wala
}
iba pa(
//kung mayroon, pagkatapos ay suriin ang mga password
kung ($myrow["password"]==$password) (
//kung tumugma ang mga password, maglulunsad kami ng session para sa user! Maaari mo siyang batiin, nakapasok siya!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//ang data na ito ay madalas na ginagamit, kaya ang naka-log in na user ay "dalhin ito kasama niya"
echo "Matagumpay kang nakapasok sa site! Home page";
}
iba pa(
//kung ang mga password ay hindi tugma

Exit ("Paumanhin, ang login o password na iyong inilagay ay hindi tama.");
}
}
?>

OK tapos na ang lahat Ngayon! Ang aralin ay maaaring mayamot, ngunit lubhang kapaki-pakinabang. Tanging ang ideya ng pagpaparehistro ay ipinapakita dito, pagkatapos ay maaari mong pagbutihin ito: magdagdag ng proteksyon, disenyo, mga field ng data, pag-load ng mga avatar, pag-log out sa account (upang gawin ito, sirain lamang ang mga variable mula sa session gamit ang function hindi nakatakda) at iba pa. Good luck!

Sinuri ko ang lahat, gumagana ito nang maayos!

NAKAKAMATAY

NAKAKAMATAY

NAKAKAKIKIKIT, mahirap na tao, malas, taong walang bahagi, bahagi, o kaligayahan. Walang lugar para sa mga walang tirahan kahit saan.

| bot. nagsasalita ng mga lobe ng buto, tungkol sa mga dahon ng punla: mga halaman na walang mga lobe na ito, mga acotyledones; Ang mga ito ay tiyak ang mas mababang dalawang klase, walang bulaklak na mga halaman: horsetails, ferns, mosses, mosses, lumot, mushroom, algae. taong walang ginagawa babaeng walang tirahan mahirap, sawi, sawi. To deprive someone of allotment, to deprive someone of an allotment, share, part, share, para hindi makilahok;

| mag-alis ng kaligayahan, mana, kapalaran, sumira, masaktan, mang-api. Bakit mo ako pinagkaitan, masamang kapalaran? Ang aking mga kapitbahay ay mahirap at hindi ako binibigyan ng anumang lupa. Ang maging walang ginagawa, ang mabuhay nang walang bahagi, ang maging mahirap, ang maging miserable. Kulang sa Dole Wed. babaeng walang tirahan kahirapan, kasawian, kalungkutan, kasawian, matagal na sakuna, kawalang-panahon, kasamaan, masamang kapalaran; kawalan ng tirahan ng mga kababaihan kakulangan ng buhay, kahirapan ng kapalaran, kapalaran;

| mga taong walang tirahan Ang mga stepson ay walang tirahan.


Diksyunaryo ng Paliwanag ni Dahl. SA AT. Dahl. 1863-1866.


Mga kasingkahulugan:

Tingnan kung ano ang "WORTHLESS" sa ibang mga diksyunaryo:

    Cm… diksyunaryo ng kasingkahulugan

    Bezdolny, Alexander Vasilyevich Alexander Vasilyevich Bezdolny Party: United Russia Kapanganakan: Setyembre 5, 1935 (1935 ... Wikipedia

    Adj. pagkabulok 1. ratio may pangngalan kawalan ng kaligayahang kaakibat nito 2. Pinagkaitan ng masayang pulutong; malungkot, malungkot. Ang paliwanag na diksyunaryo ng Ephraim. T. F. Efremova. 2000... Modernong paliwanag na diksyunaryo ng wikang Ruso ni Efremova

    Walang kwenta, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang, walang utang,... ... Mga anyo ng salita

    walang tirahan- walang tirahan; sa madaling sabi linen na hugis, linen... Diksyonaryo ng spelling ng Ruso

    Aya, oh; flax, flax, flax. Trad. adv. Hindi alam ang isang masayang kapalaran; malungkot, miserable (karaniwan ay tungkol sa isang tao o sa kanyang buhay) ... encyclopedic Dictionary

    walang tirahan- ay, ay; flax, flax, flax., trad. adv. Hindi alam ang isang masayang kapalaran; malungkot, miserable (karaniwan ay tungkol sa isang tao o sa kanyang buhay) ... Diksyunaryo ng maraming expression

    walang tirahan- walang/dol/n/y... Morphemic-spelling na diksyunaryo

    Deputy ng State Duma ng Federal Assembly ng Russian Federation ng ikatlong convocation mula noong Disyembre 1999, miyembro ng Unity faction, miyembro ng Budget Committee; ipinanganak noong Setyembre 5, 1935 sa rehiyon ng Pavlodar; nagtapos sa Tomsk Financial Credit College... Malaking biographical encyclopedia

    Sergey Leonidovich Bezdolny mayor ng lungsod ng Azov, rehiyon ng Rostov. Talambuhay Ipinanganak noong Oktubre 20, 1959 sa lungsod ng Azov. Mataas na edukasyon. Noong 1982 nagtapos siya sa Rostov-on-Don Institute of Agricultural Engineering sa... ... Wikipedia

#isama
#isama
int regcomp(regex_t *buntis, const char *regex, intmga cflag);
int regexec(const regex_t *buntis, const char *string, laki_tnmatch,
regmatch_tpmatch, intmga bandila);
size_t regerror(interrcode, const regex_t *buntis, char *errbuf,
laki_terrbuf_size);
void regfree(regex_t *buntis);

PAGLALARAWAN

Pag-compile ng mga regular na expression ng POSIX

Function regcomp() ay ginagamit upang i-compile ang regular na expression sa isang format na angkop para sa mga kasunod na paghahanap gamit regexec().

regcomp() isang pointer sa lugar ng imbakan ng buffer template ay ipinasa buntis, pointer sa isang null-terminated string regex at mga watawat mga cflag, ginagamit upang matukoy ang uri ng compilation.

Ang lahat ng mga regular na paghahanap ng expression ay dapat gawin gamit ang isang pinagsama-samang pattern ng buffer, kaya regexec() ay dapat palaging tinatawag na may address ng buffer template na sinimulan ng function regcomp().

Ibig sabihin mga cflag maaaring binubuo ng bitwise o zero o higit pa sa mga sumusunod na halaga:

REG_EXTENDED Gumamit ng POSIX extended regular expression syntax sa panahon ng interpretasyon regex. Kung hindi pinagana ang flag na ito, POSIX simpleng regular expression syntax ang ginagamit. REG_ICASE Huwag pansinin ang kaso. Mga kasunod na paghahanap regexec() ang paggamit ng buffer pattern na ito ay hindi magiging case sensitive. REG_NOSUB Huwag iulat ang posisyon ng mga laban. Mga pagpipilian nmatch At pmatch Para sa regexec() ay hindi papansinin kung ang ibinigay na buffer template ay pinagsama-sama sa flag na ito na pinagana. REG_NEWLINE Ang mga operator ng pagtutugma sa anumang karakter ay hindi tumutugma sa bagong linya na karakter.

Listahan ng mga hindi tugmang character ( [^...] ) na walang newline na character ay hindi katulad ng isang newline.

Operator ng paghahambing batay sa simula ng isang string ( ^ ) tumutugma sa walang laman na string pagkatapos ng bagong linya kahit na ano mga bandila, mga flag ng pagpapatupad regexec(), naglalaman ng REG_NOTBOL.

Ang end-of-line comparison operator ($) ay tumutugma sa walang laman na string hanggang sa start-of-line na character, kahit na ano mga bandila naglalaman ng REG_NOTEOL.

Paghahambing sa regular na expression ng POSIX

Function regexec() ay ginagamit upang ihambing ang isang null-terminated string sa isang pre-processed buffer pattern buntis. Mga argumento nmatch At pmatch ay ginagamit upang magbigay ng impormasyon tungkol sa lokasyon ng anumang mga tugma. Ibig sabihin mga bandila maaaring bitwise O isa o parehong mga halaga REG_NOTBOL At REG_NOTEOL. Tinutukoy ng mga halagang ito ang pag-uugali ng proseso ng paghahambing tulad ng inilarawan sa ibaba. REG_NOTBOL Ang operator ng paghahambing sa simula ng string ay palaging nabigo (ngunit tingnan ang flag ng compilation na inilarawan sa itaas REG_NEWLINE). Maaaring gamitin ang watawat na ito kapag regexec() ang mga hiwalay na bahagi ng isang string ay ipinapadala, at ang simula ng naturang string sa kasong ito ay hindi dapat bigyang-kahulugan bilang simula ng isang bagong linya. REG_NOTEOL Palaging nabigo ang end-of-line comparison operator (ngunit tingnan ang flag ng compilation na inilarawan sa itaas REG_NEWLINE).

Mga byte offset

Kung REG_NOSUB ay hindi nakatakda kapag kino-compile ang buffer template, posibleng makakuha ng impormasyon tungkol sa posisyon ng mga tugma. Ibig sabihin pmatch dapat tukuyin na magkaroon ng hindi bababa sa nmatch mga elemento. Nagpupuno na sila regexec() mga address ng mga inline na tugma. Mga offset ng isang subexpression na nagsisimula sa i- bukas na panaklong, nakaimbak sa pmatch[i]. Ang tugmang address ng buong regular na expression ay naka-imbak sa pmatch(tandaan na upang ibalik ang mga offset ng tugma N subexpression, kahulugan nmatch dapat hindi bababa N+1). Ang anumang hindi nagamit na elemento ng istraktura ay maglalaman ng halaga na -1.

Istruktura regmatch_t, na isang uri pmatch, tinukoy sa :

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

Bawat elemento rm_so, hindi katumbas ng -1, ay nagpapahiwatig ng panimulang offset ng susunod na tugma ng pinakamalaking substring sa loob ng ibinigay na string. Kamag-anak na elemento rm_eo ay nagpapahiwatig ng offset ng pagtatapos ng tugma, na siyang unang character pagkatapos ng katugmang teksto.

Pag-uulat ng Error sa POSIX

Function regerror ginagamit upang i-convert ang mga error code na maaaring matanggap mula sa regcomp() At regexec(), sa mga linya ng mensahe ng error.

SA regerror ipinadala: error code errcode, pattern ng buffer buntis, isang pointer sa isang character string buffer errbuf at laki ng buffer ng hilera errbuf_size. Ibinabalik ng function ang laki errbuf, na kinakailangan upang iimbak ang mensahe ng error bilang isang null-terminated string. Kung errbuf, At errbuf_size ay hindi katumbas ng zero, kung gayon errbuf napuno muna errbuf_size - 1 mga character ng mensahe ng error at nagtatapos sa isang null byte ("\0").

Pagpapalaya ng buffer ng template ng POSIX

Function regfree() pinapalaya ang memorya na inilaan sa buffer template buntis sa panahon ng proseso ng compilation gamit ang regcomp().

IBABALIK ANG HALAGA

Function regcomp() ay nagbabalik ng zero sa matagumpay na compilation o isang error code kung hindi man.

Function regexec() nagbabalik ng zero sa tugma o REG_NOMATCH, kung walang mga tugma.

MGA MALI

Function regcomp() ay maaaring ibalik ang mga sumusunod na error: REG_BADBR Maling paggamit ng backlink operator. REG_BADPAT Maling paggamit ng mga operator ng template, gaya ng mga operator ng grupo o listahan. REG_BADRPT Maling paggamit ng mga operator ng pag-uulit, gaya ng paggamit ng "*" bilang unang character. REG_EBRACE Mga hindi nakapares na panaklong sa mga operator ng interval. REG_EBRACK Hindi ipinares na mga square bracket sa mga pahayag ng listahan. REG_ECOLLATE Di-wastong elemento ng pag-uuri. REG_ECTYPE Hindi kilalang pangalan ng klase ng character. REG_EEND Potensyal na error. Hindi tinukoy sa POSIX.2. REG_EESCAPE Sumusunod na backslash. REG_EPAREN Mga hindi nakapares na panaklong sa mga operator ng pagpapangkat. REG_ERANGE Maling paggamit ng area operator: halimbawa, ang dulo ng lugar ay lilitaw bago ang simula nito. REG_ESIZE Ang pinagsama-samang regular na expression ay nangangailangan ng buffer pattern na mas malaki sa 64 KB. Hindi ito tinukoy sa POSIX.2. REG_ESPACE Naubusan na ng memory ang mga regular na expression routine. REG_ESUBREG Di-wastong backreference sa subexpression.