heim - Smart-TV
Brave reg comp php. Laden Sie Reg Organizer herunter – Systemreinigung und -optimierung

#enthalten
#enthalten
int regcomp(regex_t *schwanger, const char *Regex, intcfflags);
int regexec(const regex_t *schwanger, const char *Zeichenfolge, size_tnmatch,
regmatch_tpmatch, intFlaggen);
size_t regerror(intFehlercode, const regex_t *schwanger, char *errbuf,
size_terrbuf_size);
void regfree(regex_t *schwanger);

BESCHREIBUNG

Kompilieren regulärer POSIX-Ausdrücke

Funktion regcomp() wird verwendet, um den regulären Ausdruck in ein Format zu kompilieren, das für nachfolgende Suchvorgänge geeignet ist regexec().

regcomp() Es wird ein Zeiger auf den Speicherbereich der Puffervorlage übergeben schwanger, Zeiger auf eine nullterminierte Zeichenfolge Regex und Fahnen cfflags, wird zur Bestimmung des Kompilierungstyps verwendet.

Alle Suchen nach regulären Ausdrücken müssen daher mithilfe eines kompilierten Puffermusters durchgeführt werden regexec() muss immer mit der Adresse der von der Funktion initialisierten Puffervorlage aufgerufen werden regcomp().

Bedeutung cfflags kann bitweise bestehen oder Null oder mehr der folgenden Werte:

REG_EXTENDED Verwenden Sie bei der Interpretation die erweiterte POSIX-Syntax für reguläre Ausdrücke Regex. Wenn dieses Flag nicht aktiviert ist, wird die einfache POSIX-Syntax für reguläre Ausdrücke verwendet. REG_ICASE Fall ignorieren. Nachfolgende Recherchen regexec() Bei Verwendung dieses Puffermusters wird die Groß-/Kleinschreibung nicht beachtet. REG_NOSUB Melden Sie nicht die Position von Spielen. Optionen nmatch Und pmatch Für regexec() werden ignoriert, wenn die angegebene Puffervorlage mit aktiviertem Flag kompiliert wurde. REG_NEWLINE Die Vergleichsoperatoren mit einem beliebigen Zeichen stimmen nicht mit dem Zeilenumbruchzeichen überein.

Liste nicht übereinstimmender Zeichen ( [^...] ) ohne ein Zeilenumbruchzeichen ist nicht dasselbe wie ein Zeilenumbruch.

Vergleichsoperator basierend auf dem Anfang einer Zeichenfolge ( ^ ) entspricht der leeren Zeichenfolge direkt nach dem Zeilenumbruch, egal was passiert Flaggen, Ausführungsflags regexec(), enthalten REG_NOTBOL.

Der Zeilenende-Vergleichsoperator ($) gleicht die leere Zeichenfolge bis zum Zeilenanfangszeichen ab, egal was passiert Flaggen enthält REG_NOTEOL.

Vergleich mit dem regulären POSIX-Ausdruck

Funktion regexec() wird verwendet, um eine nullterminierte Zeichenfolge mit einem vorverarbeiteten Puffermuster zu vergleichen schwanger. Argumente nmatch Und pmatch werden verwendet, um Informationen über den Standort etwaiger Spiele bereitzustellen. Bedeutung Flaggen kann bitweise sein ODER einen oder beide Werte REG_NOTBOL Und REG_NOTEOL. Diese Werte bestimmen das Verhalten des Vergleichsprozesses wie unten beschrieben. REG_NOTBOL Der Vergleichsoperator am Anfang der Zeichenfolge schlägt immer fehl (siehe jedoch das oben beschriebene Kompilierungsflag). REG_NEWLINE). Dieses Flag kann verwendet werden, wenn regexec() werden einzelne Teile einer Zeichenfolge übertragen, und der Anfang einer solchen Zeichenfolge sollte in diesem Fall nicht als Beginn einer neuen Zeile interpretiert werden. REG_NOTEOL Der Zeilenende-Vergleichsoperator schlägt immer fehl (siehe jedoch das oben beschriebene Kompilierungsflag). REG_NEWLINE).

Byte-Offsets

