Problème d'interaction PHP & MySQL

Petit nouveau ! | 3 Messages

20 avr. 2023, 02:58

Salut, j'ai exprès crée un compte pour l'occasion.

Je dev actuellement sur un site perso et j'ai quelques difficulté à lié mon code php avec ma base de données MySQL,
Voici donc mon problème :

Lorsque je clique sur un bouton du site qui permet d'envoyé le formulaire, ce dernier s'envoie, mais aucune information n'apparait dans la base de données de je visualise avec PhpMyAdmin, plus précisément je vois qu'une ligne à été ajouté mais cette dernière est vide...

Voici mon code qui permet d'envoyé le formulaire (Sans les données sensibles) :
<?php

$db_host = 'localhost';
$db_name = 'dbtest';
$db_user = 'root';
$db_pass = '123456789';
$db_port = 3306;

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name, $db_port);

if (!$conn) {
die('Connexion impossible : ' . mysqli_connect_error());
}

if (isset($_POST['submit'])) {
// Récupération des valeurs du formulaire
$nom = $_POST['Nom'];
$prenom = $_POST['Prenom'];
$email = mysqli_real_escape_string($conn, $_POST['Email']);
$password = $_POST['Password'];
$telephone = $_POST['Tel'];

$sql = "INSERT INTO 'Client' (Nom, Prenom, Email, Password, Tel) VALUES ('$nom', '$prenom', '$email', '$password', '$telephone')";

mysqli_query($conn, $sql);
?>

En espérant pouvoir m'aidé,
Merci d'avance

Cordialement
Bloc

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9584 Messages

20 avr. 2023, 13:38

Bonjour et bienvenue sur PHPfrance !

Si tu fais un var_dump($_POST) en début de script tu vois bien tes variables envoyées par le formulaire (avec la majuscule au début de chaque champ)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

23 avr. 2023, 18:18

Bonsoir désolé, de l'absence
Voici se que var_dump($_POST) me sort :

array(6) { ["Nom"]=> string(6) "Momnom" ["Prenom"]=> string(10) "Monprénom" ["Email"]=> string(18) "admin@emailtest .fr" ["Password"]=> string(13) "MomMotDePasse" ["Tel"]=> string(0) "" ["register"]=> string(13) "S'enregistrer" }

J'ai par ailleurs changé mon code voici (Avec information censurés) :

<?php

$nom = '';
$prenom = '';
$email = '';
$password = '';
$telephone = '';

$db_host = 'localhost';
$db_name = 'test';
$db_user = 'root';
$db_pass = 'motdepasse';
$db_port = 206;

$conn = new mysqli($db_host, $db_user, $db_pass, $db_name, $db_port);


if (!$conn) {
die('Connexion impossible : ' . mysqli_connect_error());
}

date_default_timezone_set('Europe/Paris');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="icon" type="image/png" href="2048-100x100.png"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Site - Enregistrement</title>
<style>
body {
margin: 0;
padding: 0;
font-family: 'Rubik', sans-serif;
background-color: #000000;
}

nav {
background-color: #333;
color: #fff;
display: flex;
align-items: center;
height: 80px;
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1;
}

nav img {
margin-left: 20px;
height: 60px;
width: 60px;
}

nav h1 {
margin-left: 20px;
font-size: 24px;
margin-right: auto;
}

nav ul {
margin: 0;
padding: 0;
list-style: none;
display: flex;
align-items: center;
}

nav ul li a {
color: #fff;
text-decoration: none;
padding: 20px;
display: block;
text-align: center;
}

nav ul li a:hover {
background-color: #555;
}
p {
margin-top: 100px;
}
img {
max-width: 100%;
height: auto;
}

h2 {
margin-top: 100px;
}
.formulaire-inscription {
max-width: 500px;
margin: 0 auto;
background-color: #fff;
padding: 50px;
border-radius: 10px;
box-shadow: 0px 0px 10px rgba(0,0,0,0.1);
}

.formulaire-inscription h2 {
text-align: center;
margin-bottom: 50px;
font-size: 2rem;
}

.formulaire-inscription label {
display: block;
font-weight: bold;
margin-bottom: 10px;
font-size: 1.2rem;
color: #3f3f3f;
}

.formulaire-inscription input[type=text], .formulaire-inscription input[type=password], .formulaire-inscription input[type=email] {
width: 100%;
border: none;
border-radius: 5px;
padding: 15px;
margin-bottom: 20px;
background-color: #f5f5f5;
font-size: 1.2rem;
color: #3f3f3f;
}

.formulaire-inscription input[type=text]:focus, .formulaire-inscription input[type=password]:focus, .formulaire-inscription input[type=email]:focus {
outline: none;
background-color: #e2e2e2;
}

.formulaire-inscription button[type=submit] {
background-color: #3f51b5;
color: #fff;
border: none;
border-radius: 5px;
padding: 15px 30px;
font-size: 1.2rem;
cursor: pointer;
transition: background-color 0.3s ease;
}

.formulaire-inscription button[type=submit]:hover {
background-color: #2c3e50;
}
.bouton-inscrire {
display: inline-block;
background-color: #A7A7A7;
color: #fff;
font-size: 18px;
font-weight: bold;
padding: 12px 24px;
border-radius: 4px;
text-decoration: none;
}

.bouton-inscrire:hover {
background-color: #525252;
cursor: pointer;
}
</style>
</head>
<body>
<nav>
<script type="text/javascript" src="slick/slick.min.js"></script>
<a href="index.php">
<img src="2048-100x100.png" alt="Logo sous licence">
</a>
<h1>Site</h1>
<ul>
<li><a href="#">Catalogue</a></li>
<li><a href="#">Contact</a></li>
<li><a href="login.php">Mon Compte</a></li>
</ul>
</nav>
<br>
<h2></h2>
<form class="formulaire-inscription" method="post" action="register.php">
<h3 align="center">S'enregistrer</h3>
<br>
<label for="nom">Nom* :</label>
<input type="text" id="Nom" name="Nom" required><br>

<label for="prenom">Prénom* :</label>
<input type="text" id="Prenom" name="Prenom" required><br>

<label for="email">Adresse e-mail* :</label>
<input type="email" id="Email" name="Email" required><br>

<label for="password">Mot de passe* :</label>
<input type="password" id="Password" name="Password" required><br>

<label for="telephone">Téléphone :</label>
<input type="text" id="Tel" name="Tel"><br>

<h4 align="center">* : Champs Obligatoires</h4>

<h4 align="center">En créent votre compte, vous acceptez les <a href="">conditions générales d'utilisation</a> du site</h4>

<center>
<input type="submit" class="bouton-inscrire" value="S'enregistrer" name="register">
<h3> <?php
if (isset($_POST['submit'])) {

$nom = $_POST["Nom"];
$prenom = $_POST["Prenom"];
$email = $_POST["Email"];
$password = $_POST["Password"];
$telephone = $_POST["Tel"];

if (!empty($nom) && !empty($prenom) && !empty($email) && !empty($password)) {

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

$sql = "SELECT * FROM Clients WHERE email = '$email'";
$result = mysql_query($conn, $sql);

if ($result->num_rows == 0) {

$date_creation = date("Y-m-d");


$sql = "INSERT INTO Clients (nom, prenom, email, password, telephone, type, creation, connexion) VALUES ('$nom', '$prenom', '$email', '$password', '$telephone', 'default', '$date_creation', '$date_creation')";
mysqli_query($conn, $sql);

if (mysqli_query($conn, $sql) === TRUE) {

header("Location: login.php");
exit();
} else {
echo "Erreur : " . $sql . "<br>" . $conn->error;
}
} else {
echo "Adresse e-mail déjà utilisée";
}
} else {
echo "Adresse e-mail invalide";
}
} else {
echo "Tous les champs sont obligatoires";
}
}
mysqli_close($conn);

var_dump($_POST);
?>
<br> Debug
</h3>
</center>
</form>
</body>
</html>

J'ai modifier les information de connexions et celles comportant mes information personnelles.

Merci d'avance. :priere:

Petit nouveau ! | 3 Messages

23 avr. 2023, 18:19

PS : J'ai du ajouté un espace entre l'adresse mail et le domaine, sinon je ne pouvais pas posté ici c'est donc pas une erreur de ma part

Mammouth du PHP | 2526 Messages

23 avr. 2023, 18:23

il faut débuguer en ajoutant des echo un peu partout pour voir ce qui se passe, si cela rentre bien dans les if par exemple.