Problème php : impossible d'ajouter des données dans une table

Invité n'ayant pas de compte PHPfrance

14 janv. 2008, 00:00

Bonsoir à tous,

Voila j'ai créer une page html constitué d'un formulaire à remplir pour un site!
Je suis censé depuis là pouvoir écrire dans ma table les informations saisies.

Cependant lors de test, vérifications il persiste une erreur qui est assez agaçante!

A chaque validation du formulaire, il m'est impossible d'ajouter des données dans une table!
Le navigateur affiche une page blanche et c'est tout! J'utilises easy php et notepad++ pour informations!
Quelqu'un aurait une idéé s'il vous plait!

Voici quelques lignes extraites du code des différentes pages :


-> pour le formulaire à remplir Racine\formulaire.php

Code : Tout sélectionner

<form action="admin/addFORMULAIRE.php" method="post"> ... Nom : <INPUT type="text" name="Nom" size="30"><br/><br/> Prénom : <INPUT type="text" name="prenom" size="25"><br/><br/> ... </form>
-> Ecrire dans la base de données Racine\admin\addFORMULAIRE.php
<?php
...
	$Nom= $_POST['Nom'];
	$Prenom = $_POST['prenom'];
...
	include '../func.connexion.php';
	
	$requete = mysql_query("insert into population(Civilite, Nom, Prenom, Adresse, Code
			Postal, Ville, Email, TelephoneDomicile, TelephonePortable) values('$Choix','$Nom','$Prenom','$Adresse','$Cp','$Ville','$Email', '$TelephoneDomicile', '$TelephonePortable', '$ChoixMode')" or die("Erreur dans l'ajout");
	deconnect();
-> function de connection à la base de données Racine\func.connection.php
<?php
  /// connexion ///
  function connect(){
    // paramètres
    $hostDB = '****'; 
    $loginDB = '****';  
    $passwordDB = '****'; 
    $baseDB = 'panel aire urbaine'; 
    $cnx_host = mysql_connect($hostDB, $loginDB, $passwordDB) or die('La connexion au serveur de bases de donnée à échouée !');
    $cnx_base = mysql_select_db($baseDB);
  }
  
  function deconnect(){
    mysql_close();
  }
?>
...

Merci pour toutes vos réponses!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 janv. 2008, 00:28

As-tu un message d'erreur ? c'est généralement bourré d'information sur ce qui cloche :)

Déjà à première vue, tu as un espace ou un retour à la ligne dans la liste des champs de l'insert, au niveau de "Code Postal" ... c'est pas normal.

Par ailleurs, j'éviterais les espaces (ou autre caractères spéciaux dans le nom de la base... je te recommande aussi de sortir les variables de tes chaines pour une meilleure lisibilité, et de les protéger à coup de mysql_real_escape_string() pour éviter les injections et autre :)

Enfin, pense à utiliser les balises [ php ] quand tu postes du code, ca le met en forme, en couleur et c'est plus agréable pour nous ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité n'ayant pas de compte PHPfrance

14 janv. 2008, 00:38

Désolé pour l'affichage!

En fait je viens juste de corriger pour le code postal...
Et aussi pour le nom de la table.

Il n'y a pas de message d'erreur, une fois le bouton envoyer cliquer après saisie des informations, le navigateur se place sur \admin\addFORMULAIRE.php et il m'affiche une page blanche! Tout comme le html quand tu ne fermes pas une balise, sauf que mes balises sont correctes, enfin il me semble...

ViPHP
ViPHP | 2144 Messages

14 janv. 2008, 01:14

Tu includes bien le fichier contenant la fonction de connexion, mais tu n'appelles jamais cette fonction.

spartaxhit
Invité n'ayant pas de compte PHPfrance

14 janv. 2008, 03:09

Comment fais tu pour appeler ta fonction alors?

ViPHP
ViPHP | 4039 Messages

14 janv. 2008, 10:42

Avec "include", tu ne fais "qu'ajouter" le script qu'il contient à ton script.

Et comme ce n'est pas en créant une fonction que tu l'exécutes, tu devrais ajouter "connect();" avant de vouloir envoyer des requêtes. D'ailleurs, tu utilises très bien "deconnect();".
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 janv. 2008, 11:51

Hum... effectivement, sans appel à la fonction, ça va marcher beaucoup moins bien :) Mais je me demandais pourquoi le die n'avait pas renvoyé d'erreur "Erreur dans l'ajout" voire "impossible de se connecter" et en fait c'est parce qu'il manque une parenthèse : il devrait être en dehors du mysql_query().

Ton script renvoi donc en plus une parse error... et si tu obtiens une page blanche, c'est sans doute que les messages d'erreurs sont désactivés...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...