php Formulaire d'inscription newsletter côté serveur

Ziggy

Membre
Salut à tous,

Dans le cadre de la formation avec FreeCodeCamp on nous demande de créer un formulaire quelconque (en HTML et CSS) pour valider une partie de la certification. Avec le cours qui précédait ça ne m'a pas posé énormément de problème, j'au soumis "mon devoir" et je suis passé aux challenges suivants.

Mais en fait le formulaire est un peu comme une coquille vide puisqu'il n'y a pas de code côté serveur pour réellement soumettre les données renseignées dans le formulaire (avec PHP) et également pour les stocker (avec SQL).

Donc voilà, je voulais m'attaquer à ce challenge perso pour faire réellement fonctionner un formulaire d'abonnement à une newsletter.
Je pense que cela pourrait être un exercice sympa pour débuter en PHP et SQL.
Si des membres du forum veulent m'accompagner ce serait pas mal de réfléchir ensemble à ça et de poster chacun nos idées et nos bouts de codes pour faire avancer le schmilblick, sinon je le ferais en solo mais c'est un peu moins fun dirons nous...

A vos éditeurs les courageux !

ps: si vous voulez je peux partager mon code html/css du formulaire sinon on peut en créer un nouveau ce n'est pas très compliqué ni long à faire.
 

yule

Membre
ou comme ça aussi pour MYSQL, une autre variante (sans être orienté objet mais style procédural)

PHP
// +----------- Connexion à la base de données.. ----------- +
    $db_name = 'XXXXX';
    $db_host = 'XXXXX';
    $db_user = 'XXXX';
    $db_pass = 'XXXXX';

// +----------- Pour éviter de répéter.. ----------- +
    $mysqli = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

// +----------- En cas d'échec à la connexion.. ----------- +
    if (mysqli_connect_errno())
    {
        printf("La connexion a échouée: %s\n", mysqli_connect_error());
        exit();
    }

PHP: mysqli_connect - Manual puis PHP: mysqli::__construct - Manual puis (exemple)
 
Dernière édition:

Nicolas

Membre actif
Est-ce que l'ordre des informations de connexion à une importance ?
php.net propose
PHP
<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
 

Jack

Membre
Les gars ça m'intéresse de finaliser le projet, en tout cas dans sa partie connexion à la BDD.
Nicolas est-ce que tu as une bdd de libre sur devcometrue.fr ??

Comme ça on avance !
 

Ziggy

Membre
A priori pas besoin d'une base de données pour écrire le code, pour tester oui mais on peut d'ores et déjà décider des infos de la BDD et s'en servir dans le code de yule par exemple.
PHP
// +----------- Connexion à la base de données.. ----------- +
    $db_name = 'form';
    $db_host = 'localhost';
    $db_user = 'root';
    $db_pass = 'root';
Il suffira de les mettre à jour lors de la mise en ligne.
Moi je sais pas faire, et c'était d'ailleurs l'origine de cette discussion : apprendre.
 

L'occitan

Membre

yule

Membre
Hello,

Effectivement faut se lancer (on jettera un oeil comme le dit L'occitan ) .

Il faut peut-être continuer avec le formulaire mis à disposition dans ce message pour rester dans du concret. Commencer déjà pas solutionner toute la récupération et le contrôle des infos soumises.

Apprendre a faire des includes dans ton fichier php, ainsi on pourra appeler la connexion à la bdd

Ensuite on pourra ajouter tout ceci dans une basse de données fraichement crée ainsi (d'abord fait avec PypmyAdmin, ensuite je l'ai exportée.. rare sont ceux qui la code dans l'autre sens😅

PHP
DROP TABLE IF EXISTS `newsletter`;
CREATE TABLE IF NOT EXISTS `newsletter` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `date` date NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `age` int(2) DEFAULT NULL,
  `role` varchar(100) NOT NULL,
  `recommend` varchar(100) NOT NULL,
  `mostLike` varchar(100) NOT NULL,
  `prefer` varchar(100) NOT NULL,
  `comment` longtext NOT NULL,
  `valide` int(1) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
COMMIT;

J'ai ajouté un nouveau fichier plus complet. ATTENTION, je n'ai pas testé si ceci fonctionnait comme une horloge (et je ne pense pas). C'est pas le but de livrer un script clef en main, mais ça le mérite de montrer dans quelle direction il faut aller. Ne pas hésiter à poser des questions (Bien prendre en compte que c'est BASIC et qu'il y a une tonne de manière différentes à le faire, mais ça, vous le découvrirez avec le temps...)

Nicolas : L'ordre n'a pas d'importance pour la BDD

Voilà pour essayer d'avancer.. Mais d'abord , faut lire, mettre en pratique etc... Il ne faut y aller sans savoir pourquoi...(je l'ai fait trop souvent fait à tord..)

Bonne bonne
Yule qui retourne solutionner les petits soucis sur son site.. o_O
 

Pièces jointes

  • formulaire.zip
    7.7 KB · Affichages: 2
Dernière édition:

yule

Membre
OUps... en fermant mon fichier form.php à l'instant, je viens de remarquer qu'il manque une } à la ligne ..... Non a vous de trouver :ROFLMAO::ROFLMAO::ROFLMAO:

Et pour terminer ceci include($_SERVER["DOCUMENT_ROOT"]."/include/configbdd.php"); est le chemin absolu sur le serveur .. en local, il faudra y mettre votre adresse de ce genre include($_SERVER["DOCUMENT_ROOT"]."/yule/scriptphp/formulaire/include/configbdd.php"); et y mettre les bonnes infos dans le fichier configbdd.php
 

Ces discussions pourraient vous intéresser...

  • Résolue
Hello, Quand j'essaie de connecter mon fichier PHP à la base de données sur mon serveur local cela ne fonctionne pas. (site WordPress) ERROR ESTABLISHING A DATABASE CONNECTION Pourtant mes éléments sont bons, j'ai vérifié et revérifié. Je vous colle le code du fichier PHP correspondant à la...
  • Résolue
Hello, Je voulais tester un peu node.JS et je l'ai donc installé sur mon Win 10, l'installation s'est bien passé. Par contre quand j'essaie de faire tourner un petit code simple qui permet de créer un serveur, je l'ai enregistré sous serveur.js var http = require('http')...
  • Résolue
Bonjour à tous, J'essaie de déployer une application sur mon serveur live via Docker mais j'ai du faire une mauvaise configuration car l'application s'est installé en local. Il y a un fichier à configurer : docker-compose.yml notamment cette section server: image: judge0/judge0:1.12.0...
Haut