Heim  >  Artikel  >  Backend-Entwicklung  >  5 häufige Fragen junger PHP-Entwickler

5 häufige Fragen junger PHP-Entwickler

怪我咯
怪我咯Original
2017-01-16 11:34:501285Durchsuche

1. Auf welche Details sollte beim Hochladen von Dateien geachtet werden? Wie speichere ich Dateien in einem bestimmten Verzeichnis? Wie vermeide ich das Problem des Hochladens von Dateien mit doppelten Namen?

1). Zuerst müssen Sie den Datei-Upload in php.ini aktivieren.

2). Es kann bei Bedarf geändert werden;

3). ist erforderlich. Es handelt sich um einen Beitrag.

5). Es muss sichergestellt werden, dass die Größe der hochgeladenen Datei den Standard überschreitet, ob der Dateityp den Anforderungen entspricht und ob der nach dem Hochladen zu speichernde Pfad vorhanden ist.

7). Seite, und die empfangende Seite verwendet $_FILES, um die hochgeladenen Dateien zu empfangen. $_FILES ist ein mehrdimensionales Array.

Der erste dimensionale Index ist der Name des Upload-Steuerelements und die zweidimensionalen Indizes sind Name/Typ/tmp_name/Größe/Fehler.

repräsentieren jeweils den Dateinamen, den Dateityp, den Namen der in das temporäre Verzeichnis hochgeladenen temporären Datei, die Dateigröße und ob Fehler vorliegen.

Wenn es sich um einen Batch-Upload handelt, ist der zweidimensionale Index ein Array und kein String.

8). Nachdem die Datei hochgeladen wurde, wird sie im temporären Pfad auf der Serverseite abgelegt. Sie müssen die Funktion move_uploaded_file() verwenden, um die hochgeladene Datei im angegebenen Verzeichnis zu speichern.

9). Um das Hochladen von Dateien mit doppelten Namen zu vermeiden, können Sie das Dateisuffix aus dem hochgeladenen Dateinamen ermitteln und die Datei dann mit dem Zeitstempel + Dateisuffix umbenennen.

2. Die Beziehung und der Unterschied zwischen $_REQUEST, $_GET, $_POST und $_COOKIE:

Beziehung: $_REQUEST umfasst $_GET, $_POST, $_COOKIE Alle Inhalte sind eine Sammlung davon.


  1. $_GET, $_POST, $_COOKIE haben alle eine Kopie in $_REQUEST. Das Ändern des Werts von $_REQUEST hat keinen Einfluss auf $_GET usw. und umgekehrt.


  2. Wenn GET und POST denselben Namen haben, nimmt $_REQUEST den Wert von POST an. Wenn COOKIE denselben Namen wie GET oder POST hat, nimmt $_REQUEST den Wert von COOKIE an. COOKIE hat höchste Priorität. Fehler.

  3. 3. Was ist SQL-Injection? Wie kann man eine SQL-Injection verhindern?

  4. Der SQL-Injection-Angriff ist eines der häufigsten Mittel, mit denen Hacker Datenbanken angreifen. Wenn einige Programmierer Code schreiben, beurteilen sie nicht die Rechtmäßigkeit der Benutzereingabedaten. Der Injektor kann einen Datenbankabfragecode in das Formular eingeben und senden.

Das Programm sendet ihn Informationen werden zusammengesetzt, um eine vollständige SQL-Anweisung zu generieren, und der Server wird dazu verleitet, den bösartigen SQL-Befehl auszuführen. Basierend auf den vom Programm zurückgegebenen Ergebnissen erhält der Injektor

erfolgreich einige sensible Daten und steuert sogar den gesamten Server. Dies ist eine SQL-Injection.

Um die übermittelten Informationen zu filtern, maskieren Sie die einfachen Anführungszeichen.

Zuerst können Sie es in php.ini so einstellen, dass alle einfachen Anführungszeichen nach der Übermittlung maskiert werden. Oder verwenden Sie addslashes().

4. Was ist das Konzept von MVC?

MVC (Model-View-Controller) ist ein Software-Designmuster oder eine Programmieridee, die in den 1980er Jahren erfunden wurde.

M bezieht sich auf die (Modell-)Modellebene, V bezieht sich auf die (Ansichts-)Ansichtsebene (Anzeigeebene oder Benutzeroberfläche) und C bezieht sich auf die (Controller-)Kontrollebene.

Der Zweck der Verwendung von mvc besteht darin, M und V zu trennen, sodass ein Programm problemlos verschiedene Benutzeroberflächen verwenden kann.

Der Zweck der Existenz von C besteht darin, eine regulierende Rolle zwischen M und V zu spielen, um die Synchronisation von M und V sicherzustellen. Sobald sich M ändert, sollte V synchron aktualisiert werden.

Die Trennung von M und V kann dazu führen, dass auf derselben Webseite unterschiedliche Seitenstile angezeigt werden, wenn unterschiedliche Feiertage kommen. Dazu müssen lediglich mehrere Ansichtsebenen-Vorlagenseiten im Voraus erstellt werden.

Die M-Ebene muss nicht geändert werden Programm.

MVC erreicht Arbeitsteilung und Zusammenarbeit bei der Programmierung, maximiert die Wiederverwendbarkeit von Code und macht die Programmlogik klarer und organisierter, was die Wartung und Verwaltung in Zukunft erleichtert.

Bei der Website-Entwicklung ist die

-Modellebene im Allgemeinen für das Hinzufügen, Löschen, Ändern und Überprüfen von Datenbanktabelleninformationen verantwortlich, die

Ansichtsebene ist für die Anzeige von Seiteninhalten verantwortlich , und die

-Steuerung Die Controller-Schicht spielt eine regulierende Rolle zwischen M und V. Die Controller-Schicht entscheidet, welche Methode welcher Modellklasse aufgerufen werden soll. Nach der Ausführung von

entscheidet die Controller-Schicht, welche Ansichtsebene, der das Ergebnis zugewiesen werden soll.

5. Was repräsentieren $this, self und parent? Wann zu verwenden

$this repräsentiert das aktuelle Objekt self repräsentiert die aktuelle Klasse parent repräsentiert die übergeordnete Klasse der aktuellen Klasse

Verwendungszwecke:

$this Es kann nur sein Wird in der aktuellen Klasse verwendet, und die Eigenschaften und Methoden in der aktuellen Klasse können über $this-> aufgerufen werden.

self kann nur in der aktuellen Klasse verwendet werden und kann in der aktuellen Klasse über aufgerufen werden Der Bereichsoperator: Klassenkonstanten, statische Attribute in der aktuellen Klasse und Methoden in der aktuellen Klasse

parent können nur in der aktuellen Klasse mit einer übergeordneten Klasse verwendet werden und auf Klassenkonstanten in der übergeordneten Klasse zugreifen über den Bereichsoperator::, statische Eigenschaften in der übergeordneten Klasse, Methoden in der übergeordneten Klasse.

wird verwendet, wenn Operatoren verwendet werden

a) In dieser Klasse:

i.self:: Klassenkonstante

ii.self:: statische Attribute

iii.self::method() parent::method()

b) In Unterklassen:

i.parent::class-Konstanten

ii.parent::Statische Eigenschaft (öffentlich oder geschützt)

iii.parent::Method () (öffentlich oder geschützt)

c) Außerhalb der Klasse:

i .Klassenname::Klassenkonstante

ii. Klassenname:: Statische Eigenschaft (öffentlich)

iii. Klassenname:: Statische Methode (öffentlich)


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Cookies und Sitzungen in PHPNächster Artikel:Cookies und Sitzungen in PHP