probléme d'insertion dans une BDD

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 : probléme d'insertion dans une BDD

par Xenon_54 » 27 déc. 2006, 08:00

Je vais alors t'aider un peu pour le debug de ton script.

La majorité des fonctions retourne FALSE en cas d'erreur. Les fonctions MySQL que tu utilises n'y font pas exceptions.

Lorsqu'une erreur survient avec MySQL, tu peux récupérer l'erreur avec mysql_error(). Donc dans ton cas, voici comment vérifier:
<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test ") or die(mysql_error());
Ainsi la fonction mysql_connect() et mysql_select_db() s'exécuteront normalement s'il n'y a pas d'erreur. Mais dans le cas contraire, die(mysql_error()) s'exécutera, affichant l'erreur et arrêtant le script.

Concernant l'utilisation de htmlentities(), je te recommandes mysql_espace_string() en lieu et place de cette fonction. Il est préférable d'enregistrer la chaine sans entitées HTML afin de faciliter la récupération, affichage et édition:
$nom = mysql_espace_string($_POST['nom']);
N'oublie pas d'ajouter ceci lors de l'exécution de la requête:
mysql_query('.....') or die(mysql_error());
On pourra alors voir ce qui cloche dans la requête.

salut

par Invité » 27 déc. 2006, 07:15

Désolé j'étais pas au courant pour les majuscules. Quant à l'effort sachez que je mets toute ma chaire sur le php ce qui veut dire que je ne vais pas seulement demander de l'aide et baisser les bras, je m'y mets aussi.

Re: SALUT

par Ajoloca » 27 déc. 2006, 03:40

HONNETEMENT JE NE VOIS PAS COMPRENDS PAS VOS CONSIGNES. POURRIEZ VOUS M'EXPLIQUER UN PEU PLUS CLAIREMENT PARCE QUE COMME JE DISAIS TOUT A L'HEURE JE UN DEBUTANT EN PHP
Je ne sais pas si tu es au courant mais écrire en majuscules est un signe d'agressivité.

Je doute que suite à cette intervention tu ais de meilleurs réponses que celles que t'a proposé Truc qui sont ta solution.

Être débutant n'empêche pas, au contraire, de faire un minimum d'efforts pour comprendre.

par Xenon_54 » 27 déc. 2006, 02:02

As-tu suivi les conseils de Truc? Ils font partis de la solution.

Si tu veux des programmeurs pas cher pour faire tes projets, je te réfère à ce site: http://www.scriptlance.com/
Ils se feront un plaisir de coder pour toi moyennant un paiement et ce, même si tu connais rien en PHP.

SALUT

par Invité » 27 déc. 2006, 01:53

HONNETEMENT JE NE VOIS PAS COMPRENDS PAS VOS CONSIGNES. POURRIEZ VOUS M'EXPLIQUER UN PEU PLUS CLAIREMENT PARCE QUE COMME JE DISAIS TOUT A L'HEURE JE UN DEBUTANT EN PHP

par Truc » 27 déc. 2006, 00:38

Salut,
Pour voir d'éventuels messages d'erreurs faudrait les afficher avec mysql_error() (par exemple)

Plus d'infos pour débuger.

Regarde aussi la fonction mysql_select_db() tu passes "test" en paramètre avec un espace :-k

probléme d'insertion dans une BDD

par Invité » 27 déc. 2006, 00:32

Salut a tout le monde.
Bon voilà j'ai une BDD que j'ai appellé test et une table liste pour stocker le nombre adhérant d'un petit groupe que je voudrais monter. Le formulaire est composé de 8 champs ( nom, prenom, date et lieu de naissance, profession, email, pays ville). Mais mon probléme c'est quand je remplis le formulaire et que je clik sur envoyer, je ne constate aucune insertion sur la BDD et pourtant je ne reçois auncun message d'erreur. Pourriez vous s'il vous plait jeté un coup d'oeuil sur mon code parce que là je suis vraiment tout éssayé mais rien. Au fait j'ai failli oublier, je fait mes débuts en php. Le voici le code

<?php
	
mysql_connect("localhost", "root", "");
mysql_select_db("test ");
 
// --------------- Etape 1 -----------------
// Si un message est envoyé, ON l'enregistre
// -----------------------------------------
 
if (isset($_POST['nom']) AND isset($_POST['prenom']) AND isset($_POST['date']) AND isset($_POST['lieu']) 
AND isset($_POST['profession']) AND isset($_POST['email']) AND isset($_POST['pays']) AND isset($_POST['ville']))
{
    
    $nom = htmlentities($_POST['nom'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$prenom = htmlentities($_POST['prenom'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$date = htmlentities($_POST['date'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$lieu = htmlentities($_POST['lieu'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$profession = htmlentities($_POST['profession'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$email = htmlentities($_POST['email'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$pays = htmlentities($_POST['pays'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$ville = htmlentities($_POST['ville'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
        
   
    
    // On peut enfin enregistrer :o)
	 mysql_query("INSERT INTO liste VALUES('', '" . $nom . "', '" . $prenom . "', '" . $date . "', '" . $lieu . "',
	'" . $profession . "', '" . $email . "', '" . $pays . "', '" . $ville  . "')");
}
// --------------- Etape 2 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
 
if (isset($_GET['page']))
{
    $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (liste.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
    $page = 1; // On se met sur la page 1 (par défaut)
}
 
// On calcule le numéro du premier message qu'ON prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
 
$reponse = mysql_query('SELECT * FROM bd_adhesion ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
while ($donnees = mysql_fetch_array($reponse))
{
   echo "<b><center>Voici vos données $nom </b> <br> $nom<br>$prenom<br>$date<br>$lieu<br>$profession<br>$email<br>$pays<br>$ville<br>";}
 
mysql_close(); // ON n'oublie pas de fermer la connexion à MySQL ;o)
?>