Wenn REG_NOSUB Wird beim Kompilieren der Puffervorlage nicht gesetzt, ist es möglich, Informationen über die Position von Übereinstimmungen zu erhalten. Bedeutung pmatch muss definiert sein, um mindestens zu haben nmatch Elemente. Sie füllen sich regexec() Adressen von Inline-Übereinstimmungen. Offsets eines Unterausdrucks beginnend mit ich- offene Klammer, gespeichert in pmatch[i]. Die Übereinstimmungsadresse des gesamten regulären Ausdrucks wird in gespeichert pmatch(Beachten Sie, dass die Übereinstimmungsoffsets zurückgegeben werden sollen N Unterausdrücke, Bedeutung nmatch darf nicht weniger sein N+1). Alle nicht verwendeten Strukturelemente enthalten den Wert -1.

Struktur regmatch_t, was ein Typ ist pmatch, definiert in :

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

Jedes Element rm_so, ungleich -1, gibt den Startoffset der nächsten Übereinstimmung der größten Teilzeichenfolge innerhalb der angegebenen Zeichenfolge an. Relatives Element rm_eo gibt den Offset des Endes der Übereinstimmung an, also das erste Zeichen nach dem übereinstimmenden Text.

POSIX-Fehlerberichterstattung

Funktion regerror Wird zum Konvertieren von Fehlercodes verwendet, die möglicherweise von empfangen werden regcomp() Und regexec(), in Fehlermeldungszeilen.

IN regerrorübertragen: Fehlercode Fehlercode, Puffermuster schwanger, Zeiger auf den Zeichenfolgenpuffer errbuf und Zeilenpuffergröße errbuf_size. Die Funktion gibt die Größe zurück errbuf, die erforderlich ist, um die Fehlermeldung als nullterminierte Zeichenfolge zu speichern. Wenn errbuf, Und errbuf_size sind dann ungleich Null errbuf zuerst gefüllt errbuf_size - 1 Fehlermeldungszeichen und endet mit einem Nullbyte („\0“).

Freigeben eines POSIX-Vorlagenpuffers

Funktion regfrei() gibt den der Puffervorlage zugewiesenen Speicher frei schwanger während des Kompilierungsprozesses mit regcomp().

RÜCKGABEWERT

Funktion regcomp() gibt bei erfolgreicher Kompilierung Null zurück, ansonsten einen Fehlercode.

Funktion regexec() gibt bei Übereinstimmung oder Null zurück REG_NOMATCH, wenn es keine Übereinstimmungen gäbe.

FEHLER

Funktion regcomp() kann die folgenden Fehler zurückgeben: REG_BADBR Falsche Verwendung des Backlink-Operators. REG_BADPAT Falsche Verwendung von Vorlagenoperatoren, z. B. Gruppen- oder Listenoperatoren. REG_BADRPT Falsche Verwendung von Wiederholungsoperatoren, z. B. die Verwendung von „*“ als erstes Zeichen. REG_EBRACE Ungepaarte Klammern in Intervalloperatoren. REG_EBRACK Ungepaarte eckige Klammern in Listenanweisungen. REG_ECOLLATE Ungültiges Sortierelement. REG_ECTYPE Unbekannter Charakterklassenname. REG_EEND Möglicher Fehler. Nicht in POSIX.2 definiert. REG_EESCAPE Nachgestellter Backslash. REG_EPAREN Ungepaarte Klammern in Gruppierungsoperatoren. REG_ERANGE Falsche Verwendung des Flächenoperators: Beispielsweise erscheint das Ende der Fläche vor ihrem Anfang. REG_ESIZE Der kompilierte reguläre Ausdruck erfordert ein Puffermuster, das größer als 64 KB ist. Dies ist in POSIX.2 nicht definiert. REG_ESPACE Routinen für reguläre Ausdrücke haben nicht mehr genügend Speicher. REG_ESUBREG Ungültiger Rückverweis auf Unterausdruck.

Zunächst werden wir die Registrierungsseite verbessern, indem wir die Möglichkeit hinzufügen, einen Avatar hochzuladen. Das Quellbild muss im JPG-, GIF- oder PNG-Format vorliegen. Es sollte auch nicht mehr als 2 MB betragen. Keine Sorge, nach der Komprimierung durch das Skript beträgt die Avatar-Größe etwa 3 KB und das JPG-Format. Öffnen Sie die Seite reg.php und fügen Sie es in das Tag ein < bilden> Linie enctype="multipart/form-data", wie im Beispiel:


