Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 24 nov. 2021, 18:13

- Pas d'accents dans les variables, ni dans les name de formulaire: https://www.php.net/manual/fr/language. ... basics.php
- Dans ton if, quand tout est bon tu utilisera la commande INSERT INTO pour insérer dans ta BDD: https://www.w3schools.com/php/php_mysql_insert.asp
- Tes variables, $_prenom, etc, n’existent pas tant que tu ne les déclarent pas. (il existe cependant la fonction extract)
- Pour l'insertion tu fera attention aux possibles injections SQL: https://www.php.net/manual/fr/security. ... ection.php
- Vue que tu affiche tes variables sur ta page, tu fera également attention aux failles XSS: https://vincent.dauce.fr/php-securite-faille-xss/

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 24 nov. 2021, 14:24

Justement j'ai fais ce que tu m'as dit juste après avoir écrit le msg et ça ne change rien
<?php
        
        
        ini_set('mysql.connect_timeout', 30);
        ini_set('default_socket_timeout', 30);

        


       $link = mysqli_connect("localhost", "root", "root", "Forum 2"); //infos du serveur, mot de passe du serveur, etc... pas des infos de tables MYSQL
        
        /* Vérification de la connexion */
      if (mysqli_connect_errno()) {
      printf("Échec de la connexion : %s\n", mysqli_connect_error());
      exit();
      }

        if (isset($_POST['Nom de famille'],$_POST['prénom'],$_POST['nom'],$_POST['code_postal'])) {

          if(!empty($_prenom) && !empty($nom) && !empty($code_postal))
            echo "Votre prénom : ".$prénom."<br/>";
            echo "Votre nom : ".$nom."<br/>";
            echo "Votre code_Postal : ".$code_postal."<br/>";
        
      }
  
          
?>

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 23 nov. 2021, 17:54

Là tu englobe rien car tu referme l'accolade de suite après...

