Les données persistantes dans une base de données Posgresql avec PHP
- 1733
- 260
- Rayan Lefebvre
PHP est un langage de script de serveur largement utilisé. Ses grandes capacités et sa nature légère le rend idéal pour le développement du frontage Web, et bien qu'il soit possible de créer des structures avancées, c'est également une utilisation de base facile à apprendre, ce qui en fait un bon point de départ pour les débutants également. Les données enregistrées, traitées, envoyées ou affichées par l'application que nous créons doivent être stockées quelque part, cependant; Notre page Web est sans état sans ces données. Nous pouvons stocker nos données de plusieurs façons ou même les rejeter après utilisation, mais la manière la plus standard est de la stocker dans une base de données conçue dans le seul but de stocker les données de manière fiable, et la présenter si nécessaire, le plus rapidement possible.
Dans ce tutoriel, nous créerons une page Web simple pour enregistrer et afficher les données utilisateur. Nous utiliserons un RDBM PostgreSQL comme backend et développerons notre application en PHP qui s'exécutera sur un serveur Web Apache. De cette façon, nous pouvons accéder à notre application Web à partir de tout navigateur commun pour afficher ou ajouter à notre base de données utilisateur. C'est la nature de l'application Web que de nombreux utilisateurs / opérateurs peuvent travailler avec elle simultanément, tout ce dont ils ont besoin est un navigateur et un accès réseau à notre application.
Dans ce tutoriel, vous apprendrez:
- Comment installer les packages nécessaires pour la connexion postgresql en php
- Comment créer le côté de la base de données de l'application
- Comment coder l'exemple d'application
- Comment utiliser et vérifier l'exemple d'application
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Ubuntu 18.04.2 |
Logiciel | Postgresql 10.9, php 7.2.19 |
Autre | Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Notes sur les composants du logiciel
Nous avons configuré notre application sur Ubuntu, mais en gros, ce processus peut être porté sur n'importe quelle distribution. Les différences sont dans les gestionnaires de packages et les noms de packages, ainsi que dans un chemin de répertoire. Notez également que même si nous utiliserons les versions des composants logiciels mentionnés ci-dessus, cette application peut être construite sur différentes versions des composants avec de petits ajustements. Quelques exemples d'autres distributions seront inclus pour comparaison.
Vous pouvez remarquer que la demande est minimaliste: c'est exprès. Le but de ce guide est de montrer les principes de base du développement d'une application qui peut communiquer avec une base de données, aussi simple que possible. Code minimal, composants minimaux. N'utilisez pas ce guide pour créer des applications de production, car elle manque de mesures de sécurité, de réutilisation ou d'optimisation d'ailleurs.
Installation des packages nécessaires
Après avoir installé la base de données PostgreSQL, tout ce dont nous avons besoin est d'ajouter un support PHP. Pour cela, nous avons besoin du php-pgsql
emballer. Nous utiliserons apte
Pour l'installer:
# apt-get install php-pgsql
Certaines distros peuvent l'appeler php7-pgsql
Et similaires, mais tous les gestionnaires de packages fournissent une fonction de recherche, il est donc facile de trouver ce dont nous avons besoin. Par exemple, c'est ainsi que vous installez PostgreSQL sur les systèmes RHEL8 / CENTOS 8 Linux.
Nous devons également installer PHP, un serveur Web et la prise en charge de PHP sur le serveur Web. C'est à deux forfaits:
# apt-get install apache2 libapache2-mod-php
Nous pouvons démarrer les deux services afin qu'ils soient disponibles dans les prochaines étapes. Nous utiliserons systemd
pour ça.
# systemctl start postgresql # systemclt start apache2
Création de la base de données et des objets nécessaires
Le côté de la base de données de notre application comprendra une base de données, une seule table et une séquence pour prendre en charge l'attribution automatique de la clé primaire.
- Nous allons passer au
postgres
utilisateur:# su - Postgres
- Connectez-vous à la base de données:
$ psql psql (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1)) Tapez "Aide" pour obtenir de l'aide. postgres = #
- Créer un nouvel utilisateur:
Postgres = # Créer un exemple de rôle avec un mot de passe de connexion 'ExamplePass';
Et une base de données avec l'ensemble du propriétaire.
Postgres = # Créer une base de données ExampledB propriétaire ExempleUser Encoding 'UTF-8';
- Après avoir quitté le
PSQL
Outil, nous créons un fichier texte appeléExemple_table.SQL
avec le contenu suivant:
CopieCréer une séquence userId_seq Démarrer avec 0 Incrément par 1 Non MAXVALUE MINVALUE 0 CACHE 1; Alter Séquence UserID_SEQ propriétaire à ExempleUser; Créer des utilisateurs de table (UserId Numeric Primary Key DefaultVal ('userid_seq' :: regClass), nom d'utilisateur non nul, texte de messagerie non nul, enregistrement_date horonestamp default ()); modifier le propriétaire des utilisateurs de table à ExempleUser;
Ici, nous créons une séquence à la ligne 1 qui fournira une clé primaire unique à chaque enregistrement du tableau, plutôt que de définir sa propriété. À la ligne 3, nous créons un tableau qui maintiendra les données de l'utilisateur que nous enregistrerons et afficherons avec l'application. Nous définissons les valeurs par défaut pour le
ID de l'utilisateur
etDate d'inscription
, et laissera-t-il à la base de données pour remplir ces champs pour nous. - Nous chargeons le fichier SQL ci-dessus dans la nouvelle base de données:
$ psql -d ExampledB < example_table.sql CREATE SEQUENCE ALTER SEQUENCE CREATE TABLE ALTER TABLE
Avec cela, notre base de données est configurée et prête à servir. Postgresql 10.9 sur Ubuntu accepte les connexions protégées par mot de passe sur le périphérique de bouclage par défaut. Si vous utilisez d'autres versions, vous devrez peut-être modifier le pg_hba.confli
Pour permettre l'accès à la base de données. Il y a un exemple dans notre guide d'installation de Redmin sur la façon de configurer cela.
Construire le code de demande
Bien qu'il existe certainement de nombreux excellents outils pour aider à produire du code source de travail, nous ne les couvrirons pas ici, cela ajouterait à la complexité de ce guide. Nous allons créer un fichier de texte appelé enregistrement.php
, par défaut Document_root
Répertoire sur Ubuntu 18, / var / www / html /
. Sur d'autres distributions, cela pourrait être / srv / www / htdocs /
, ou autre chose. Reportez-vous à la configuration du serveur Web si vous n'êtes pas sûr.
PHP est un langage de script, ce qui signifie que nous n'avons pas besoin de compiler notre code, il suffit de le présenter au serveur Web, qui l'interprétera l'exécution.
Nous pouvons utiliser un éditeur de texte de ligne de commande, comme vi
ou nano
Pour remplir le fichier PHP mentionné avec le code source suivant:
Page d'enregistrement utilisateur Veuillez remplir le formulaire ci-dessous et appuyez sur Soumettre pour enregistrer les données.
\ n# Nom d'utilisateur Adresse e-mail Date d'inscription \ n "; while ($ row = pg_fetch_row ($ result)) echo"" . $ row [0] . " " . $ row [1] . " " . $ row [2] . " " . $ row [3] . " \ n "; echo"\ n "; / * Section 7 * / pg_close ($ dbConn); ?>
Copie Nous commençons notre code en tant que simple page HTML statique à section 1
. Nous créons une forme à section 2
qui offre à l'utilisateur la possibilité d'enregistrer des données dans l'application. Nous ne demanderons qu'un nom d'utilisateur et une adresse e-mail. À section 3
Nous intégrons le code PHP dans la page. Section 4
Crée la connexion de la base de données à l'aide des informations de connexion que nous avons configurées à l'étape de la base de données. Si la connexion ne peut pas être établie, l'application décède avec un message d'erreur.
À section 5
Nous gérons toutes les données envoyées pour le traitement avec le formulaire que nous avons créé section 2
. Si «nom d'utilisateur» et «e-mail» sont publiés, nous vérifierons s'ils ne sont pas vides, et s'ils ne le sont pas, nous les insérons dans la base de données à l'aide de notre connexion de base de données.
Indépendamment de la réception de données publiées, nous interrogerons le tableau de la base de données pour les données utilisateur déjà enregistrées à section 6
. Nous générerons le code HTML nécessaire pour fournir une table remplie des données renvoyées à la base de données.
À SETION 7
Nous fermons notre connexion à la base de données (nettoyons toujours les objets qui ne sont plus nécessaires!), et à section 8
Nous quittons le code PHP et terminons notre page avec de simples balises HTML. Et avec cela, notre application est complète, nous pouvons commencer à l'utiliser.
En utilisant l'application
Nous pointerons un navigateur pour http: // localhost / enregistrement.php
. La seule page de notre exemple apparaîtra.
Nous pouvons remplir les champs du formulaire avec des données aléatoires pour tester l'application. Lorsque le texte ajouté aux deux champs, nous pouvons soumettre les données.
Remplir les champs de formulaire avec des données d'échantillonnage.Après avoir soumis, la page affiche le même formulaire où nous pouvons enregistrer notre prochain utilisateur, ainsi que celui déjà enregistré, qui est interrogé à partir de la base de données après insertion. Nous avons terminé notre objectif d'une application d'enregistrement de données utilisateur.
La liste des applications déjà enregistrées données.Nous pouvons également vérifier que les données sont stockées avec succès dans la base de données en utilisant PSQL
:
$ psql -d exampledB exampledB = # select * dans les utilisateurs; userId | Nom d'utilisateur | Courriel | Registration_Date -------- + ---------- + ------------------------ + ---- ------------------------ 0 | Foobar | foo.bar @ maildomain.org | 2019-06-25 20:28:18.224375 (1 rangée)
Dernières pensées
Nous avons créé un exemple d'application utilisant des connaissances à partir de différents champs, base de données, serveur Web, le Http
Protocole en général, et bien sûr le développement de PHP. Ce guide a l'intention de montrer à quel point il est facile de créer quelque chose d'utile avec l'union de ces champs. J'espère que ce guide peut aider les débutants à comprendre certains des aspects du développement et à démontrer qu'il n'est pas de la science de l'espace - nous n'avons ajouté que quelques lignes de code ici et là, et le tout commence à fonctionner ensemble.
Alors que cet exemple d'application sert son objectif de démonstration, le code et toute la solution crie bien sûr pour l'amélioration. Juste pour en nommer quelques-uns…
- Rien n'empêche un opérateur d'enregistrement du nom d'utilisateur exact et / ou un e-mail deux fois. Cela entraînerait des enregistrements redondants. Cela pourrait être géré à la fois sur la base de données (contrainte unique) et l'application (vérifiez les données avant l'insertion).
- D'où vient les données enregistrées? Ce qui protège l'application d'un mauvais acteur? Pour le moment, rien, un seul script de shell serait suffisant pour le surcharger, seules les défenses par défaut du serveur Web sont en place - mais cela ne m'empêche pas de publier la trilogie complète du seigneur des anneaux dans l'un des champs 1000 fois par minute ( uniquement la bande passante). Dans cet état de l'application, il est facile de remplir les disques sous la base de données avec des données aléatoires - la vérification des entrées utilisateur revient ici, mais aussi l'authentification et l'autorisation.
- La conception Web est parfaitement manquante à ce stade. Quelques
CSS
, un peu plus de texte qui aide le travail de l'opérateur, messages d'erreur utiles… la convivialité de l'utilisateur est également un point de vue important. - Enregistrer naturellement le nom d'utilisateur d'un utilisateur et le courrier électronique associé n'est qu'un exemple, nous pourrions enregistrer le premier et le nom de famille, le numéro de téléphone peut-être, plus d'un e-mail par utilisateur… tout ce qui est utile pour stocker.
La liste pourrait continuer indéfiniment. C'est à vous, le lecteur, pour améliorer votre propre application. Si ce guide vous a aidé à emprunter la voie du développement, soit en tant que passe-temps, soit en visant à être un professionnel, alors il a bien servi son but.
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Boucles imbriquées dans les scripts bash
- Comment créer une pile de lampe basée sur Docker à l'aide de Docker sur…
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Ampache Raspberry Pi Installation
- Linux Apache n'exécute pas les fichiers PHP: solution
- Une introduction à l'automatisation Linux, des outils et des techniques
- Installation de WordPress OpenLitesPeed
- Comment installer PHP sur Ubuntu Linux