Anmeldung










Jetzt lasst uns sparen reg.php

2.Dann müssen Sie ein weiteres Feld in der Tabelle erstellen Benutzer. Lass uns gehen phpmyadmin, wählen Sie die gewünschte Datenbank und Tabelle aus.


Wir stellen alle Werte wie in der Abbildung ein:

Der Pfad zum Avatar wird in diesem Feld aufgezeichnet und in einem separaten Ordner gespeichert, nennen wir ihn „Avatare“. Der Ordner befindet sich im selben Verzeichnis wie die übrigen Skriptdateien.

3.Gehen Sie zur Datei speichern_ Benutzer. php und fügen Sie den folgenden Code hinzu, nachdem Sie Leerzeichen aus dem Benutzernamen und dem Passwort entfernt haben:

//zusätzliche Leerzeichen entfernen
$login = trim($login);

// neue hinzufügen ********************************************

//Prüfung der Länge von Login und Passwort hinzufügen
if (strlen($login)< 3 or strlen($login) > 15) {
exit("Login muss aus mindestens 3 Zeichen und nicht mehr als 15 bestehen.");
}
if (strlen($password)< 3 or strlen($password) > 15) {
exit("Das Passwort muss mindestens 3 und darf nicht mehr als 15 Zeichen lang sein.");
}

if (!empty($_POST["fupload"])) //Überprüfen Sie, ob der Benutzer das Bild gesendet hat
{
$fupload=$_POST["fupload"]; $fupload = trim($fupload);
if ($fupload =="" or empty($fupload)) (
unset($fupload);// wenn die Variable $fupload leer ist, dann löschen Sie sie
}
}
if (!isset($fupload) oder empty($fupload) oder $fupload =="")
{
//Wenn die Variable nicht existiert (der Benutzer hat kein Bild gesendet), dann weisen Sie ihr ein vorbereitetes Bild mit der Aufschrift „kein Avatar“ zu.
$avatar = "avatars/net-avatara.jpg"; //Sie können net-avatara.jpg zeichnen oder von der Quelle übernehmen
}
anders
{
//sonst – das Bild des Benutzers laden
$path_to_90_directory = "avatars/";//Ordner, in den das ursprüngliche Bild und seine komprimierte Kopie geladen werden

If(preg_match("/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/",$_FILES["fupload"]["name"])) //Überprüfen des Quellbildformats
{
$filename = $_FILES["fupload"]["name"];
$source = $_FILES["fupload"]["tmp_name"];
$target = $path_to_90_directory . $Dateiname;
move_uploaded_file($source, $target);//Hochladen des Originals in den Ordner $path_to_90_directory
if(preg_match("/[.](GIF)|(gif)$/", $filename)) (
$im = imagecreatefromgif($path_to_90_directory.$filename) ; //Wenn das Original im GIF-Format war, dann erstelle ein Bild im gleichen Format. Notwendig für die anschließende Komprimierung
}
if(preg_match("/[.](PNG)|(png)$/", $filename)) (
$im = imagecreatefrompng($path_to_90_directory.$filename) ;//Wenn das Original im PNG-Format war, dann erstellen Sie das Bild im gleichen Format. Notwendig für die anschließende Komprimierung
}

If(preg_match("/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/", $filename)) (
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //Wenn das Original im JPG-Format war, dann erstelle ein Bild im gleichen Format. Notwendig für die anschließende Komprimierung
}
// ERSTELLUNG EINES QUADRATISCHEN BILDES UND SEINE ANSCHLIEßENDE KOMPRIMIERUNG VON DER WEBSITE www.codenet.ru
// Erstelle ein 90x90-Quadrat
// dest – das resultierende Bild
// w - Bildbreite
// Verhältnis - Proportionalitätskoeffizient
$w = 90; // Quadrat 90x90. Auch in anderen Größen lieferbar.
// Erstellen Sie das Originalbild basierend auf
// Quelldatei und bestimmen Sie deren Größe
$w_src = imagesx($im); //Breite berechnen
$h_src = imagesy($im); // Berechne die Höhe des Bildes
// ein leeres quadratisches Bild erstellen
// Truecolor ist wichtig!, sonst erhalten wir ein 8-Bit-Ergebnis
$dest = imagecreatetruecolor($w,$w);
// Schneiden Sie die quadratische Mitte entlang x aus, wenn das Foto horizontal ist
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));
// die quadratische Oberseite entlang der Y-Achse ausschneiden,
// wenn das Foto vertikal ist (obwohl Sie auch die Mitte verwenden können)
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));
// Quadratisches Bild wird ohne Beschneidung skaliert
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);
$date=time(); //berechne die aktuelle Uhrzeit.
imagejpeg($dest, $path_to_90_directory.$date.".jpg");//Speichern Sie das Bild im JPG-Format im gewünschten Ordner, der Name ist die aktuelle Uhrzeit. Entwickelt, um zu verhindern, dass Avatare denselben Namen haben.
//Warum JPG? Es nimmt sehr wenig Platz ein + die Animation des GIF-Bildes, die den Benutzer ablenkt, wird zerstört. Es ist nicht sehr angenehm, seinen Kommentar zu lesen, wenn man aus dem Augenwinkel eine Bewegung bemerkt.
$avatar = $path_to_90_directory.$date.".jpg";//füge den Pfad zum Avatar in die Variable ein.
$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//das ursprünglich hochgeladene Bild löschen, wir brauchen es nicht mehr. Die Aufgabe bestand darin, eine Miniatur zu bekommen.
}
anders
{
//Bei Nichtübereinstimmung des Formats eine entsprechende Meldung ausgeben
exit("Der Avatar muss im Format vorliegen JPG, GIF oder PNG");
}
//Ende des Ladevorgangs und Zuweisung der Adresse der geladenen Ava an die Variable $avatar
}



