Base de données

manon -  
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai crée une base de données sur ovh et une table "questionnaire" sur phpadmin, le résultat sur la page web est bien sauf que quand je remplis le questionnaire sur la page, les infos ne sont pas envoyées dans la base de données...ça ne fonctionne pas et je ne sais pas pourquoi...
Voici ma page web:
<?php
include("questionnaire.php");
?>

<?php
?>

<!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=iso-8859-1" />
<title>Avis</title>
 
<meta name="author" content="Cupcakes-Delice">
<meta name="description" content="Ensemble de recette cupcakes, différentes sortes de cupcakes, génoise des cupcakes, glaçage des cupcakes et des conseils pour réaliser de délicieux cupcakes">
<meta property="og:description" content="Tous sur les cupcakes, toutes les recettes cupcakes et comment bien réussir ses cupcakes">
<meta http-equiv="revisit-after" name="Revisit-after" content="2 days" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />

<meta name="robots" content="index, follow, all">
<meta name="robots" content="INDEX|FOLLOW" />
<meta http-equiv="robots" name="Robots" content="all" />


<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>

<?php
include("a-header.php"); // on appelle le fichier
include("a-bandeausousheader.php"); // on appelle le fichier
include("a-menugauche.php"); // on appelle le fichier
?>

   
   
<td width="802" align="left" valign="top" bgcolor="#730800">  <!--pavé centrale pas touche//-->



<table width="100%" border="0" cellpadding="10" cellspacing="10"> 
<BR>
<CENTER><I><FONT COLOR="white" class="Titre"><u>Votre avis nous interesse...</I></u></center>



</table>

<BR>
<BR>



<?php
include("a-colonnedroite.php"); // on appelle le fichier
include("a-footer.php"); // on appelle le fichier
?>



<!--google analytics//-->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src=´" + gaJsHost + "google-analytics.com/ga.js´ type=´text/javascript´%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-12743083-4");
pageTracker._trackPageview();
} catch(err) {}</script>
<!--end of google analytics//-->

<?php if($error) { ?>Les champs portant une étoile sont obligatoire.
<?php } ?>
<center><forme method="post" action="questionnaire.php" class="Corps">
<label>Nom:</label>
<input type="text" name="Nom"> 
<BR>
<BR>
<label>Prénom:</label>
<input type="text" name="Prénom"> 
<BR>
<BR>
<label>Age:</label>
<input type="number" name="Age"> 
<BR>
<BR>
<label>Ville*:</label>
<input type="text" name="Ville"> 
<BR>
<BR>
<label>Votre recette favorite*:</label>
<input type="text" name="Recette"> 
<BR>
<BR>
<label>Qu'avez-vous pensé de notre site?:</label>
<textarea name="Avis"></textarea>
<BR>
<BR>
<BR><button type="submit">Valider</button></center>

</body>


Et voici ma page php pour le questionnaire:
<?php
 $error = false;

 if(!empty($_POST)){
  if(!defined('DB_HOST')){
   define ('DB_HOST', 'mysql55-32.perso');
   define ('DB_PORT', '5532');
   define ('DB_DATABASE', 'cupcakesafavis');
   define ('DB_USERNAME', 'cupcakesafavis');
   define ('DB_PASSWORD', 'Souris0412');
  }

  try {
   $BDD = new PDO('mysql:host='.DB_HOST.';port='.DB_PORT.';dbname='.DB_DATABASE, DB_USERNAME, DB_PASSWORD);
   $BDD->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
   $BDD->exec("SET NAMES 'utf8'");
  } catch(Exception $e) {
   echo 'Erreur : '.$e->getMessage().'<br/>';
   echo 'N° : '.$e->getCode();
   exit();
  }

  $Nom = $_POST['Nom'];
  $Prénom = $_POST['Prénom'];
  $Age = $_POST['Age'];
  $Ville = $_POST['Ville'];
  $Recette = $_POST['Recette'];
  $Avis = $_POST['Avis'];

  if($Ville != "" && $Recette != ""){
   $req = "INSERT INTO `questionnaire`(`Nom`, `Prénom`, `Age`, `Ville`, `Recette`, `Avis`) VALUES ('$Nom', '$Prénom', $Age, '$Ville', '$Recette', '$Avis')";
   $resp = $BDD->exec($req);
  } else {
   $error = true;
  }
 }


Une amie a fait exactement la même chose et ça fonctionne, moi impossible d'envoyer les réponses dans ma base données, ya rien qui se passe... HELP!!!!!!

EDIT : Ajout des balises de code.
Merci d'y penser la prochaine fois;


Merci pour votre aide...
A voir également:

2 réponses

jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759
 
Bonjour,

1 - Evites de mettres des caractères accentués pour les noms de variables....
Prénom est à écrire Prenom !

NB: Les accents sont à éviter également dans le nom des champs d'une table de base de données ainsi que dans les attributs NAME ou ID des éléments HTML.

