Formulaire d'inscription php

Résolu/Fermé
Hitojaa - Modifié le 4 janv. 2023 à 14:33
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 - 4 janv. 2023 à 15:31

Bonjour, j'aurai besoin d'aide pour un formulaire d'inscription en php (j'utilise laragon pour ma base de donnée), mon programme semble marcher mais rien ne s'affiche dans ma base de donner quand je submit mes infos.

Voici mon code index.php :

<form method="POST" action="connexion.php">
  <input type="text" name="prenom" placeholder="Prenom">
  <input type="text" name="nom" placeholder="Nom">
  <input type="text" name="telephone" placeholder="Numéro de téléphone">
  <input type="email" name="email" placeholder="Adresse mail">
  <input type="password" name="password" placeholder="Mot de passe">
  <input type="submit" name="create" value="S'inscrire">
</form>

  <?php
  
  include("header.php");

  if (isset($_POST['create'])) {
    $prenom = $_POST['prenom'];
    $nom = $_POST['nom'];
    $telephone = $_POST['telephone'];
    $email = $_POST['email'];
    $password = $_POST['password'];

    $sql = "INSERT INTO user (prenom, nom, telephone, email, password) 
              VALUES ('$prenom', '$nom', '$telephone', '$email', '$password')";
  
    $stmt = $pdo->exec($sql);
  }
  ?>

Voici mon code header.php : 

<?php

$bdd = 'mysql:host=localhost;dbname=ycocovoit;port=3306';

try {
 
  $pdo = new PDO($bdd, 'root' , '');
  
  }
  catch (PDOException $exception) {
   
   //mail('***@***', 'Echec connexion bdd', $exception->getMessage());
   exit('Erreur de connexion à la base de données');
   
  }
  
  ?>


Windows / Chrome 108.0.0.0

A voir également:

1 réponse

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 711
4 janv. 2023 à 14:54

Bonjour,

Commence par appliquer ce qui est marqué ici : 

https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs


0

J'ai fait ce qui était marqué mais il n'y a toujours aucune erreur qui s'affiche

INDEX.PHP

<form method="POST" action="connexion.php">
  <input type="text" name="prenom" placeholder="Prenom">
  <input type="text" name="nom" placeholder="Nom">
  <input type="tel" name="telephone" placeholder="Numéro de téléphone">
  <input type="email" name="email" placeholder="Adresse mail">
  <input type="password" name="password" placeholder="Mot de passe">
  <input type="submit" name="create" value="S'inscrire">
</form>

  <?php

  error_reporting(E_ALL);
  ini_set('display_errors', TRUE);
  ini_set('display_startup_errors', TRUE);
  
  include("header.php");

  if (isset($_POST['create'])) {
    $prenom = $_POST['prenom'];
    $nom = $_POST['nom'];
    $telephone = $_POST['telephone'];
    $email = $_POST['email'];
    $password = $_POST['password'];

    $sql = "INSERT INTO user (prenom, nom, telephone, email, password) 
              VALUES ('$prenom', '$nom', '$telephone', '$email', '$password')";
  
  try{
    $stmt = $pdo->exec($sql);
  }catch(Exception $e){
    // en cas d'erreur :
     echo " Erreur ! ".$e->getMessage();
     echo " Les datas : " ;
    print_r($datas);
  }
}
?>

HEADER.PHP

<?php

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

$bdd = 'mysql:host=localhost;dbname=ycocovoit;port=3306';

try {
 
  $pdo = new PDO($bdd, 'root' , '');

  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  } catch(PDOException $e) {
   die('Erreur : ' . $e->getMessage());
}
  

?>
0

J'ai trouvé le problème quand je met en action="" mon chemin vers une autre page dans mon form les données ne s'ajoutent plus à ma base de donnnée

0
jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 711 > Hitojaa
4 janv. 2023 à 15:31

Oui.

si ton code php se trouve dans le même fichier que celui de ton formulaire, il ne faut pas mettre de "chemin".

Il faut le laisser vide.

PS: 

par contre, regarde bien l'exemple qui se trouve dans le lien.

Il utilise les variables nommées et les requête préparées.

Cela t'évitera de nombreux problèmes et assure une certaine protection contre les risque de "piratage"  via les injections sql.

PS²: pense à mettre le sujet en résolu.

0