// neu hinzugefügt ********************************************** **
// Als nächstes kommt alles aus dem ersten Teil des Artikels, aber Sie müssen eine Änderung an der Abfrage in der Datenbank hinzufügen.
//Mit der Datenbank verbinden
// Überprüfen Sie, ob ein Benutzer mit demselben Login vorhanden ist
$result = mysql_query("SELECT id FROM users WHERE login="$login"",$db);
if (!empty($myrow["id"])) (
exit("Leider ist das von Ihnen eingegebene Login bereits registriert. Bitte geben Sie ein anderes Login ein.");
}
// Wenn dies nicht der Fall ist, dann speichern Sie die Daten
$result2 = mysql_query("INSERT INTO Benutzer (Login,Passwort,Avatar) VALUES("$login","$password","$avatar")");
// Überprüfen Sie, ob Fehler vorliegen
if ($result2=="TRUE")
{
echo „Sie haben sich erfolgreich registriert! Jetzt können Sie die Seite betreten. Startseite“;
}
anders(
echo „Fehler! Sie sind nicht registriert.“;
}
?>

4. Sie müssen eine Tabelle zur gleichen Datenbank hinzufügen. Es werden IP-Adressen gespeichert, die beim Anmelden Fehler gemacht haben. Auf diese Weise können wir den Zugriff auf diejenigen beschränken, die mehr als dreimal hintereinander Fehler gemacht haben, und zwar für etwa 15 Minuten. Ich denke, Programme, die Passwörter auswählen, müssen lange herumbasteln.
Gehen wir zu phpmyadmin und erstellen eine neue Tabelle mit 3 Feldern:


ip – IP-Adresse.
Datum – Datum der erfolglosen Anmeldung für den Benutzer mit dieser IP in den letzten 15 Minuten. col – die Anzahl der Fehler in den letzten 15 Minuten für den Benutzer mit dieser IP.
Großartig! Fertig, jetzt ändern wir die Login- und Passwort-Verifizierungsdatei, denn jetzt ist unser Passwort verschlüsselt. Öffnen Sie testreg.php und löschen Sie alles außer dem Entfernen von Leerzeichen aus dem Benutzernamen und Passwort. Als nächstes fügen wir den folgenden Code hinzu:

//zusätzliche Leerzeichen entfernen
$login = trim($login);
$password = trim($password);

