[RESOLU] mysqli_real_escape_string() ,Undefined variable

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 : [RESOLU] mysqli_real_escape_string() ,Undefined variable

Re: mysqli_real_escape_string() ,Undefined variable

par @rthur » 12 mai 2017, 09:07

Fais un echo de ta requête SQL et teste là dans phpmyadmin

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 12 mai 2017, 03:50

S'il vous plaît ?

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 11 mai 2017, 23:25

J'ai ajouter le code après la requête, je n'es toujours aucune erreur mais les informations ne sont pas enregistré dans la base de donnée

Re: mysqli_real_escape_string() ,Undefined variable

par kevin254kl » 11 mai 2017, 23:03

Salut,

Tu dois avoir une erreur sql après avoir exécuté ta requête fait un

Code : Tout sélectionner

echo $bdd->error; exit;

Cela te dira le problème.
Pour la redirection tu as http://php.net/manual/fr/function.header.php regarde dans l'exemple .

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 11 mai 2017, 20:46

Je consulte mais je ne m'y connais pas je veut juste que les enrengistrement s'enrengistre bien dans la base de donnée

Re: mysqli_real_escape_string() ,Undefined variable

par @rthur » 11 mai 2017, 18:16

Il faudrait que tu bosses par toi même avant de poster plusieurs versions d'un même script au fur et à mesure de tes avancées et de nous poser des questions que quand tu es vraiment bloqué.
On ne va pas faire le debugage à ta place donc il faut que tu prennes le temps de bien lire tes messages d'erreur, faire une recherche dans la doc et/ou sur Google pour comprendre et essayer de le faire par toi même.

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 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();
  }
 
}
?>

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 11 mai 2017, 17:34

Je veux pouvoir transmettre les informations du formulaire dans ma base de donnée
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>
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();
}
?>

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 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();
  }
 
}
?>

Re: mysqli_real_escape_string() ,Undefined variable

par @rthur » 11 mai 2017, 09:22

Ça veut dire que tu as une erreur de syntaxe.
Vérifies qu'il ne manque pas un point-virgule en fin de la ligne précédent le message d'erreur, ou qu'il ne manque pas un point si tu fais des concaténations.

Re: mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 11 mai 2017, 05:04

Salut merci de ta réponse, il me donne maintenant :
Parse error: syntax error, unexpected 'mysqli_real_escape_string' (T_STRING) in C:\wamp64\www\Mon projet\insert_jeunes.php on line 32

Re: mysqli_real_escape_string() ,Undefined variable

par or 1 » 10 mai 2017, 15:26

et pour l'autre problème :
foreach($_POST as $index => $valeur) {
$index = mysqli_real_escape_string(trim($valeur));
}
1. il faut se demander ce que fait ce code
2. tiens, la suite du code n'utilise jamais $index !!!

Re: mysqli_real_escape_string() ,Undefined variable

par kevin254kl » 10 mai 2017, 08:34

Bonjour,

D'après la doc http://php.net/manual/en/mysqli.real-escape-string.php Tuas deux paramètres

Code : Tout sélectionner

string mysqli_real_escape_string ( mysqli $link , string $escapestr )
$link correspond à $bdd pour toi.

mysqli_real_escape_string() ,Undefined variable

par LerikalBless » 10 mai 2017, 08:16

Bonsoir, je m'entraîne a PHP et HTML et je suis bloqué lors de l'envoie d'information d'un formulaire vers ma base de donnée
Qui me donne comme codes d'erreurs :
" Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\wamp64\www\Mon projet\insert_jeunes.php on line 32 "
" Undefined variable: Nom_jeune ( toutes les autres variables ) in C:\wamp64\www\Mon projet\insert_jeunes.php on line 34 "
Mon code de traitement php :
<?php
require_once('connexion.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 {
 
  foreach($_POST as $index => $valeur) {
    $index = mysqli_real_escape_string(trim($valeur));
  }
  $req = "INSERT INTO jeune VALUES ('', '".$Nom_jeune."','".$Prenom_jeune."', '".$Adresse_mail_jeune."','".$Mot_de_passe_jeune."','".$Numero_de_telephone_mobile_jeune."', now())";
  $res = $bdd->query($req);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>
Mon code de connexion php :
<?php
$hote = 'localhost';
$utilisateur = 'root';
$mdp = '';
$nombdd = 'service_des_sports'; // Nom de la base de données
$bdd = mysqli_connect($hote, $utilisateur, $mdp, $nombdd);
if (!$bdd) {
    echo 'Erreur de connexion (' . mysqli_connect_errno() . ') ' . mysqli_connect_error();
}
?>
En espérant que vous pouvez résoudre mon problème. Merci Beaucoup