2 - Récupère proprement tes variables (via un ISSET par exemple)
Comme ceci :
// Récupération "propre" des variables
  $Nom = isset($_POST['Nom']) ? $_POST['Nom'] : '';
  $Prenom = isset($_POST['Prenom']) ? $_POST['Prenom'] : '';
  $Age = isset($_POST['Age']) ? $_POST['Age'] : '';
  $Recette = isset($_POST['Recette']) ? $_POST['Recette'] : '';
  $Ville = isset($_POST['Ville']) ? $_POST['Ville'] : '';
  $Avis = isset($_POST['Avis']) ? $_POST['Avis'] : '';


3 - Ajoute du débogage lors de l'éxécution de la requête pour voir si tout se passe correctement (via un bloc Try/catch)

if( !empty($Ville) && !empty($Recette) ){
  try{
    $req = "INSERT INTO `questionnaire`(`Nom`, `Prenom`, `Age`, `Ville`, `Recette`, `Avis`) VALUES ('$Nom', '$Prenom', $Age, '$Ville', '$Recette', '$Avis')";
    $resp = $BDD->exec($req);
  }catch(Exception $e){
   // en cas d'erreur dans la requête
    echo "Error ! ". $e->getMessage() ."<br>";
    echo "Erreur dans la requête <br> $req  !";
	$error = true;
   }
} else {
  $error = true;
}




NB: Le temps du développement, ajoute également l'instruction suivante AU DEBUT de tes pages PHP. (juste après ton premier :
<?php
)
//Affiche les erreurs PHP
error_reporting(E_ALL);


0
manon
 
Jordan j'ai fait ce que tu m'as dit ca ne fonctionne pas...j'ai rajouté ou modifier les élements que tu m'as dit et ca me fait plenter ma page web "page error)... Je ne sais plus quoi faire pour que ca fonctionne...Le truc c'est que sur PHP admin je ne sais même pas ce que je devrais voir quand je "valide" mon questionnaire sur la page web...
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759 > manon
 

et ca me fait plenter ma page web "page error)

Comment veux tu .... sans avoir le message d'erreur COMPLET et EXACTE ... que je puisse t'aider ????
Ni sans savoir EXACTEMENT ce que tu as écrit comme code ?????
0
manon
 
Bonjour,
Voilà ma page web "avis.php":

<?php
?>


<!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=iso-8859-1" />
<title>Avis</title>
 
<meta name="author" content="cupcakes-Delice">
<meta name="description" content="Ensemble de recette cupcakes, différentes sortes de cupcakes, génoise des cupcakes, glaçage des cupcakes et des conseils pour réaliser de délicieux cupcakes">
<meta property="og:description" content="Tous sur les cupcakes, toutes les recettes cupcakes et comment bien réussir ses cupcakes">
<meta http-equiv="revisit-after" name="Revisit-after" content="2 days" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />

<meta name="robots" content="index, follow, all">
<meta name="robots" content="INDEX|FOLLOW" />
<meta http-equiv="robots" name="Robots" content="all" />


<script src="Scripts/Ac_RunActivecontent.js" type="text/javascript"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head> 

<body>

<?php
include("a-header.php"); // on appelle le fichier
include("a-bandeausousheader.php"); // on appelle le fichier
include("a-menugauche.php"); // on appelle le fichier
?>

   
   
<td width="802" align="left" valign="top" bgcolor="#730800">  <!--pavé centrale pas touche//-->



<table width="100%" border="0" cellpadding="10" cellspacing="10"> 
<BR>
<cENTER><I><FONT cOLOR="white" class="Titre"><u>Votre avis nous interesse...</I></u></center>



</table>

<BR>
<BR>


<?php
include("a-colonnedroite.php"); // on appelle le fichier
include("a-footer.php"); // on appelle le fichier
?>



<!--google analytics//-->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3cscript src=´" + gaJsHost + "google-analytics.com/ga.js´ type=´text/javascript´%3E%3c/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-12743083-4");
pageTracker._trackPageview();
} catch(err) {}</script>
<!--end of google analytics//-->



<?php if($error) { ?>Les champs portant une étoile sont obligatoire.
<?php } ?>
<center><form method="post" action="questionnaire1.php" class="Corps">
<label>Nom:</label>
<input type="text" name="nom"> 
<BR>
<BR>
<label>Prénom:</label>
<input type="text" name="prenom"> 
<BR>
<BR>
<label>Age:</label>
<input type="number" name="age"> 
<BR>
<BR>
<label>Ville*:</label>
<input type="text" name="ville"> 
<BR>
<BR>
<label>Votre recette favorite*:</label>
<select name="recette"> 
<option selected>Cupcakes Natures
 <option>Cupcakes Vanille
 <option>Cupcakes Chocolat
 <option>Cupcakes Oréos
 <option>Cupcakes Nutella
 <option>Cupcakes Choco-coco
 <option>Cupcakes Fraise
 <option>Cupcakes Chocolat-caramel
 <option>Cupcakes Citron
 <option>Cupcakes Citron-mûre
 <option>Cupcakes Kinder
 <option>Cupcakes Rainbow
  <option>Cupcakes Poulet
 <option>Cupcakes Mojito
 <option>Cupcakes Lardons
 <option>Cupcakes Les Minions
 <option>Cupcakes Araignées
 <option>Cupcakes courgette
 <option>Cupcakes Burger
 <option>Cupcakes Saumon
 </select>