// durch ein neues ersetzen********************************************* *******
// Verbindung zur Datenbank herstellen
include("bd.php");// Die Datei bd.php muss sich im selben Ordner wie alle anderen befinden. Ist dies nicht der Fall, ändern Sie einfach den Pfad
// Mini-Check zur Passwortauswahl
$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty($ip) || $ip=="unknown") ( $ip=getenv("REMOTE_ADDR"); )//ip extrahieren
mysql_query ("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");//löschen Sie die IP-Adressen von Benutzern, die nach 15 Minuten einen Fehler beim Anmelden gemacht haben.
$result = mysql_query("SELECT col FROM oshibka WHERE ip="$ip"",$db); // die Anzahl der erfolglosen Anmeldeversuche in den letzten 15 für einen Benutzer mit einer bestimmten IP abrufen
$myrow = mysql_fetch_array($result);
if ($myrow["col"] > 2) (
//Wenn es mehr als zwei Fehler gibt, also drei, dann geben wir eine Meldung aus.
exit("Sie haben Ihren Benutzernamen oder Ihr Passwort dreimal falsch eingegeben. Bitte warten Sie 15 Minuten, bevor Sie es erneut versuchen.");
}
$password = md5($password);//das Passwort verschlüsseln
$password = strrev($password);// Aus Gründen der Zuverlässigkeit Reverse hinzufügen
$password = $password."b3p6f";
//Sie können nach Ihrem Geschmack einige eigene Zeichen hinzufügen, indem Sie beispielsweise „b3p6f“ eingeben. Wenn dieses Passwort auf demselben MD5-Server mit brutaler Gewalt gehackt wird, wird offensichtlich nichts Gutes dabei herauskommen. Aber ich rate Ihnen, andere Zeichen zu setzen, vielleicht am Anfang der Zeile oder in der Mitte.
//In diesem Fall ist es notwendig, die Länge des Passwortfeldes in der Datenbank zu erhöhen. Das verschlüsselte Passwort kann viel größer sein.

$result = mysql_query("SELECT * FROM users WHERE login="$login" AND password="$password"",$db); //Alle Daten über den Benutzer mit dem eingegebenen Benutzernamen und Passwort aus der Datenbank abrufen
$myrow = mysql_fetch_array($result);
if (empty($myrow["id"]))
{
//wenn der Benutzer mit dem eingegebenen Login und Passwort nicht existiert
//Wir machen einen Eintrag, dass sich diese IP nicht anmelden konnte.
$select = mysql_query("SELECT ip FROM oshibka WHERE ip="$ip"");
$tmp = mysql_fetch_row($select);
if ($ip == $tmp) (//Überprüfen Sie, ob der Benutzer in der Tabelle „oshibka“ enthalten ist
$result52 = mysql_query("SELECT col FROM oshibka WHERE ip="$ip"",$db);
$myrow52 = mysql_fetch_array($result52);
$col = $myrow52 + 1;//füge einen weiteren erfolglosen Anmeldeversuch hinzu
mysql_query("UPDATE error SET col=$col,date=NOW() WHERE ip="$ip"");
}
anders(
mysql_query("INSERT INTO oshibka (ip,date,col) VALUES ("$ip",NOW(),"1")");
//Wenn in den letzten 15 Minuten keine Fehler aufgetreten sind, fügen Sie einen neuen Eintrag in die Tabelle „oshibka“ ein
}

exit("Leider ist der von Ihnen eingegebene Benutzername oder das Passwort falsch.");
}
anders(
nbsp; //Wenn die Passwörter übereinstimmen, starten wir eine Sitzung für den Benutzer! Man kann ihm gratulieren, er ist reingekommen!
$_SESSION["password"]=$myrow["password"];
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//Diese Daten werden sehr oft verwendet, sodass der angemeldete Benutzer sie „bei sich trägt“

//Als nächstes speichern wir die Daten in Cookies für den späteren Login.
//AUFMERKSAMKEIT!!! TUN SIE DIES NACH IHREM ERMESSEN, DA DIE DATEN OHNE VERSCHLÜSSELUNG IN COOKIES GESPEICHERT WERDEN
if ($_POST["save"] == 1) (
//Wenn der Nutzer möchte, dass seine Daten für einen späteren Login gespeichert werden, speichern wir diese in seinen Browser-Cookies
setcookie("login", $_POST["login"], time()+9999999);
setcookie("password", $_POST["password"], time()+9999999);
}}
Echo“ ";//wir leiten den Benutzer zur Hauptseite weiter, wo wir ihn über eine erfolgreiche Anmeldung informieren
?>

5. Wir werden die Hauptseite komplett ändern. Es ist notwendig, den Avatar des Benutzers darauf anzuzeigen, einen Link zum Abmelden vom Konto anzuzeigen und ein Kontrollkästchen hinzuzufügen, um sich das Passwort beim Anmelden zu merken.
Index.php

// Die gesamte Prozedur funktioniert in Sitzungen. Hier werden die Daten des Benutzers gespeichert, während er sich auf der Website aufhält. Es ist sehr wichtig, sie ganz am Anfang der Seite zu starten!!!
session_start();
include("bd.php");// Die Datei bd.php muss sich im selben Ordner wie alle anderen befinden. Ist dies nicht der Fall, ändern Sie einfach den Pfad
if (!empty($_SESSION["login"]) und !empty($_SESSION["password"]))
{
//Wenn in den Sitzungen ein Login und ein Passwort vorhanden sind, überprüfen Sie diese und rufen Sie den Avatar ab
$login = $_SESSION["login"];
$password = $_SESSION["password"];
$result = mysql_query("SELECT id,avatar FROM users WHERE login="$login" AND password="$password"",$db);
$myrow = mysql_fetch_array($result);
//Extrahieren Sie die erforderlichen Benutzerdaten
}
?>


Hauptseite


Hauptseite

if (!isset($myrow["avatar"]) or $myrow["avatar"]=="") (
//überprüfen, ob Benutzerdaten aus der Datenbank extrahiert wurden. Wenn nicht, ist er nicht angemeldet oder das Passwort in der Sitzung ist falsch. Wir zeigen ein Anmeldefenster an. Aber wir werden es denen, die reinkommen, nicht zeigen, sie brauchen es nicht mehr.
drucken<<


HIER;

If (isset($_COOKIE["login"])) //gibt es eine Variable mit login in COOKIE. Dies sollte der Fall sein, wenn der Benutzer bei der vorherigen Anmeldung auf das Kontrollkästchen „Angemeldet bleiben“ geklickt hat
{
//Wenn ja, dann fügen Sie seinen Wert in das Formular ein. In diesem Fall wird dem Benutzer angezeigt, dass sein Login bereits in der erforderlichen Spalte eingetragen ist
echo " value="".$_COOKIE["login"]."">";
}

drucken<<




HIER;

If (isset($_COOKIE["password"]))//ob es eine Variable mit einem Passwort im COOKIE gibt. Dies sollte der Fall sein, wenn der Benutzer bei der vorherigen Anmeldung auf das Kontrollkästchen „Angemeldet bleiben“ geklickt hat
{
//Wenn ja, dann fügen Sie seinen Wert in das Formular ein. In diesem Fall wird dem Benutzer angezeigt, dass sein Passwort bereits in der erforderlichen Spalte eingetragen ist
echo " value="".$_COOKIE["password"]."">";
}

Drucken<<



Erinnere dich an mich.






Registrieren



Sie sind als Gast angemeldet

HIER;
}
anders
{
//Wenn die Anmeldung erfolgreich ist, wird dem Benutzer alles unten zwischen den Sternchen angezeigt.

drucken<<
Sie sind auf der Site als $_SESSION (Beenden) angemeldet.


Dieser Link ist nur für registrierte Benutzer verfügbar

Dein Avatar:




HIER;

//************************************************************************************
//bei erfolgreicher Anmeldung erhält der Benutzer alles, was OBEN zwischen den Sternchen steht.
}
?>



6. Es ist erforderlich, dass sich angemeldete Benutzer abmelden können. Auf der Hauptseite gab es bereits einen Link zum Verlassen. Diese Datei existiert jedoch noch nicht. Erstellen wir also eine neue Datei Exit.php mit Code:

session_start();
if (empty($_SESSION["login"]) oder empty($_SESSION["password"]))
{
//Wenn es keine Sitzung mit Login und Passwort gibt, dann wurde auf diese Datei von einem nicht angemeldeten Benutzer zugegriffen. Er gehört nicht hierher. Wir geben eine Fehlermeldung aus und stoppen das Skript
Exit („Der Zugriff auf diese Seite ist nur registrierten Benutzern gestattet. Wenn Sie registriert sind, melden Sie sich mit Ihrem Benutzernamen und Passwort auf der Website an
Hauptseite");
}

unset($_SESSION["password"]);
unset($_SESSION["login"]);
unset($_SESSION["id"]);// Variablen in Sitzungen zerstören
Ausfahrt(" ");
// Den Benutzer zur Hauptseite weiterleiten.
?>

OK, jetzt ist alles vorbei! Genießen Sie es für Ihre Gesundheit! Viel Glück!



Ich habe beschlossen, diesen Artikel allen zu widmen, die mit dem Lernen beginnen PHP weil jeder den gleichen Fehler bekommt. Ich weiß nicht, warum sie es zulassen, aber sie tun es ständig. Ich kann ohne Übertreibung sagen, dass ich bereits etwa hundert Fragen erhalten habe, die in diesem Artikel beantwortet werden. Dieser Fehler hängt mit zusammen fehlerhafter Start in PHP.

Wie fast alle Anfänger:

  1. Erstellen PHP-Datei(Manchmal HTML-Datei, aber das sind die meisten Anfänger).
  2. Schreiben Sie es dort auf PHP-Code.
  3. Und sie doppelklicken, um es im Browser zu öffnen.

Das Ergebnis ist, dass der Browser den Code öffnet, es aber nicht eilig hat, ihn auszuführen. Es zeigt einfach einige Codeteile im Klartext an oder zeigt überhaupt nichts an.

Der Fehler dieses Ansatzes besteht darin, dass der Schüler das nicht versteht PHP ist eine serverseitige Sprache, nicht Kunde. Das HTML oder JavaScript Client-Sprachen werden selbstverständlich vom Browser verarbeitet. Aber für PHP benötigt einen Interpreter. Und dieser Interpreter wird vom Server gestartet.

Abschluss: Sie müssen PHP-Code über den Server ausführen. Wenn Sie haben Denwer, das heißt, durch ihn.

Jetzt, wie man PHP-Code über Denwer ausführt. Die meisten Anfänger machen den gleichen Fehler noch einmal. Sie scheinen alles richtig zu machen, die erforderlichen Ordner zu erstellen und neu zu starten Denwer und es scheint, dass nur noch die Datei korrekt aufgerufen werden muss. Aber auch hier liegt ein Fehler vor: Sie öffnen die Datei erneut einfach im Browser (entweder durch Ziehen der Datei in den Browser oder durch Doppelklick). Dies ist leicht an der Adresse in der Adressleiste zu erkennen. Es wird so etwas geben wie: file:///Z:\home\mysite.local\www\script.php.

Und Sie müssen es richtig starten, Eingabe der virtuellen Hostadresse. Geben Sie also direkt in die Adressleiste des Browsers Folgendes ein: http://mysite.local/script.php- Das war’s, jetzt wird das Skript ausgeführt und zeigt sein Ergebnis an.

Ich hoffe, dass dieser Artikel vielen Anfängern hilft, die gerade erst anfangen zu lernen PHP.

Inhalt

ereg

ereg – gepaarter Wert eines regulären Ausdrucks
Beschreibung
int ereg (String-Muster, String-String, Array);

Sucht nach gepaarten Werten Zeichenfolge im regulären Ausdruck, der in angegeben ist Muster .

Wenn für Teilzeichenfolgen in Klammern gepaarte Werte gefunden werden Muster und die Funktion wurde mit dem dritten Argument aufgerufen regs, dann werden gepaarte Werte in Elementen gespeichert regs. $regs enthält einen Teilstring, der mit der ersten linken Klammer beginnt; $regs enthält die Teilzeichenfolge beginnend mit der zweiten Klammer usw. $regs enthält eine Kopie Zeichenfolge .

Bei der Suche wird die Groß-/Kleinschreibung beachtet.

Die Funktion gibt true zurück, wenn in der Zeichenfolge ein passender Wert für Muster gefunden wurde, oder false, wenn keine passenden Werte gefunden wurden oder ein Fehler aufgetreten ist.

Der folgende Code extrahiert das Datum im ISO-Format und gibt es im Format TT.MM.JJJJ aus:

Beispiel 1. ereg()-Beispiel

If (ereg("((4))-((1,2))-((1,2))", $date, $regs)) ( echo "$regs.$regs.$regs"; ) else ( echo „Ungültiges Datumsformat: $date“; )

ereg_replace

ereg_replace – ersetzt regulären Ausdruck
Beschreibung
string ereg_replace(String-Muster, String-Ersetzung, String-String);

Diese Funktion scannt Zeichenfolge zu gepaarten Werten k Muster, ersetzt dann den gefundenen Text durch Ersatz .

Wenn Muster enthält dann Teilzeichenfolgen in Klammern Ersatz kann Teilzeichenfolgen wie \\ enthalten Nummer, der durch Text ersetzt wird, der der numerischen Teilzeichenfolge in Klammern entspricht; \\0 verarbeitet den gesamten Inhalt der Zeichenfolge. Es können bis zu 9 Teilzeichenfolgen verwendet werden. Klammern können gruppiert werden. In diesem Fall werden sie nach der öffnenden Klammer gezählt. Der folgende Code gibt beispielsweise dreimal „Dies war ein Test“ aus:

Beispiel 1. ereg_replace()

$string = "Dies ist ein Test"; echo ereg_replace(" is", " was", $string); echo ereg_replace("()is", "\\1was", $string); echo ereg_replace("(()is)", "\\2was", $string);

Siehe auch , und .

eregi

eregi – Suche nach gepaarten Werten in regulären Ausdrücken ohne Berücksichtigung der Groß-/Kleinschreibung
Beschreibung
int eregi (String-Muster, String-String, Array);

eregi_replace

eregi_replace – Ersetzung regulärer Ausdrücke ohne Berücksichtigung der Groß-/Kleinschreibung
Beschreibung
string eregi_replace(String-Muster, String-Ersetzung, String-String);

Teilt

split – teilt einen String mithilfe eines regulären Ausdrucks in ein Array auf
Beschreibung
Array-Split (String-Muster, String-String, Int);

Gibt ein Array von Zeichenfolgen zurück, von denen jede eine Teilzeichenfolge einer Zeichenfolge ist, die durch Aufteilen dieser Zeichenfolge in voneinander getrennte Teile gebildet wird Muster. Wenn ein Fehler auftritt, gibt die Funktion false zurück.

So rufen Sie die ersten 5 Felder aus einer Zeile in /etc/passwd ab:

Wird ausgegeben werden.

Diese Funktion kann verwendet werden, um Vergleiche ohne Berücksichtigung der Groß-/Kleinschreibung in Produkten durchzuführen, die nur Ausdrücke unterstützen, bei denen die Groß-/Kleinschreibung berücksichtigt wird.

 


Lesen:



MP3-Player von Samsung. MP3-Player für Samsung. MusiXmatch-Player für Samsung Android Touch-Telefone

MP3-Player von Samsung.  MP3-Player für Samsung.  MusiXmatch-Player für Samsung Android Touch-Telefone

Multimedia, Internet und Kommunikation Cartoon Network Anything ist das weltweit erste TV-Netzwerk, das speziell für Sie erstellt wurde. Damit...

Laden Sie nützliche Programme für Android 7 herunter

Laden Sie nützliche Programme für Android 7 herunter

Die Google Corporation scheint zu 100 % von ihren eigenen Fähigkeiten überzeugt zu sein, denn statt der durchaus erwarteten Übergangsversionen von OS 6.1 oder 6.2 haben die Eltern des „grünen...“

Peer-to-Peer-Netzwerk – was ist das?

Peer-to-Peer-Netzwerk – was ist das?

Die Entwicklung des Internets und seine weite Verbreitung auf der ganzen Welt haben es ermöglicht, verschiedene Informationen mit relativ hoher Geschwindigkeit auf... auszutauschen.

Standard-Smartphone-Tarif von Vodafone – Konditionen, Anschluss

Standard-Smartphone-Tarif von Vodafone – Konditionen, Anschluss

Ab dem 9. Januar 2018 überträgt der Mobilfunkanbieter Vodafone alle seine Nutzer, die sich in Gebieten befinden, die vorübergehend nicht von der Ukraine kontrolliert werden...

Feed-Bild RSS