[RESOLU] Impossible de se conencter à la base de donnée

Eléphanteau du PHP | 13 Messages

11 mai 2017, 06:10

Bonjour, je n'arrive pas a me connecter a ma base de donnée. Je veux pouvoir transmettre les informations du formulaire dans ma base de donnée, mais malheureusement, il me renvoie comme code d'erreur :
" mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: ''@'@localhost' (mot de passe: NON) in C:\wamp64\www\Mon_projet2.0\traitement.php on line 30 "
" Warning: mysql_real_escape_string(): A link to the server could not be established in C:\wamp64\www\Mon_projet2.0\traitement.php on line 30 "
" Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO "

Voici mon code HTML :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//FR">
<html><head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Ajout d'un nouvel adhérent</title>

<link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body >
<header>
<div class="logo"><img src="images/logo.png" alt=""></div>
<div class="titre"><h1>Service des sports de la ville d’Agnetz</h1></div>	
</header>
<div class="content">
	<nav>
		<ul>
			<li><a href="index.html">Accueil</a></li>
			<li><a href="inscription.html">Inscription</a></li>
			<li><a href="#">Connexion Jeune</a></li>
			<li><a href="#">Connexion Parents</a></li>
			<li><a href="#">Les Sports</a></li>
			<li><a href="#">Les Coachs</a></li>
			<li><a href="#">À propos</a></li>
			<li><a href="#">Nous contacter</a></li>
		</ul>
	</nav>
	<div class="formulaire">
		<h2>Ajout d'un nouvel adhérent</h2>
		
		<form method="post" action="traitement.php">
			<fieldset>
				<legend class="img" align="center">Veuillez remplir
				ce formulaire</legend>

				Nom :<br>
				<input name="Nom_jeune" type="text"><br>
				Prenom :<br>
				<input name="Prenom_jeune" type="text" ><br>
				Adresse e-mail :<br>
				<input name="Adresse_mail_jeune" type="email" ><br>
				Mot de passe :<br>
				<input name="Mot_de_passe_jeune" type="password" ><br>
				Date de naissance : <br>
				<input name="Date_de_naissance_jeune" type="date" ><br>
				Téléphone :<br>
				<input name="Numero_de_telephone_mobile_jeune" type="tel" ><br>
				Sexe :<input name="Sexe_jeune" value="m" type="radio">
				masculin <input name="Sexe_jeune" value="f" checked="checked" type="radio" > féminin<br>
				<input value="VALIDER" type="submit" >
			</fieldset>
		</form>
	</div>
</div>
<footer></footer>
</body>
</html>
Voici mon code traitement php :
<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
// vérification des champs 
if (empty($_POST['Nom_jeune'])) 
  $message .= "Votre Nom<br/>";
if (empty($_POST['Prenom_jeune'])) 
  $message .= "Votre prénom<br/>";
if (empty($_POST['Adresse_mail_jeune'])) 
  $message .= "Votre email<br/>";
if (empty($_POST['Mot_de_passe_jeune'])) 
  $message .= "Votre mot de passe<br/>";
if (empty($_POST['Date_de_naissance_jeune'])) 
  $message .= "Votre date de naissance<br/>";
if (empty($_POST['Sexe_jeune'])) 
  $message .= "Votre sexe<br/>";