<BR>
<BR>
<label>Qu'avez-vous pensé de notre site?:</label>
<textarea name="avis"></textarea>
<BR>
<BR>
<BR><button type="submit">Valider</button></center>

</body>


Voilà ma page "questionnaire1.php" pour appeler la base de données:
<?php
$serveur     = "LESEFVEUR";
$utilisateur = "LEUSER";
$motDePasse  = "LEPASSWORD";
$base        = "cupcakesafavis";


mysql_pconnect($serveur, $utilisateur , $motDePasse) 
    or die("Impossible de se connecter au serveur de bases de données.");
mysql_select_db($base) 
    or die("Base de données non trouvée.");


$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$age = $_POST["age"];
$ville  = $_POST["ville"];
$recette = $_POST["recette"];
$avis = $_POST["avis"];

mysql_query("INSERT INTO 'questionnaire' (nom, prenom, age, ville, recette, avis)".
                    " VALUES ('$nom', '$prenom', '$age', '$ville', '$recette', '$avis' )"
    or die("Impossible d'insérer le résultat du sondage");
echo "Merci";
?>

Et voilà mon site si tu veux aller voir le résultat: www.cupcakes-delice.ovh dans "Votre avis"....

Je pense que c'est dans la page "avis" qu'il y a un soucis, le lien ne se fait pas avec la base de données puisque dans cette page "avis", quand j'appelle "questionnaire1.php", même si j'appelle une autre page, il y a marqué "erreur du serveur" quand je valide le formulaire...

Merci :)
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759 > manon
 
J'ai édité ton message pour y mettre les BALISES DE CODE ( la coloration syntaxique).
Merci d'y penser la prochaine fois !

J'ai également supprimé les informations de connexion à ta BDD .....
On ne poste jamais ces infos sur un forum ...... !!!
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759 > jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention  
 
Je suis allé voir ton site ....
Je n'ai eu aucune erreur.
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759
 

bon jsais plus quoi faire tanpis


Commence par Corriger ton code en tenant compte de mes précédentes remarques
PUIS postes nous le code modifié que l'on regarde si tu l'as bien fait.
C'est à cette seule condition que je pourrais t'aider.
0
manon
 
Voilà la page "questionnaire.php" modifiée...

<?php
 // INFORMATIONS DE CONNEXION A LA BDD
//  SUPPRIMEES PAR LA MODERATION !


mysql_pconnect($serveur, $utilisateur , $motDePasse) 
    or die("Impossible de se connecter au serveur de bases de données.");
mysql_select_db($base) 
    or die("Base de données non trouvée.");


$nom = isset ($_POST["nom"]) ? $_POST["nom"] : '';
$prenom = isset ($_POST["prenom"]) ? $_POST["prenom"] :'';
$age = isset ($_POST["age"]) ? $_POST["âge"] : '';
$ville  = isset ($_POST["ville"]) ? $_POST["ville"] : '';
$recette = isset ($_POST["recette"]) ? $_POST["recette"] : '' ;
$avis = isset ($_POST["avis"]) ? $_POST["prenom"] : '';

if( !empty ($ville) && !empty ($recette) ) {
 try{$req= "INSERT INTO 'questionnaire'('nom', 'prenom', 'age', 'ville', 'recette', 'avis') VALUES ('$nom', '$prenom', '$age', '$ville', '$recette', '$avis' )
  $resp= $BDD->exec($req);
 }catch (Exception $e) {
  // en cas d'erreur de la requête
  echo "Error !". $e->getMessage() ."<br>;
  echo"Erreur dans la requête <br> $req !";
   $error = true;
 }
}else {
$error = true;
}


?>

Il doit y avoir des erreurs car je ne comprend pas tout...Mais honnêtement je ne pense pas que le problème vienne de là puisque le lien entre la page web et la base de donnée ne se fait pas...donc selon moi c'est la page "avis.php" lorsqu'on appelle la page qu'il doit y avoir une erreur..Et le modèle de la page "questionnaire.php" nous a été donné par le prof donc il n'y a normalement pas de soucis avec cette page...
Merci.


EDIT : AJOUT DES BALISES DE CODE ....... ( ENCORE !!!!!!!!!!! )
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759 > manon
 
1 - tu dois utiliser LES BALISES DE CODE lorsque tu postes du code sur le forum
(dernier rappel !!!!!! )

2 - Ne penses tu pas qu'il manque une quote dans ta requête ? (des guillemets )

3 - Je ne vois pas la ligne
 error_reporting(E_ALL); 


4 - NE POSTES PAS TES IDENTIFIANTS de connexion à ta BDD SUR LE FORUM
0
jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention   4 759 > jordane45 Messages postés 40050 Date d'inscription   Statut Modérateur Dernière intervention  
 
Et pourquoi es tu repassé en mysql alors que dans ton premier code tu étais en PDO ???????
0