Maison > Article > développement back-end > 5 questions courantes parmi les développeurs PHP juniors
1. À quels détails faut-il prêter attention lors du téléchargement de fichiers ? Comment enregistrer des fichiers dans un répertoire spécifié ? Comment éviter le problème du téléchargement de fichiers avec des noms en double ?
1). Tout d'abord, vous devez activer le téléchargement de fichiers dans php.ini ;
2). Il y a une valeur de téléchargement maximale autorisée dans php.ini, la valeur par défaut est de 2 Mo. Il peut être modifié si nécessaire ;
3). Lors du téléchargement du formulaire, assurez-vous d'écrire enctype="multipart/form-data" dans la balise form
4). est obligatoire Il s'agit d'une publication
5). Définissez le contrôle du formulaire avec type="file" et devez avoir une valeur d'attribut de nom
6). doit s'assurer que la taille du fichier téléchargé est correcte, dépasse la norme, si le type de fichier répond aux exigences et si le chemin à stocker après le téléchargement existe
7). page, et la page de réception utilise $_FILES pour recevoir les fichiers téléchargés. $_FILES est un tableau multidimensionnel.
L'indice de première dimension est le nom du contrôle de téléchargement, et les indices bidimensionnels sont nom/type/tmp_name/size/error.
représentent respectivement le nom du fichier, le type de fichier, le nom du fichier temporaire téléchargé dans le répertoire temporaire, la taille du fichier et s'il y a des erreurs.
S'il s'agit d'un téléchargement par lots, alors l'indice bidimensionnel est un tableau, pas une chaîne.
8). Une fois le fichier téléchargé, il est placé dans le chemin temporaire côté serveur. Vous devez utiliser la fonction move_uploaded_file () pour enregistrer le fichier téléchargé dans le répertoire spécifié.
9). Afin d'éviter de télécharger des fichiers avec des noms en double, vous pouvez obtenir le suffixe du fichier à partir du nom du fichier téléchargé, puis renommer le fichier en utilisant le suffixe du fichier d'horodatage.
2. La relation et la différence entre $_REQUEST, $_GET, $_POST et $_COOKIE :
Relation : $_REQUEST inclut $_GET, $_POST, $_COOKIE Tous les contenus en sont une collection.
$_GET, $_POST, $_COOKIE ont tous une copie dans $_REQUEST. Changer la valeur de $_REQUEST n'affecte pas $_GET etc. et vice versa.
Lorsque GET et POST ont le même nom, $_REQUEST prend la valeur de POST. Lorsque COOKIE a le même nom que GET ou POST, $_REQUEST prend la valeur de COOKIE. COOKIE a la priorité la plus élevée. erreur.
3. Qu'est-ce que l'injection SQL ? Comment empêcher l’injection SQL ?
L'attaque par injection SQL est l'un des moyens couramment utilisés par les pirates pour attaquer les bases de données. Lorsque certains programmeurs écrivent du code,
ne jugent pas la légalité des données saisies par l'utilisateur. L'injecteur peut saisir un code de requête de base de données dans le formulaire et le soumettre,
le programme le soumettra. est reconstitué pour générer une instruction SQL complète, et le serveur est amené à exécuter la commande SQL malveillante. Sur la base des résultats renvoyés par le programme, l'injecteur
obtient avec succès certaines données sensibles et contrôle même l'ensemble du serveur. Il s'agit d'une injection SQL.
Pour filtrer les informations soumises, échappez aux guillemets simples.
Tout d'abord, vous pouvez le définir dans php.ini afin que tous les guillemets simples soient échappés après la soumission. Ou utilisez addlashes().
4. Quel est le concept de MVC ?
MVC (Model-View-Controller) est un modèle de conception logicielle ou une idée de programmation inventée dans les années 1980.
M fait référence à la couche de modèle (Modèle), V fait référence à la couche de vue (Vue) (couche d'affichage ou interface utilisateur) et C fait référence à la couche de contrôle (Contrôleur).
Le but de l'utilisation de mvc est de séparer M et V, afin qu'un programme puisse facilement utiliser différentes interfaces utilisateur.
Le but de l'existence de C est de jouer un rôle régulateur entre M et V pour assurer la synchronisation de M et V. Une fois M modifié, V doit être mis à jour de manière synchrone.
Séparer M et V peut faire en sorte que la même page Web affiche différents styles de page lorsque différentes vacances arrivent. Cela nécessite uniquement de créer plusieurs pages de modèles de calques d'affichage à l'avance,
Pas besoin de modifier le calque M. programme.
MVC réalise la division du travail et la coopération dans la programmation, maximise la réutilisabilité du code et rend la logique du programme plus claire et plus organisée, ce qui facilite sa maintenance et sa gestion à l'avenir.
Dans le développement de sites Web, la couche modèle
est généralement responsable de l'ajout, de la suppression, de la modification et de la vérification des informations des tables de base de données, la couche
vue est responsable de l'affichage du contenu de la page. , et le contrôle
La couche contrôleur joue un rôle de régulation entre M et V. La couche contrôleur décide quelle méthode de quelle classe de modèle appeler. Après l'exécution de
, la couche contrôleur décide laquelle. couche de vue à laquelle attribuer le résultat.
5. Que représentent respectivement $this, soi et parent ? Quand utiliser
$this représente l'objet actuel self représente la classe actuelle parent représente la classe parent de la classe actuelle
Occasions d'utilisation :
$this Cela ne peut être que utilisé dans la classe actuelle, et les propriétés et méthodes de la classe actuelle peuvent être appelées via $this->;
self ne peut être utilisé que dans la classe actuelle et est accessible dans la classe actuelle via l'opérateur de portée : Les constantes de classe, les attributs statiques dans la classe actuelle et les méthodes dans la classe actuelle
parent ne peuvent être utilisés que dans la classe actuelle avec une classe parent et accéder aux constantes de classe dans la classe parent ; via l'opérateur scope :: , les propriétés statiques dans la classe parent, les méthodes dans la classe parent.
est utilisé lorsque des opérateurs sont utilisés
a) Dans cette classe :
i.self:: constante de classe
ii.self:: attributs statiques
iii.self::method() parent::method()
b) Dans les sous-classes :
i.parent::class constantes
ii.parent::Propriété statique (publique ou protégée)
iii.parent::Method() (publique ou protégée)
c) En dehors de la classe :
i .Nom de classe ::Constante de classe
ii. Nom de la classe : Propriété statique (publique)
iii. Nom de la classe : Méthode statique (publique)