Page 1 sur 1
Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:20
par alex857
Bonjour,
je suis un debutant en PHP et mon probleme est que j'aimerais pouvoir enregistrer les donnees de mon formulaire dans ma base dans ma base.
Le probleme est que ma requete (pour le INSERT INTO que quand je rentre les donnees en dur, les informations son bien enregistrer dans PHP my admin, mais lorsque je passe le $_POST la requete ne marche plus)
<?php
$serveurBD = "localhost";
$nomUtilisateur = "tata";
$motDePasse = "salut";
$baseDeDonnees = "toto";
$idConnexion = mysql_connect($serveurBD,
$nomUtilisateur,
$motDePasse);
if ($idConnexion !== FALSE)
echo "Connexion au serveur reussie";
else
echo "Echec de connexion au serveur";
$connexionBase = mysql_select_db($baseDeDonnees);
if ($connexionBase)
echo "Connexion a la base reussie";
else
echo "Echec de connexion a la base";
// Et pour mettre fin à la connexion
if ($idConnexion !== FALSE && $connexionBase && $_POST['nom'])
{
// Cet echo m'affiche bien ce ke je rentre dans mon formulaire a la place de "'.$_POST['nom'].'"
// echo "INSERT INTO administrateurs (id, nom) VALUES (default, "'.$_POST['nom'].'")";
// Cette requete marche puisquelle s'enregistre bien lorsque que je rentre les donnees en dur 'alex'
// $sql = "INSERT INTO administrateurs (id, nom) VALUES (default, 'alex')";
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, "'.$_POST['nom'].'")";
$retour = mysql_query($sql);
if ($retour === FALSE)
echo "La requête INSERT a échoué.";
else
echo "Un nouveau nom a été ajouté dans la table exemple1.";
}
// Et pour mettre fin à la connexion
mysql_close();
?>
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:26
par J-oxi
Les doubles quotes permettent d'inclure les variables php.
tu peux essayer
$Nom = $_POST['nom'];
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, $Nom)";
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:30
par sirakawa
à vue de nez:
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, "'.$_POST['nom'].'")";
serait aussi bien ainsi:
$nom = isset($_POST['nom']) ? $_POST['nom']: "";
//ici un traitement sur la validité du nom;
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, $nom)";
Sugestion :
si id est autoincrement, il est inutimle d le mentionner dans la requête.
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:38
par alex857
à vue de nez:
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, "'.$_POST['nom'].'")";
serait aussi bien ainsi:
$nom = isset($_POST['nom']) ? $_POST['nom']: "";
//ici un traitement sur la validité du nom;
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, $nom)";
Sugestion :
si id est autoincrement, il est inutimle d le mentionner dans la requête.
Bonjour merci beaucouop pour vos reactivites mais ca ne marche toujours pas g essaye vos deux methodes
Ca peut etre un probleme dans phpmyadmin ??? g mis VARCHAR pour mon champ NOM utf8_general_ci
Cordialement,
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:41
par ghost5922
Bonjour,
pour le varchar c'est bon
<?php
$serveurBD = "localhost";
$nomUtilisateur = "tata";
$motDePasse = "salut";
$baseDeDonnees = "toto";
$idConnexion = mysql_connect($serveurBD,
$nomUtilisateur,
$motDePasse);
if ($idConnexion !== FALSE)
echo "Connexion au serveur reussie";
else
echo "Echec de connexion au serveur";
$connexionBase = mysql_select_db($baseDeDonnees);
if ($connexionBase)
echo "Connexion a la base reussie";
else
echo "Echec de connexion a la base";
// Et pour mettre fin à la connexion
if ($idConnexion !== FALSE && $connexionBase && $_POST['nom'])
{
// Cet echo m'affiche bien ce ke je rentre dans mon formulaire a la place de "'.$_POST['nom'].'"
// echo "INSERT INTO administrateurs (id, nom) VALUES (default, "'.$_POST['nom'].'")";
// Cette requete marche puisquelle s'enregistre bien lorsque que je rentre les donnees en dur 'alex'
// $sql = "INSERT INTO administrateurs (id, nom) VALUES (default, 'alex')";
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, '".$_POST['nom']."')";
$retour = mysql_query($sql);
if ($retour === FALSE)
echo "La requête INSERT a échoué.";
else
echo "Un nouveau nom a été ajouté dans la table exemple1.";
}
// Et pour mettre fin à la connexion
mysql_close();
?>
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:48
par alex857
Merci mais je n'ai toujours pas de solution amon probleme

Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:49
par ghost5922
Re,
poste ton formulaire ou fait un print_r($_POST); sinon tu as une erreur ?
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:54
par alex857
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, 'alex')";
losque je fais cette requette en dur tout marche bien, oui je vais essayer le printr
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:56
par alex857
// LE FORMULAIRE EN HTML
<div class="modal-body">
<form method="POST" action="php/register.php">
<label>Nom</label>
<input type="text" name="nom" class="span4"/><br/>
<label>Prenom</label>
<input type="text" name="prenom" class="span4"/><br/>
<label>Mail</label>
<input type="email" name="email" class="span4"/><br/>
<label>Poste</label>
<input type="text" name="text" class="span4"/><br/>
<label>Ville</label>
<input type="text" name="ville" class="span4"/><br/>
<label>Mot de passe</label>
<input type="password" class="span4"/><br/>
<label>Confirmation mot de passe</label>
<input type="password" name="password" class="span4"/><br/>
</div>
<div class="modal-footer">
<div class="bottom-login">
<button type="submit" class="btn btn-success">S'inscrire</button>
<button type="reset" class="btn">Tout effacer</button>
</div>
</div>
</form>
// LE CODE PHP
<?php
$serveurBD = "localhost";
$nomUtilisateur = "fondaterra";
$motDePasse = "salut";
$baseDeDonnees = "fondaterra";
$idConnexion = mysql_connect($serveurBD,
$nomUtilisateur,
$motDePasse);
if ($idConnexion !== FALSE)
echo "Connexion au serveur reussie";
else
echo "Echec de connexion au serveur";
$connexionBase = mysql_select_db($baseDeDonnees);
if ($connexionBase)
echo "Connexion a la base reussie";
else
echo "Echec de connexion a la base";
if ($idConnexion !== FALSE && $connexionBase && $_POST['nom'])
{
// Cet echo m'affiche bien ce ke je rentre dans mon formulaire a la place de "'.$_POST['nom'].'"
// echo "INSERT INTO administrateurs (id, nom) VALUES (default, "'.$_POST['nom'].'")";
// Cette requete marche puisquelle s'enregistre bien lorsque que je rentre les donnees en dur 'alex'
// $sql = "INSERT INTO administrateurs (id, nom) VALUES (default, 'alex')";
$nom = isset($_POST['nom']) ? $_POST['nom']: "";
$sql = "INSERT INTO administrateurs (id, nom) VALUES (default, $nom)";
$retour = mysql_query($sql);
if ($retour === FALSE)
echo "La requête INSERT a échoué.";
else
echo "Un nouveau nom a été ajouté dans la table exemple1.";
}
// Et pour mettre fin à la connexion
mysql_close();
?>
Cordialement,
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 17:59
par J-oxi
si ce n'est pas le cas, met ton traitement sur la même page que ta form.
verifie ça :
<form name="envoi" method="POST" action="php/register.php">
et tu peux mettre des input a la place des boutons submit et reset.
<input type="submit" name="envoi" value="Envoyer"/>
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 18:08
par alex857
Bonjour,
jutilise le button car jutilise bootstrap pour le css simplement, je mets quoi dans action pour pouvoir mettre le traitement dans mon formulaire ?
Cordialement,
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 18:10
par alex857
Re,
poste ton formulaire ou fait un print_r($_POST); sinon tu as une erreur ?
Le printr maffiche bien kil me stocke les informations Array ( [nom] => alex )
Re: Erreur de declaration de variable $_POST
Posté : 28 mai 2013, 18:17
par J-oxi
ok pour les boutons,
Tu mets la page ou se situe ton formulaire et ton traitement (action ="mapage.php")
tu peux essayer d'adapté ça a tes besoins :
<?php
// Connexion à la base de données
try {
$Engine = 'mysql:host=localhost;dbname=test';$User = 'root';$Pass = '';$Opt = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
$GenCo = new PDO($Engine,$User,$Pass,$Opt);
} catch ( Exception $e ) {
echo "Erreur de connexion mysql.";
die();
}
if(isset($_POST['Envoi'])){
if($idConnexion !== FALSE){
if(isset($_POST['nom'])){
$Nom = $_POST['nom'];
$Insert = $GenCo->prepare("INSERT INTO administrateurs (id, nom) VALUES (:id, :nom)");
$Retour = $Insert->execute(array('id'=>'','nom'=>$Nom));
if($Retour === false){
echo "La requête INSERT a échoué.";
} else {
echo "Un nouveau nom a été ajouté dans la table exemple1.";
}
$Insert->closeCursor();
}// end isset post Nom.
} // end idConnexion !== FALSE
} // end isset post
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<div class="modal-body">
<form name="Envoi" method="post" action="register.php">
<label>Nom</label>
<input type="text" name="nom" class="span4"/><br/>
<label>Prenom</label>
<input type="text" name="prenom" class="span4"/><br/>
<label>Mail</label>
<input type="email" name="email" class="span4"/><br/>
<label>Poste</label>
<input type="text" name="text" class="span4"/><br/>
<label>Ville</label>
<input type="text" name="ville" class="span4"/><br/>
<label>Mot de passe</label>
<input type="password" class="span4"/><br/>
<label>Confirmation mot de passe</label>
<input type="password" name="password" class="span4"/><br/>
</div>
<div class="modal-footer">
<div class="bottom-login">
<button name="Envoi" type="submit" class="btn btn-success">S'inscrire</button>
<button type="reset" class="btn">Tout effacer</button>
</div>
</div>
</form>
</body>
</html>