Man regcomp(3): POSIX reguláris kifejezés függvények. Reg Organizer letöltése - rendszer tisztítás és optimalizálás Korlátlan reg comp php

Ez a telepítési útmutató segít a PHP3 telepítésében és konfigurálásában a Windows 9x/NT webszervereken. Ez a kézikönyvösszeállította: Bob Silva. Legújabb verzió megtalálható a http://www.umesd.k12.or.us/php/win32install.html címen.

Ez az útmutató telepítési támogatást nyújt:

Személyes webszerver (ajánlott legújabb verziója)
Internet Information Server 3 vagy 4
Apache 1.3.x
Omni HTTPd 2.0b1
A PHP3 konfigurációjának módosítása:

Most minden modul a "php3_" előtaggal kezdődik. Módosítania kell a php3.ini fájlt és/vagy az összes kiterjesztést betöltő szkriptet a funkcióval dl()(vagy távolítsa el a "php3_" előtagot mindenhol). Ezzel elkerülhető az összetévesztés PHP modulokés támogató könyvtáraik.

A ChangeLog, a GYIK és a frissített dokumentáció mindig megtalálható a hivatalos PHP webhelyen vagy annak bármely tükrében.

Alapvető telepítési lépések:

Ezeket a lépéseket minden telepítéskor végre kell hajtani a kiszolgálóspecifikus utasítások előtt:

    Csomagolja ki a terjesztési fájlt egy tetszőleges könyvtárba.

    Egy jó lehetőség a "C:\PHP3\".

    Másolja a „php3-dist.ini” fájlt a „%WINDOWS%” könyvtárba, és nevezze át „php3.ini”-re.
    A "%WINDOWS%" könyvtár általában a következő:
  • c:\windows Windows 95/98 rendszerhez

Windows 95/98/NT és PWS/IIS 3:

A kiszolgálók beállításának javasolt módja a disztribúcióhoz mellékelt INF-fájlok (php_iis_reg.inf) használata. Szerkesztheti ezt a fájlt, és győződjön meg arról, hogy a kiterjesztések és a PHP telepítési könyvtár megfelelnek a beállításoknak. Vagy kövesse az alább felsorolt ​​lépéseket manuálisan.

FIGYELMEZTETÉS: Ezek a lépések magukban foglalják közvetlen munka Windows rendszerleíró adatbázissal. Nyomatékosan javasoljuk, hogy először tegye meg biztonsági másolat

    iktató hivatal. A PHP fejlesztőcsapata nem vállal felelősséget a rendszerleíró adatbázis sérüléséért.

    Indítsa el a Regedit-et;
    Navigáljon ide: HKEY_LOCAL_MACHINE /System/CurrentControlSet/Services

    /W3Svc /Parameters/ScriptMap .

    A szerkesztés menüből válassza az Új->Karakterlánc értéke menüpontot.

    Határozza meg a PHP szkriptekhez használni kívánt kiterjesztést (pl. php3). Kattintson duplán az értékreúj vonal

    és az adatmezőbe írja be a php.exe exe elérési útját (például c:\php3\php.exe %s %s). "%s %s" NAGYON fontosak, a PHP nem fog megfelelően működni nélküle;

    Ismételje meg ezeket a lépéseket minden olyan bővítménynél, amelyet PHP-szkriptekhez kíván társítani;

    Most menjen a HKEY_CLASSES_ROOT ;

    A szerkesztés menüből válassza az Új->Kulcs menüpontot;

    Határozza meg az előző részben telepített bővítmény kulcsát (például.php3

    Válassza ki az új kulcsot, kattintson duplán az "alapértelmezett érték" elemre az ablak jobb oldalán, és írja be a phpfile parancsot.

    Ismételje meg az utolsó lépést minden, az előző szakaszban telepített bővítményhez;

    Most hozzon létre egy másik New->Key-t a HKEY_CLASSES_ROOT alatt, és ez lesz a phpfile neve.

    Jelölje ki az új phpfile phpfile kulcsot, és az ablak jobb oldalán kattintson duplán az "alapértelmezett értékre", és írja be a PHP Script parancsot.

    Kattintson jobb gombbal a phpfile-ra, és válassza az Új->Kulcs menüpontot, ez a Shell neve.

    Kattintson a jobb gombbal a Shellre, és válassza az Új->Kulcs lehetőséget, ez a név megnyílik.

    Kattintson a jobb gombbal a megnyitásra, és válassza az Új->Kulcs parancsot, ez a név parancs.

    Válassza ki az új parancsbillentyűt, és az ablak jobb oldalán kattintson duplán az "alapértelmezett értékre", és adja meg a php.exe elérési útját. Például: c:\php3\php.exe -q %1 . (ne felejtsd el: %1).

Lépjen ki a Regeditből;

A PWS és IIS 3 felhasználók most már teljesen működő rendszerrel rendelkeznek.

A PHP3 IIS4-et futtató NT kiszolgálóra történő telepítéséhez kövesse az alábbi utasításokat:

    IN Internet szolgáltatás Manager (MMC) válassza ki a webhely vagy az alkalmazás kezdőkönyvtárát;

    Nyissa meg a könyvtár tulajdonságai menüt (kattintson a jobb gombbal, és válassza ki a tulajdonságokat), majd kattintson a Home Directory, a Virtual Directory vagy a Directory fülre;

    Kattintson a Konfiguráció gombra, majd válassza az Alkalmazásleképezések lapot;

    Kattintson a Hozzáadás gombra a végrehajtható keretben, írja be a c:\path-to-php-dir\php.exe %s %s .

    A %s-t %s-re KELL zárnod, ha nem teszed, a PHP nem fog megfelelően működni;

    A Kiterjesztés mezőben adja meg a PHP-szkriptekhez társítani kívánt fájlkiterjesztést (általában (.php3 és .phtml); Állítsa be a szükséges biztonságot (ez az Internet Service Managerben történik), és ha az NT szerver használja fájlrendszer

NTFS, adjon végrehajtási engedélyeket az I_USR_ könyvtárhoz, amely tartalmazza a php.exe fájlt.

Windows 9x/NT és Apache 1.3.x

Módosítania kell az srm.conf vagy httpd.conf fájlt, hogy beállítsa az Apache-t a PHP CGI futtatható fájljaival való együttműködésre.

    Bár Apache alatt több lehetőség is lehet a PHP beállítására, ez még egy kezdő számára is meglehetősen egyszerű. A konfigurációs direktívákról az Apache dokumentációjában olvashat.

    ScriptAlias ​​/php3/"c:/path-to-php-dir/php.exe"

    AddType alkalmazás/x-httpd-php3 .php3

    AddType application/x-httpd-php3 .phtml

Action application/x-httpd-php3 "php3/php.exe" A használat engedélyezéséhez forrásszöveg , csak hozzon létre egy PHP script fájlt, és illessze be ezt a kódot a: . Helyettesítse az eredeti_php_script.php3 php3 fájlt a kívánt forrásfájl nevével (ez csak az egyik elérési út). Kérjük, vegye figyelembe

hogy Win-Apache-on a mondatútvonalban lévő összes fordított perjelet, például a "c:\könyvtár\fájl.ext"-et, előre perjelekre kell cserélni.

Omni HTTPd 2.0b1 Windowshoz

Ennek a konfigurációnak a legegyszerűbbnek kell lennie:

Ismételje meg a 2–6. lépéseket minden olyan kiterjesztésnél, amelyet a PHP-hez társítani szeretne.

PHP modulok:

3-1. táblázat. PHP modulok php3_calendar.dll
Naptárkonverziós funkciók php3_crypt.dll
Titkosítási funkciók php3_dbase.dll
Adatbázis funkciók php3_dbm.dll
GDBM emuláció Berkely DB2 könyvtár használatával php3_filepro.dll
CSAK OLVASÁSI hozzáférés a filepro adatbázisokhoz php3_gd.dll
GD-függvények könyvtára gif-manipulációhoz php3_hyperwave.dll
HyperWave funkciók php3_imap4r2.dll
Az IMAP 4 funkciói php3_ldap.dll
LDAP funkciók php3_msql1.dll
mSQL kliens 1 php3_msql2.dll
mSQL kliens 2 MSSQL kliens (MSSQL DB-könyvtárakat igényel)
php3_mysql.dll MySQL függvények
php3_nsmail.dll Netscape levelezési funkciók
php3_oci73.dll Oracle függvények
php3_snmp.dll SNMP funkciók (csak NT!)
php3_zlib.dll ZLib függvények

Először is javítani fogjuk a regisztrációs oldalt egy avatar feltöltésének lehetőségével. A forrásképnek jpg, gif vagy png formátumúnak kell lennie. Ezenkívül nem lehet több 2 MB-nál. Ne aggódjon, miután a szkript tömörítette, az avatar mérete körülbelül 3 kb és jpg formátum lesz. Nyissa meg az oldalt reg.phpés add hozzá a címkéhez < forma> vonal enctype="multipart/form-data", mint a példában:


Bejegyzés










Most spóroljunk reg.php

2.Ezután létre kell hoznia egy másik mezőt a táblázatban felhasználókat. Menjünk a phpmyadmin, válassza ki a kívánt adatbázist és táblát.


Az összes értéket az ábrán látható módon állítjuk be:

Ebben a mezőben rögzítésre kerül az avatar elérési útja, és el lesz mentve külön mappa, nevezzük „avataroknak”. A mappa ugyanabban a könyvtárban lesz, mint a többi parancsfájl.

3. Menjen a fájlhoz megtakarítás_ felhasználó. phpés adja hozzá a következő kódot, miután eltávolította a szóközöket a bejelentkezési névből és a jelszóból:

//felesleges szóközök eltávolítása
$bejelentkezés = trim($login);

// új hozzáadása ************************************************

//ellenőrizzük a bejelentkezési név és a jelszó hosszát
if (strlen($login)< 3 or strlen($login) > 15) {
exit("A bejelentkezésnek legalább 3 és legfeljebb 15 karakterből kell állnia.");
}
if (strlen($jelszó)< 3 or strlen($password) > 15) {
exit("A jelszónak legalább 3 karakterből kell állnia, de legfeljebb 15 karakterből kell állnia.");
}

if (!empty($_POST["fupload"])) //ellenőrizze, hogy a felhasználó elküldte-e a képet
{
$fupload=$_POST["feltöltés"]; $feltöltés = trim($feltöltés);
if ($fupload =="" vagy üres($fupload)) (
unset($fupload);// ha a $fupload változó üres, akkor törölje
}
}
if (!isset($fupload) vagy üres($fupload) vagy $fupload =="")
{
//ha a változó nem létezik (a felhasználó nem küldött képet), akkor rendeljen hozzá egy előre elkészített képet „nincs avatar” felirattal
$avatar = "avatars/net-avatara.jpg"; //lerajzolhatod a net-avatara.jpg-t, vagy átveheted a forrásból
}
más
{
//egyébként - a felhasználó képének betöltése
$path_to_90_directory = "avatars/";//mappa, ahova a kezdeti kép és annak tömörített másolata betöltődik

If(preg_match("/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/",$_FILES["feltöltés"]["név"])) //a forrás képformátum ellenőrzése
{
$fájlnév = $_FILES["feltöltés"]["név"];
$forrás = $_FILES["feltöltés"]["tmp_name"];
$cél = $útvonal a_90_könyvtárhoz . $fájlnév;
move_uploaded_file($source, $target);//az eredeti feltöltése a $path_to_90_directory mappába
if(preg_match("/[.](GIF)|(gif)$/", $fájlnév)) (
$im = imagecreatefromgif($elérési_út_90_könyvtárba.$fájlnév) ; //ha az eredeti gif formátumú volt, akkor hozzon létre egy képet ugyanabban a formátumban. Szükséges a későbbi tömörítéshez
}
if(preg_match("/[.](PNG)|(png)$/", $fájlnév)) (
$im = imagecreatefrompng($útvonal a_90_könyvtárhoz.$fájlnév) ;//ha az eredeti png formátumú volt, akkor a képet ugyanabban a formátumban hozza létre. Szükséges a későbbi tömörítéshez
}

If(preg_match("/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/", $fájlnév)) (
$im = imagecreatefromjpeg($elérési_út_90_könyvtárba.$fájlnév); //ha az eredeti benne volt jpg formátumban, akkor létrehozunk egy képet ugyanabban a formátumban. Szükséges a későbbi tömörítéshez
}
//NÉGYEDETES KÉP LÉTREHOZÁSA ÉS AZ UTÁN KÖVETKEZŐ TÖMÖRÍTÉSE A www.codenet.ru OLDALRÓL
// Hozzon létre egy 90x90-es négyzetet
// dest - az eredményül kapott kép
// w - képszélesség
// arány - arányossági együttható
$w = 90; // négyzet 90x90. Más méretben is szállítható.
// alapján létrehozzuk az eredeti képet
// forrásfájlt, és határozza meg a méretét
$w_src = képekx($im); //számolja ki a szélességet
$h_src = imagesy($im); //számítsuk ki a kép magasságát
// hozzon létre egy üres négyzet alakú képet
// a truecolor fontos!, különben 8 bites eredményt kapunk
$dest = imagecreatetruecolor($w,$w);
// vágja ki a négyzet közepét x mentén, ha a fénykép vízszintes
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0,
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));
// vágja ki a négyzet alakú felsőt y mentén,
// ha a fénykép függőleges (bár használhatod a középsőt is)
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));
// A négyzet alakú kép méretezése kivágás nélkül történik
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
$dátum=idő(); //az aktuális idő kiszámítása.
imagejpeg($dest, $elérési_út_90_könyvtárba.$dátum..jpg");//mentse a képet jpg formátumban a kívánt mappába, a név az aktuális idő lesz. Azért készült, hogy az avatarok ne legyenek azonos elnevezéssel.
//miért jpg? Nagyon kevés helyet foglal + a GIF kép animációja, ami elvonja a felhasználó figyelmét, megsemmisül. Nem túl kellemes olvasni a megjegyzését, amikor észrevesz valami mozgást a szemed sarkából.
$avatar = $elérési_út_a_90_könyvtárhoz.$dátum.".jpg";//az avatar elérési útját helyezze be a változóba.
$delfull = $elérési_út_90_könyvtárhoz.$fájlnév;
unlink ($delfull);//törölje az eredeti feltöltött képet, már nincs rá szükségünk. A feladat egy miniatűr beszerzése volt.
}
más
{
//formátum eltérés esetén adj ki egy megfelelő üzenetet
exit("Az avatarnak a következő formátumban kell lennie JPG, GIF vagy PNG");
}
//a betöltési folyamat vége és a $avatar változóhoz hozzárendeljük a betöltött ava címét
}



// új hozzáadva *************************************************** **
// Következik minden a cikk első részéből, de módosítani kell az adatbázis-lekérdezést.
//csatlakozás az adatbázishoz
// ellenőrizze, hogy létezik-e azonos bejelentkezési névvel rendelkező felhasználó
$result = mysql_query("SELECT id FROM user WHERE login="$bejelentkezés"",$db);
if (!üres($myrow["id"])) (
exit("Sajnáljuk, a megadott bejelentkezési név már regisztrálva van. Adjon meg egy másik bejelentkezési nevet.");
}
// ha ez nem így van, akkor mentse el az adatokat
$result2 = mysql_query("INSERT INTO user (bejelentkezés,jelszó,avatar) VALUES("$bejelentkezés","$jelszó","$avatar")");
// Ellenőrizze, hogy vannak-e hibák
if ($eredmény2=="IGAZ")
{
echo "Sikeres regisztráció! Most már beléphet az oldalra. Kezdőlap";
}
más(
echo "Hiba! Ön nem regisztrált.";
}
?>

4. Ugyanahhoz az adatbázishoz hozzá kell adni egy táblát. Eltárolja azokat az IP-címeket, amelyek a bejelentkezéskor hibáztak. Így nagyjából 15 percre korlátozhatjuk a hozzáférést azokra, akik egymás után háromnál többször hibáztak, úgy gondolom, hogy a jelszavakat választó programoknak még sokáig trükközniük kell.
Menjünk a phpmyadmin oldalra, és hozzunk létre egy új táblázatot 3 mezővel:


ip - IP-cím.
dátum - az ezzel az ip-vel rendelkező felhasználó sikertelen bejelentkezésének dátuma az elmúlt 15 percben. col – az ezzel az ip-vel rendelkező felhasználó hibáinak száma az elmúlt 15 percben.
Nagy! Kész, most változtassuk meg a bejelentkezési és jelszó-ellenőrző fájlt, mert most a jelszavunk titkosítva van. Nyissa meg a testreg.php-t, és töröljön mindent a bejelentkezési névből és a jelszóból való szóközök eltávolításán kívül. Ezután a következő kódot adjuk hozzá:

//felesleges szóközök eltávolítása
$bejelentkezés = trim($login);
$jelszó = trim($jelszó);

// cserélje ki egy újra************************************************ *******
// csatlakozik az adatbázishoz
include("bd.php");// a bd.php fájlnak ugyanabban a mappában kell lennie, mint az összes többinek, ha nem, akkor csak módosítsa az elérési utat
// mini-ellenőrzés a jelszó kiválasztásához
$ip=getenv("HTTP_X_FORWARDED_FOR");
if (üres($ip) || $ip=="ismeretlen") ( $ip=getenv("REMOTE_ADDR"); )//IP kibontása
mysql_query ("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");//törölje a helytelenül bejelentkezett felhasználók IP-címét 15 perc után.
$result = mysql_query("SELECT col FROM oshibka WHERE ip="$ip"",$db // lekéri az adatbázisból egy adott ip-vel rendelkező felhasználó sikertelen bejelentkezési kísérleteinek számát az elmúlt 15-ben);
$myrow = mysql_fetch_array($eredmény);
if ($myrow["col"] > 2) (
//ha kettőnél több hiba van, azaz három, akkor üzenetet adunk ki.
exit("Háromszor rosszul adta meg felhasználónevét vagy jelszavát. Kérjük, várjon 15 percet, mielőtt újra próbálkozna.");
}
$password = md5($password);//titkosítja a jelszót
$password = strrev($password);// a megbízhatóság érdekében adjon hozzá fordított értéket
$jelszó = $jelszó."b3p6f";
//felvehet néhány saját karaktert ízlése szerint, például a „b3p6f” beírásával. Ha ezt a jelszót nyers erővel feltörik ugyanazon az md5 szerveren, akkor nyilván semmi jó nem lesz belőle. De azt tanácsolom, hogy helyezzen más karaktereket, talán a sor elejére vagy a közepére.
//Ebben az esetben meg kell növelni a jelszó mező hosszát az adatbázisban. A titkosított jelszó sokkal nagyobb lehet.

$result = mysql_query("SELECT * FROM felhasználók WHERE login="$bejelentkezés" ÉS jelszó="$jelszó",$db); //lekéri az adatbázisból az összes adatot a megadott bejelentkezési névvel és jelszóval rendelkező felhasználóról
$myrow = mysql_fetch_array($eredmény);
if (üres($myrow["id"]))
{
//ha a megadott bejelentkezési névvel és jelszóval rendelkező felhasználó nem létezik
//Rögzítjük, hogy ez az ip nem tudott bejelentkezni.
$select = mysql_query("SELECT ip FROM oshibka WHERE ip="$ip"");
$tmp = mysql_fetch_row($select);
if ($ip == $tmp) (//ellenőrizze, hogy a felhasználó az "oshibka" táblában van-e
$result52 = mysql_query("SELECT col FROM oshibka WHERE ip="$ip"",$db);
$myrow52 = mysql_fetch_array($eredmény52);
$col = $myrow52 + 1;//egy újabb sikertelen bejelentkezési kísérlet hozzáadása
mysql_query("UPDATE error SET col=$col,date=NOW() WHERE ip="$ip"");
}
más(
mysql_query("INSERT INTO oshibka (ip,date,col) VALUES ("$ip",NOW(),"1")");
//ha nem volt hiba az elmúlt 15 percben, akkor illessze be új bejegyzés az „oshibka” asztalhoz
}

exit("Elnézést, a megadott bejelentkezési név vagy jelszó helytelen.");
}
más(
nbsp; //ha a jelszavak egyeznek, akkor munkamenetet indítunk a felhasználó számára! Gratulálhatsz neki, bejutott!
$_SESSION["jelszó"]=$myrow["jelszó"];
$_SESSION["bejelentkezés"]=$myrow["bejelentkezés"];
$_SESSION["id"]=$myrow["id"];//ezt az adatot nagyon gyakran használják, így a bejelentkezett felhasználó „magával viszi”

//Ezután az adatokat cookie-kba mentjük a későbbi bejelentkezéshez.
//FIGYELEM!!! EZT SAJÁT BESZÉLÉSE SZÁMÁRA TEGYE, MIVEL AZ ADATOK TITKOSÍTÁS NÉLKÜL SÜTIKBEN TÁROLNAK.
if ($_POST["mentés"] == 1) (
//Ha a felhasználó azt szeretné, hogy adatai mentésre kerüljenek a későbbi bejelentkezéshez, akkor azokat a böngésző cookie-jaiba mentjük.
setcookie("bejelentkezés", $_POST["bejelentkezés"], time()+9999999);
setcookie("jelszó", $_POST["jelszó"], time()+9999999);
}}
visszhang" ";//átirányítjuk a felhasználót a főoldalra, ahol értesítjük a sikeres bejelentkezésről
?>

5. Teljesen megváltoztatjuk a főoldalt. Meg kell jeleníteni rajta a felhasználó avatárját, meg kell jeleníteni egy linket a fiókból való kijelentkezéshez, és be kell jelölni egy jelölőnégyzetet, hogy bejelentkezéskor emlékezzen a jelszóra.
Index.php

// az egész eljárás munkamenetekben működik. Ez az a hely, ahol a felhasználó adatait tárolják, amíg az oldalon tartózkodik. Nagyon fontos az oldal legelején elindítani őket!!!
session_start();
include("bd.php");// a bd.php fájlnak ugyanabban a mappában kell lennie, mint az összes többinek, ha nem, akkor csak módosítsa az elérési utat
if (!empty($_SESSION["bejelentkezés"]) és !empty($_SESSION["jelszó"]))
{
//ha van bejelentkezési név és jelszó a munkamenetekben, akkor ellenőrizze őket, és kérje le az avatart
$bejelentkezés = $_SESSION["bejelentkezés"];
$jelszó = $_SESSION["jelszó"];
$result = mysql_query("SELECT id,avatar FROM userek WHERE login="$bejelentkezés" ÉS jelszó="$jelszó",$db);
$myrow = mysql_fetch_array($eredmény);
//kivonja a szükséges felhasználói adatokat
}
?>


Kezdőlap


Kezdőlap

if (!isset($myrow["avatar"]) vagy $myrow["avatar"]=="") (
//ellenőrizze, hogy a felhasználói adatok kinyerésre kerültek-e az adatbázisból. Ha nem, akkor nincs bejelentkezve, vagy hibás a jelszó a munkamenetben. Megjelenítünk egy bejelentkezési ablakot. De nem fogjuk kitenni azoknak, akik bejönnek, már nincs rá szükségük.
nyomtatás<<


ITT;

If (isset($_COOKIE["login"])) //van a COOKIE-ban bejelentkezési változó. Így kell lennie, ha a felhasználó az „Emlékezz rám” jelölőnégyzetre kattintott az előző bejelentkezéskor
{
//ha igen, akkor írja be az értékét az űrlapba. Ebben az esetben a felhasználónak megjelenik, hogy a bejelentkezési adatait már beírta a kívánt oszlopba
echo " value="".$_COOKIE["bejelentkezés"]."">";
}

nyomtatás<<




ITT;

If (isset($_COOKIE["jelszó"]))// hogy van-e jelszóval rendelkező változó a COOKIE-ban. Így kell lennie, ha a felhasználó az „Emlékezz rám” jelölőnégyzetre kattintott az előző bejelentkezéskor
{
//ha igen, akkor írja be az értékét az űrlapba. Ebben az esetben a felhasználónak megjelenik, hogy a jelszava már be van írva a kívánt oszlopba
echo " value="".$_COOKIE["jelszó"]."">";
}

Nyomtatás<<



Emlékezz rám.






Nyilvántartás



Vendégként vagy bejelentkezve

ITT;
}
más
{
//ha a bejelentkezés sikeres, a felhasználónak minden alább látható a csillagok között.

nyomtatás<<
$_SESSION néven van bejelentkezve az oldalra (kilépés)


Ez a link csak regisztrált felhasználók számára érhető el

Az avatarod:




ITT;

//************************************************************************************
//ha a bejelentkezés sikeres, a felhasználó megkapja mindazt, ami a csillagok között FENT található.
}
?>

6. Lehetővé kell tenni a bejelentkezett felhasználók számára a kijelentkezést. On kezdőlap Már volt link a kijárathoz. De ez a fájl még nem létezik. Tehát alkossunk új fájl kilépés.php kóddal:

session_start();
if (üres($_SESSION["bejelentkezés"]) vagy üres($_SESSION["jelszó"]))
{
//ha nincs bejelentkezési és jelszóval rendelkező munkamenet, akkor ezt a fájlt egy be nem jelentkezett felhasználó érte el. Nem tartozik ide. Hibaüzenetet adunk ki, és leállítjuk a szkriptet
exit ("Ezt az oldalt csak regisztrált felhasználók férhetnek hozzá. Ha regisztrált, akkor jelentkezzen be az oldalra a felhasználónevével és jelszavával
Kezdőlap");
}

unset($_SESSION["jelszó"]);
unset($_SESSION["bejelentkezés"]);
unset($_SESSION["id"]);// megsemmisíti a változókat a munkamenetekben
kijárat(" ");
// elküldi a felhasználót a főoldalra.
?>

Hát ez az! Élvezze egészsége érdekében! Sok szerencsét!

Tartalom

ereg

ereg -- reguláris kifejezés páros értéke
Leírás
int ereg (string pattern, string string, array );

Páros értékeket keres húr pontjában meghatározott reguláris kifejezésben minta .

Ha páros értékek találhatók a zárójelben lévő részkarakterláncokhoz mintaés a függvényt a harmadik argumentummal hívtuk meg regs, akkor a párosított értékek elemekben tárolódnak regs. A $regs egy részkarakterláncot tartalmaz, amely az első bal zárójellel kezdődik; húr .

A $regs tartalmazza a második zárójellel kezdődő karakterláncot stb. A $regs tartalmazni fog egy másolatot

A keresés megkülönbözteti a kis- és nagybetűket.

A függvény true értéket ad vissza, ha a minta megfelelő értéket talált a karakterláncban, vagy hamis értéket, ha nem található egyező érték, vagy hiba történt. A következő kód lekéri a dátumot ISO formátum

és DD.MM.YYYY formátumban adja ki:

Példa 1. ereg() példa

If (ereg("(4))-((1,2))-((1,2))", $date, $regs)) ( echo "$regs.$regs.$regs"; ) else ( echo "Érvénytelen dátumformátum: $dátum"; )

ereg_replace
Leírás
ereg_replace -- lecseréli a reguláris kifejezést

string ereg_replace(karakterlánc minta, karakterlánccsere, karakterlánc string); húr Ez a funkció szkennel minta páros értékre k , majd lecseréli a talált szöveget erre: .

csere minta Ha , majd lecseréli a talált szöveget erre: zárójelben részkarakterláncokat tartalmaz, akkor tartalmazhat részkarakterláncokat, például \\ szám

, amely a zárójelben lévő numerikus részkarakterláncnak megfelelő szövegre kerül; A \\0 a karakterlánc teljes tartalmát feldolgozza. Legfeljebb 9 részkarakterlánc használható. A zárójelek csoportosíthatók, ilyenkor a nyitó zárójelek számolják őket. Például a következő kód háromszor kiírja a „Ez egy teszt volt” szöveget:

$string = "Ez egy teszt"; echo ereg_replace(" is", "volt", $karakterlánc); echo ereg_replace("()is", "\\1volt", $karakterlánc); echo ereg_replace("(()is)", "\\2volt", $karakterlánc);

Lásd még: , , és .

eregi

eregi -- a kis- és nagybetűk megkülönböztetése nélkül keres párosított értékeket reguláris kifejezésekben
Leírás
int eregi (string pattern, string string, array );

eregi_replace

eregi_replace -- a kis- és nagybetűket nem érző reguláris kifejezés helyettesítése
Leírás
string eregi_replace(karakterlánc minta, karakterlánccsere, karakterlánc string);

hasított

split -- egy karakterláncot tömbre oszt reguláris kifejezés segítségével
Leírás
tömb felosztása (string minta, string string, int );

Karakterláncok tömbjét adja vissza, amelyek mindegyike egy karakterlánc részkarakterlánca, amelyet úgy alakítanak ki, hogy a karakterláncot egymástól elválasztott részekre bontják minta. Ha hiba történik, a függvény false értéket ad vissza.

Az első 5 mező lekérése az /etc/passwd sorából:

Kiadják.

Ez a funkció használható kis- és nagybetűk közötti összehasonlítások végrehajtására olyan termékekben, amelyek csak a kis- és nagybetűket érzékeny kifejezéseket támogatják.

Üdvözlök mindenkit, ma a programról szeretnék mesélni Reg Szervező. Ez egy program számos funkcióval az operációs rendszer teljes karbantartásához Windows család. A Reg Organizer tökéletes Windows XP, Vista, 7, 8.1 és 10 operációs rendszerhez. A program segítségével felgyorsíthatja és optimalizálhatja számítógépe operációs rendszerét, további erőforrásokat szabadítva fel.

A Reg Organizer lehetővé teszi a programok teljes eltávolítását a rendszerből, valamint a vezérlőpulton keresztül visszamaradt szemét eltávolítását. Egy egyedi indítási menedzser segít a lehető legnagyobb mértékben felgyorsítani a rendszer teljesítményét. A beépített lemeztisztító funkció segít még többet felszabadítani szabad hely a számítógép lemezén. A Reg Organizer megkönnyíti a rendszerleíró adatbázis tisztítását és optimalizálását. És ez még nem a program összes képessége.

Mit tehet a Reg Organizer?

  • A Reg Organizer segít a program teljes eltávolításában és a maradványok eltávolításában, így megakadályozza, hogy a rendszerleíró adatbázis és a számítógép lemezei zsúfolttá váljanak.
  • Az indítás megtisztítása (autorun) segít eltávolítani a Windows rendszerrel induló alkalmazásokat. Ez lehetővé teszi, hogy felgyorsítsa a műtő betöltését Windows rendszerek, és felszabadíthatja számítógépe erőforrásainak egy részét. Ezenkívül az indítási részben törölheti az ütemezett feladatokat.
  • Lemezek tisztítása automatikus üzemmód lehetővé teszi az elengedést nagy számban szabad hely tovább rendszerlemez. Mindent eltávolíthat, amit a Windows nem tisztít meg önmagától.
  • Használatával finombeállítások a Reg Organizerben testreszabhatja a Windows operációs rendszer működését az igényeinek megfelelően.
  • Nyilvántartások tisztítása - A Reg Organizer automatikusan megtalálja és eltávolítja a rendszerben lévő összes felesleges és hibás bejegyzést Windows rendszerleíró adatbázis, ami befolyásolhatja a működés stabilitását.
  • A Reg Organizer lehetővé teszi a beállításjegyzék optimalizálását, a rendszerleíró fájlok tömörítését és töredezettségmentesítését.
  • Kényelmes szerkesztő Reg Organizer rendszerleíró adatbázisa segít különféle műveletek végrehajtásában rendszerleíró adatbázis, beleértve az exportálást, importálást, kulcsértékek másolását és még sok mást.
  • A kulcsok egyszerű keresése és cseréje a rendszerleíró adatbázisban - lehetővé teszi a szükséges kulcsok megtalálását és szükség esetén törlését. Abban az esetben, ha az alkalmazásokhoz nincs eltávolító program, vagy az alkalmazás manuális eltávolítása után olyan bejegyzések maradnak a rendszerleíró adatbázisban, amelyek ütközést okozhatnak a rendszerleíró adatbázisban, ebben az esetben hasznos lesz a rendszerleíró kulcsok keresése és cseréje funkció. A Reg Organizer mélyreható keresést végez, és gyakran lehetővé teszi, hogy megtalálja azt is, amit más programok nem találnak.
  • A Reg Organizer mindent figyelemmel tud követni, amit a program a telepítés során csinál, és ha bármilyen probléma adódik, visszavonhat mindent, amit a program a telepítés során megkísérelt.
  • A program megtalálja a már törölt programok fennmaradó nyomait. ha hibásan távolította el a programot, a Reg Organizer segít eltüntetni a törölt program nyomait.

A Reg Organizer összes funkciójáról további részleteket láthat a videómban:


A Reg Organizer letölthető a hivatalos webhelyről a letöltési gombok bármelyikével.

#beleértve
#beleértve
int regcomp(regex_t *preg, const char *regex, intcflags);
int regexec(const regex_t *preg, const char *húr, méret_tnmatch,
regmatch_tpmatch, intzászlókat);
size_t regerror(inthibakód, const regex_t *preg, char*errbuf,
size_terrbuf_size);
void regfree(regex_t *preg);

LEÍRÁS

POSIX reguláris kifejezések fordítása

Funkció regcomp() segítségével a reguláris kifejezéseket olyan formátumba állítják, amely alkalmas a későbbi keresésekhez regexec().

regcomp() a puffersablon tárolóterületére mutató mutató átadásra került preg, mutasson egy null-végű karakterláncra regexés zászlókat cflags, az összeállítás típusának meghatározására szolgál.

Minden keresés reguláris kifejezések lefordított puffersablon segítségével kell végrehajtani, tehát regexec() mindig a függvény által inicializált puffersablon címével kell meghívni regcomp().

Jelentése cflags bitenként állhat vagy az alábbi értékek közül nulla vagy több:

REG_EXTENDED Használja a POSIX kiterjesztett reguláris kifejezés szintaxisát az értelmezés során regex. Ha ez a jelző nincs engedélyezve, a rendszer a POSIX egyszerű reguláris kifejezés szintaxisát használja. REG_ICASE Kis- és nagybetűk figyelmen kívül hagyása. Későbbi keresések regexec() ezzel a puffermintával nem lesz megkülönböztetve a kis- és nagybetűktől. REG_NOSUB Ne jelentse a mérkőzések helyzetét. Opciók nmatchÉs pmatch Mert regexec() figyelmen kívül hagyja, ha az adott puffersablont ezzel a jelzővel engedélyezték. REG_NEWLINE Az operátorok bármilyen karakterrel nem egyeznek az újsor karakterrel.

A nem egyező karakterek listája ( [^...] ) újsor karakter nélkül nem azonos az újsor karakterrel.

Összehasonlító operátor egy karakterlánc eleje alapján ( ^ ) illeszkedik a közvetlenül az újsor utáni üres karakterlánchoz, bármi is legyen zászlókat, végrehajtási zászlók regexec(), tartalmaz REG_NOTBOL.

A sorvégi összehasonlító operátor ($) az üres karakterláncot a sor eleji karakterig egyezteti, függetlenül attól, hogy mi zászlókat tartalmaz REG_NOTEOL.

Összehasonlítás a POSIX reguláris kifejezéssel

Funkció regexec() a null-végű karakterlánc összehasonlítására szolgál egy előre feldolgozott puffermintával preg. Érvek nmatchÉs pmatch arra szolgálnak, hogy információt adjanak a mérkőzések helyéről. Jelentése zászlókat lehet bitenként VAGY az egyik vagy mindkét érték REG_NOTBOLÉs REG_NOTEOL. Ezek az értékek határozzák meg az összehasonlítási folyamat viselkedését az alábbiak szerint. REG_NOTBOL A karakterlánc elején lévő összehasonlító operátor mindig meghiúsul (de lásd a fent leírt fordítási jelzőt REG_NEWLINE). Ez a zászló akkor használható, ha regexec() egy karakterlánc különálló részei kerülnek átvitelre, és egy ilyen karakterlánc eleje ebben az esetben nem értelmezhető egy új sor kezdeteként. REG_NOTEOL A sorvégi összehasonlító operátor mindig meghiúsul (de lásd a fent leírt fordítási jelzőt REG_NEWLINE).

Byte offset

Ha REG_NOSUB nincs beállítva a puffersablon összeállításakor, lehet információt szerezni az egyezések helyzetéről. Jelentése pmatchúgy kell meghatározni, hogy legalább nmatch elemeket. Megtelnek regexec() soron belüli egyezések címei. A következővel kezdődő részkifejezés eltolásai én- nyitott zárójelben, tárolva pmatch[i]. A rendszer a teljes reguláris kifejezés egyezési címét tárolja pmatch(jegyezd meg, hogy az egyezési eltolások visszaadásához N részkifejezések, jelentés nmatch nem lehet kevesebb N+1). A fel nem használt szerkezeti elemek -1 értéket tartalmaznak.

Szerkezet regmatch_t, ami egy típus pmatch-ban meghatározott :

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

Minden elem rm_so, amely nem egyenlő -1-gyel, az adott karakterláncon belüli legnagyobb részstring következő egyezésének kezdőeltolását jelzi. Relatív elem rm_eo az egyezés végének eltolását jelzi, amely az első karakter az egyező szöveg után.

POSIX hibajelentés

Funkció regerror az esetlegesen beérkező hibakódok konvertálására szolgál regcomp() És regexec(), hibaüzenet-sorokba.

IN regerror továbbított: hibakód hibakód, puffer minta preg, mutató a karakterlánc-pufferre errbufés a sorpuffer mérete errbuf_size. A függvény a méretet adja vissza errbuf, amely a hibaüzenet null-végződésű karakterláncként való tárolásához szükséges. Ha és errbuf, És errbuf_size akkor nem egyenlők nullával errbuf először kitöltött errbuf_size - 1 hibaüzenet karakterekből áll, és null byte-tal ("\0") végződik.

POSIX sablon puffer felszabadítása

Funkció regfree() felszabadítja a puffersablonhoz lefoglalt memóriát preg segítségével az összeállítási folyamat során regcomp().

VISSZATÉRÍTÉSI ÉRTÉK

Funkció regcomp() nullát ad vissza sikeres fordítás esetén, vagy hibakódot ad vissza.

Funkció regexec() nullát ad vissza az ill REG_NOMATCH, ha nem lennének egyezések.

HIBÁK

Funkció regcomp() a következő hibákat adhatja vissza: REG_BADBR A backlink operátor helytelen használata. REG_BADPAT Sablonoperátorok, például csoport- vagy listaoperátorok helytelen használata. REG_BADRPT Az ismétlési operátorok helytelen használata, például a „*” használata első karakterként. REG_EBRACE Páratlan zárójelek az intervallumoperátorokban. REG_EBRACK Párosítatlan szögletes zárójelek a listautasításokban. REG_ECOLLATEÉrvénytelen rendezési elem. REG_ECTYPE Ismeretlen karakterosztálynév. REG_EEND Lehetséges hiba. Nincs definiálva a POSIX.2-ben. REG_EESCAPE Utána fordított perjel. REG_EPAREN Páratlan zárójelek a csoportosítási operátorokban. REG_ERANGE A terület operátor helytelen használata: például a terület vége az eleje előtt jelenik meg. REG_ESIZE A lefordított reguláris kifejezés 64 KB-nál nagyobb puffermintát igényel. Ez nincs definiálva a POSIX.2-ben. REG_ESPACE A reguláris kifejezési rutinoknak elfogyott a memóriája. REG_EBUREG Helytelen backlink részkifejezéshez.