if (empty($_POST['Numero_de_telephone_mobile_jeune'])) 
  $message .= "Votre numero de téléphone<br/>";
 
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
// sinon c'est ok 
} else {
 include('connexion.php');
$Nom_jeune = mysql_real_escape_string($_POST['Nom_jeune']);
$Prenom_jeune = mysql_real_escape_string($_POST['Prenom_jeune']); 
$Adresse_mail_jeune = mysql_real_escape_string($_POST['Adresse_mail_jeune']); 
$Mot_de_passe_jeune = mysql_real_escape_string($_POST['Mot_de_passe_jeune']);
$Date_de_naissance_jeune = mysql_real_escape_string($_POST['Date_de_naissance_jeune']);
$Sexe_jeune = mysql_real_escape_string($_POST['Sexe_jeune']);	
$Numero_de_telephone_mobile_jeune = mysql_real_escape_string($_POST['Numero_de_telephone_mobile_jeune']); 
	
	
	
  $req = "INSERT INTO jeune VALUES ('', '".$Nom_jeune."','".$Prenom_jeune."', '".$Adresse_mail_jeune."','".$Mot_de_passe_jeune."','".$Date_de_naissance_jeune."','".$Sexe_jeune."','".$Numero_de_telephone_mobile_jeune."', now())";
  $res = $bdd->query($req);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>
Voici mon code de connexion php :
<?php
$hote="localhost";
$login="root";
$mdp="";
$nombdd="service_des_sports"; // Nom de la base de données
$bdd=mysqli_connect($hote, $login, $mdp, $nombdd);
if (!$bdd) {
    echo 'Erreur de connexion (' . mysqli_connect_errno() . ') ' . mysqli_connect_error();
}
?>

Mammouth du PHP | 1967 Messages

11 mai 2017, 08:12

Tu te connecte avec l'extension php mysqli et ensuite tu tente d'utiliser des fonction de mysql (sans le i) qui est une extension obsolète désormais. modifie tes fonctions mysql_real_escape_string en mysqli_real_escape_string ca devrait aider.

Je te déconseillerai de garder le compte root sans mot de passe pour te connecter, utilise phpmyadmin pour créer un utilisateur dédié à ta base de données et utilise le.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 13 Messages

11 mai 2017, 17:31

Bonjour, merci de ta réponse, il me donne comme réponse :

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\wamp64\www\Mon_projet2.0\traitement.php on line 30

Merci de ton aide voici mon code PHP modifier :
<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
// vérification des champs 
if (empty($_POST['Nom_jeune'])) 
  $message .= "Votre Nom<br/>";
if (empty($_POST['Prenom_jeune'])) 
  $message .= "Votre prénom<br/>";
if (empty($_POST['Adresse_mail_jeune'])) 
  $message .= "Votre email<br/>";
if (empty($_POST['Mot_de_passe_jeune'])) 
  $message .= "Votre mot de passe<br/>";
if (empty($_POST['Date_de_naissance_jeune'])) 
  $message .= "Votre date de naissance<br/>";
if (empty($_POST['Sexe_jeune'])) 
  $message .= "Votre sexe<br/>";
if (empty($_POST['Numero_de_telephone_mobile_jeune'])) 
  $message .= "Votre numero de téléphone<br/>";
 
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
// sinon c'est ok 
} else {
 include('connexion.php');
$Nom_jeune = mysqli_real_escape_string($_POST['Nom_jeune']);
$Prenom_jeune = mysqli_real_escape_string($_POST['Prenom_jeune']); 
$Adresse_mail_jeune = mysqli_real_escape_string($_POST['Adresse_mail_jeune']); 
$Mot_de_passe_jeune = mysqli_real_escape_string($_POST['Mot_de_passe_jeune']);
$Date_de_naissance_jeune = mysqli_real_escape_string($_POST['Date_de_naissance_jeune']);
$Sexe_jeune = mysqli_real_escape_string($_POST['Sexe_jeune']);	
$Numero_de_telephone_mobile_jeune = mysqli_real_escape_string($_POST['Numero_de_telephone_mobile_jeune']); 
	
	
	
  $req = "INSERT INTO jeune VALUES ('', '".$Nom_jeune."','".$Prenom_jeune."', '".$Adresse_mail_jeune."','".$Mot_de_passe_jeune."','".$Date_de_naissance_jeune."','".$Sexe_jeune."','".$Numero_de_telephone_mobile_jeune."', now())";
  $res = $bdd->query($req);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>

Eléphanteau du PHP | 13 Messages

11 mai 2017, 17:45

J'ai donc réussis a mettre les 2 paramètre mais lors de l'enrengistrement et de l'envoie vers la base de donnée, je voudrai que ça renvois a l'index.php mais aussi quand je vérifie ma base de donnée, les informations saisie et envoyé non pas été stocké dans la base de donnée
<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis:
<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
// vérification des champs 
if (empty($_POST['Nom_jeune'])) 
  $message .= "Votre Nom<br/>";
if (empty($_POST['Prenom_jeune'])) 
  $message .= "Votre prénom<br/>";
if (empty($_POST['Adresse_mail_jeune'])) 
  $message .= "Votre email<br/>";
if (empty($_POST['Mot_de_passe_jeune'])) 
  $message .= "Votre mot de passe<br/>";
if (empty($_POST['Date_de_naissance_jeune'])) 
  $message .= "Votre date de naissance<br/>";
if (empty($_POST['Sexe_jeune'])) 
  $message .= "Votre sexe<br/>";
if (empty($_POST['Numero_de_telephone_mobile_jeune'])) 
  $message .= "Votre numero de téléphone<br/>";
 
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
// sinon c'est ok 
} else {
 include('connexion.php');
$Nom_jeune = mysqli_real_escape_string($bdd,($_POST['Nom_jeune']));
$Prenom_jeune = mysqli_real_escape_string($bdd,($_POST['Prenom_jeune'])); 
$Adresse_mail_jeune = mysqli_real_escape_string($bdd,($_POST['Adresse_mail_jeune'])); 
$Mot_de_passe_jeune = mysqli_real_escape_string($bdd,($_POST['Mot_de_passe_jeune']));
$Date_de_naissance_jeune = mysqli_real_escape_string($bdd,($_POST['Date_de_naissance_jeune']));
$Sexe_jeune = mysqli_real_escape_string($bdd,($_POST['Sexe_jeune']));	
$Numero_de_telephone_mobile_jeune = mysqli_real_escape_string($bdd,($_POST['Numero_de_telephone_mobile_jeune'])); 
	
	
	
  $req = "INSERT INTO jeune VALUES ('', '".$Nom_jeune."','".$Prenom_jeune."', '".$Adresse_mail_jeune."','".$Mot_de_passe_jeune."','".$Date_de_naissance_jeune."','".$Sexe_jeune."','".$Numero_de_telephone_mobile_jeune."', now())";
  $res = $bdd->query($req);
 
  if ($res) {
    echo $msg_ok;
	  
  } else {
    echo mysql_error();
  }
 
}
?>

Mammouth du PHP | 1967 Messages

11 mai 2017, 18:15

Tu mélange tou, si tu utilise l'extension mysqli, il faut s'y tenir jusqu'au bout et pas tenter de l'objet par après
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 13 Messages

11 mai 2017, 18:22

Je m'y suis perdu, tu peux, me dire ce qu'il y a a remplacer s'il te plaît ?

Mammouth du PHP | 1967 Messages

12 mai 2017, 08:07

regarde les exemples dans cette page de doc
http://php.net/manual/en/mysqli-stmt.execute.php

et voi la différence entre la méthode avec des classes et la méthode procédurale. tu ne peux pas passer de l'un à l'autre, il te faut choisir une méthode et t'y tenir jusqu'au bout.

Et c'est pareil dans ton autre sujet.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube