PHP

XAMPP et PHPMyAdmin

Résolu

Bonjour !


je suis la nouvelle série de vidéos du « sitedudev » et je rencontre un soucis :


J’utilise xampp car wamp je n’arrivais pas à me connecter à la base de donnée .Lors de la validation pour insérer les fichiers dans la base de donnée via le fichier « inscription.php » rien ne s’inscrit dans la table prévue à cet effet .


1-le nom de la table est bon.

2-je suis bien connecté à la base de donnée.


VOICI MON CODE :

p.s : ne pas prendre en compte que tous les messages d'erreurs ne soient pas parametrés


<?php
	//on integre le fichier de connexion
	include_once('db/connexiondb.php');


	if (!empty($_POST)) //si le champs n'est pas vide
	{
		extract($_POST);// on extrait les données
		$valid = (boolean)true;


		if (isset($_POST['inscription']))
		//si on appuie sur le bouton inscription 
		{
			//on recupere les valeurs
			$pseudo = (String) trim($pseudo);//trim pour enlever les espaces avant et apres
			$mail = (String) trim($mail);
			$password = (String) $password;
			$jour = (int) $jour;
			$mois = (int) $mois;
			$annee = (int) $annee;
			$departement = (int) $departement;
			$date_naissance = (String) null;




			//VERIFICATIONS
			if (empty($pseudo)) 
			{
				$valid = false;
				$err_pseudo = "renseigner votre pseudo";
			}


			if (empty($mail)) 
			{
				$valid = false;
				$err_mail = "renseigner votre mail";
			}


			if (empty($password)) 
			{
				$valid = false;
				$err_password = "renseigner votre password";
			}


			$verif_jour = array(1, 2, 3);
			if (!in_array($jour, $verif_jour)) 
			{
				$valid = false;
				$err_jour = "renseigner votre jour";
			}


			$verif_mois = array(1, 2, 3);
			if (!in_array($mois, $verif_mois)) 
			{
				$valid = false;
				$err_mois = "renseigner votre mois";
			}


			$verif_annee = array(1990, 2000, 3);
			if (!in_array($annee, $verif_annee)) 
			{
				$valid = false;
				$err_annee = "renseigner votre annee";
			}


			//fonction check_date pour verifier une date
			if (!checkdate($mois, $jour, $annee)) 
			{
				$valid = false;
				$err_date = " date fausse";
			}else{
				$date_naissance = $annee . '-' . $mois . '-' . $jour;
			}


			$verif_departement = array(1, 2, 3);
			if (!in_array($departement, $verif_departement)) 
			{
				$valid = false;
				$err_departement = "renseigner votre departement ";
			}


			if ($valid) 
			{
				$date_inscription = date("Y-m-d");


				//preparer sa requete
				$req = $BDD->prepare("INSERT INTO utilisateur (pseudo, mail, password, date_naissance, departement,  date_inscription, date_connexion) 
					VALUES (?, ?, ?, ?, ?, ?, ?)");


				//execution de la requete
				$req->execute(array($pseudo, $mail, $password, $date_naissance, $departement,  $date_inscription, $date_connexion));
			}
		}
	}


?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">


    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">


    <link rel="stylesheet" href="style.css">


    <title>CONNEXION</title>
</head>
<body>
	<h1>Inscription</h1>


	<form method="post">
		<section>
			<div>
				<?php if (isset($err_pseudo)) {echo $err_pseudo;}  ?>
				<input type="text" name="pseudo" placeholder="pseudo">
			</div>


			<div>
				<?php if (isset($err_mail)) {echo $err_mail;}  ?>
				<input type="text" name="mail" placeholder="mail">
			</div>


			<div>
				<?php if (isset($err_password)) {echo $err_password;}  ?>
				<input type="password" name="password" placeholder="mot de passe">
			</div>


			<div>
				<select name="jour">
					<option value="1">1</option>
					<option value="2">2</option>
				</select>


				<select name="mois">
					<option value="1">janvier</option>
					<option value="2">fevrier</option>
				</select>


				<select name="annee">
					<option value="1">1990</option>
					<option value="2">2000</option>
				</select>
				
			</div>


			<div>
				<select name="departement">
					<option value="1">1</option>
					<option value="2">2</option>
				</select>
			</div>
			




		</section>
		<input type="submit" name="inscription" value="s'inscrire">
		
	</form>




<!-- Optional JavaScript -->
      <!-- jQuery first, then Popper.js, then Bootstrap JS -->
      <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
      <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>
1029 vues
07 mars 2020 à 4:52 (Édité)
Cette pub permet au site de vivre ...

15 commentaires

salut @Jerem971


je ne comprend toujours pas pourquoi sur la video ça fonctionnait et pas chez moi, peut êtres un parametre sql je ne sais pas .


Mais je met en résolu :D

Hello @Dieunel,


Nous sommes ravis que tu ais pu trouvé une solution 😉

N'hésite pas à mettre le topic en "Résolu" si tu n'as plus de questions/problèmes 😉

@Clouder


J'ai trouvé !!


j'ai regardé pour a la ligne ou l'erreur s'afficher,


1- j'ai d'abord suprimé la variable qui pausait probleme.

RESULTAT : l'inscription a réussie.


2- je l'ai remise

RESULTAT : inscription échouée.


Et c'est la que j'ai remarqué que ma variable $date_connexion n'existait pas. J'ai peut êtres raté quelque chose dans la video youtube mais en l'initialisant comme la la variable $date_inscription avec un = date( Y-m-d);


$date_connexion = date (Y-m-d); et la ça fonctionne !


merci de votre aide je vais pouvoir continuer. Ca n'explique pas pourquoi moi ça n'a pas fonctionné comme dans ta video @Clouder mais au moins je peu continuer

@Clouder


il n'y a rien qui s'affiche avec le test echo 1; exit;

par contre je remarque que les variables $err... ne s'affichent pas dans les champs correspondants. (jour, mois, année, departement).

autre chose, j'ai verifier tout mon code avec ta video et maintenant ça m'affiche se message d'erreur :


Notice: Undefined variable: date_connexion in C:\Users\JAD\Desktop\test-site\inscription.php on line 99

Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'date_connexion' cannot be null in C:\Users\JAD\Desktop\test-site\inscription.php on line 99


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


cette ligne correspond à la requete suivant :


 $req->execute(array($pseudo, $mail, $password, $date_naissance, $departement, $date_inscription, $date_connexion));


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


et un message dans ma base de donné sql :


MySQL a retourné un résultat vide (c'est à dire aucune ligne). (traitement en 0,0006 seconde(s).)

@Dieunel,


Peux-tu refaire le test avec des echo 1; exit; ? Mais cette fois tu testes les conditions comme ceci :


$verif_departement = array(1, 2, 3);
if (!in_array($departement, $verif_departement)) {

  echo 1;exit;

  $valid = false;
  $err_departement = "renseigner votre département";
}


Comme ça si tu vois un 1 apparaître alors il faut que tu regardes pourquoi tu ne respectes pas la condition

@Clouder


OOOOH MON DIEU !! je parle a mon hero et je ne le savais même pas ??? XD la honte ^^


d'accord pas de soucis, et bien en attendant je cherche toujours. avec un peu plus de recule je me dis que je verrais une erreur que je n'aurais pas vue jusque la .

@Dieunel,

La chaîne YouTube 'Sitedudev' c'est la mienne. Si tu as vue dans formations il va bientôt y avoir le code de se que je fais actuellement.

Je ne peux pas encore annoncer de date mais c'est prochainement.

@clouder @Jerem971


salut a vous ! j'etais un peu absent je laissais se reposer un peu les choses. Je n'ai pas encore tenté mais je me demandais, est ce qu'il y a moyen d'avoir le code complet pour que je puisse comparer avec le mien ? je sais que pendant un temps "sitedudev" faisait ça sur son site . Il faut s'abonner peut etres ?

veuillez m'excuser pour le temps de réponses

@Jerem971, je sais mais au cas ou qu’il y ait arriver 😂

Hello @Clouder,


Tu n'as pas répondu à sa question... 🙃

Cette pub permet au site de vivre ...
1
2