Il te faut mettre ton code d’exécution dans tes accolades, regarde la doc stp (les pages de la doc font pas trois kilomètres et c'est assez simple à comprendre)

Regarde aussi isset: https://www.php.net/manual/fr/function.isset.php

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 17:47

 if (isset($_POST['formsend'],$_POST['prénom'],$_POST['nom'],$_POST['code_postal'])) {
          
        }

  
          if(!empty($_prenom) && !empty($nom) && !empty($code_postal)){
            echo "Votre prenom : ".$prenom."<br/>";
            echo "Votre nom : ".$nom."<br/>";
            echo "Votre CodePostal : ".$code_postal."<br/>";

      }
?>
Comme ça ? Pardon si je comprends pas :(, mais le empty et les echo je les mets à l'intérieur non ?

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 23 nov. 2021, 17:39

Oui aussi, c'est bien de vérifier que les champs existent mais quand je dit englober c'est avec des accolades if(variables){ ici ton bloc à exécuter si "variables" existe }

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 17:33

comme ça ? '' if (isset($_POST['formsend'],$_POST['prénom'],$_POST['nom'],$_POST['code_postal'])) ''

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 23 nov. 2021, 17:26

Ensuite il te faudra englober ton bloc avec isset, pas le fermer avec un point virgule: https://www.php.net/manual/fr/function.isset.php

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 17:23

  <?php
        
        
        ini_set('mysql.connect_timeout', 30);
        ini_set('default_socket_timeout', 30);

        


       $link = mysqli_connect("localhost", "root", "root", "Forum 2"); //infos du serveur, mot de passe du serveur, etc... pas des infos de tables MYSQL
        
        /* Vérification de la connexion */
      if (mysqli_connect_errno()) {
      printf("Échec de la connexion : %s\n", mysqli_connect_error());
      exit();
      }

        if (isset($_POST['formsend']))

        $prenom = $_POST['prénom'];
        $nom = $_POST['nom'];
        $code_postal = $_POST['code_postal'];

          if(!empty($_prenom) && !empty($nom) && !empty($code_postal)){
            echo "Votre prenom : ".$prenom."<br/>";
            echo "Votre nom : ".$nom."<br/>";
            echo "Votre CodePostal : ".$code_postal."<br/>";

      }
?>
    
    
  </header>
          
  </body>
</html>
Voilà donc mon code après avoir modifier ce que tu m'as dit.
Juste une question quand je sauvegarde mon php sur Visual Studio Code il me dit ça, qu'est-ce que cela veut dire concrètement ?
(Et mes données ne s'affiche toujours pas dans ma bdd)

''An error occured during document validation after save with the following message: An error occured, no output was received after executing the phpmd command''

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 23 nov. 2021, 17:04

if (isset($_POST['formsend']));

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 17:01

Alors c'est bon je n'ai plus de message d'erreurs en bas de ma page HTML, mais en l'occurrence, les données ne s'inscrivent toujours pas dans ma BDD et euh ce que tu m'as dit de faire pour englober le bloc je sais pas lequel prendre comme exemple pour mon cas ^^'

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 23 nov. 2021, 16:44

Utilise le mot de passe que tu utilise pour te connecter à phpmyadmin

Ensuite il te faudra englober ton bloc avec isset, pas le fermer avec un point virgule: https://www.php.net/manual/fr/function.isset.php

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 16:26

Hello ! alors oui je travaille en local et j'ai fais ce que tu m'as dit mais j'ai toujours un message d'erreur ''Échec de la connexion : Access denied for user 'root'@'localhost' (using password: NO)''
(J'ai essayé avec le mdp ''root'' -> l'autre d'avant ça ne change pas à par le "(using password: NO)'' qui se met en "(using password: YES)''
  <?php
        
        
        ini_set('mysql.connect_timeout', 30);
        ini_set('default_socket_timeout', 30);

        


       $link = mysqli_connect("localhost", "root", "", "Forum 2"); //infos du serveur, mot de passe du serveur, etc... pas des infos de tables MYSQL
        
        /* Vérification de la connexion */
      if (mysqli_connect_errno()) {
      printf("Échec de la connexion : %s\n", mysqli_connect_error());
      exit();
      }

        if (isset($_POST['formsend']));

        $prenom = $_POST['prenom'];
        $nom = $_POST['nom'];
        $code_postal = $_POST['code_postal'];

          if(!empty($_prenom) && !empty($nom) && !empty($code_postal)){
            echo "Votre prenom : ".$prenom."<br/>";
            echo "Votre nom : ".$nom."<br/>";
            echo "Votre CodePostal : ".$code_postal."<br/>";

      }
?>

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par two3d » 23 nov. 2021, 16:21

Tu travail en local ? en ligne ? Si local, l'url du serveur c'est "localhost", le nom d'utilisateur c'est "root", sans mot de passe, et le nom de ta base de données
"localhost","root","","nom base"

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 14:53

Bon finalement j'ai essayé de changer de port j'ai mis le ''3306'' mais une autre erreur apparaît.
''Échec de la connexion : MySQL server has gone away''

Sauriez-vous m'aider ?

Re: Forumulaire HTML/CSS à joindre à une base de donnée MYSQL

par Merydian » 23 nov. 2021, 12:55

Hello alors j'ai fais ce que tu m'as dit et ça avance ! j'ai bien le message d'erreur en bas de ma page comme quoi il n'arrive pas à se connecter ''Échec de la connexion : Connection refused'' sais-tu d'ou cela peut provenir ? Car j'ai bien mis le bon nom du serveur et son mot de passe.
 <?php
       $link = mysqli_connect("Forum2", "root", "Gregory12",); //infos du serveur, mot de passe du serveur, etc... pas des infos de tables MYSQL
        
        /* Vérification de la connexion */
      if (mysqli_connect_errno()) {
      printf("Échec de la connexion : %s\n", mysqli_connect_error());
      exit();
      }

        if (isset($_POST['formsend']));

        $prenom = $_POST['prenom'];
        $nom = $_POST['nom'];
        $code_postal = $_POST['code_postal'];

          if(!empty($_prenom) && !empty($nom) && !empty($code_postal)){
            echo "Votre prenom : ".$prenom."<br/>";
            echo "Votre nom : ".$nom."<br/>";
            echo "Votre CodePostal : ".$code_postal."<br/>";

      }
?>