Chargement des données dans une bd mysql a partir d'un formulaire

cs_omgba Messages postés 4 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 14 mai 2009 - 14 févr. 2009 à 19:07
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 18 févr. 2009 à 17:28
    salut je suis sur un projet php3. j'aimerais charger les données dans une BD mysql a partir d'un formulaire mais je n'arrive pas.
     voilà mon script:

.......fichier  charge1.php3
<? php
// variables de connexion
$host = "localhost";
$user = "bidule";
$passwd = "papa";
$bdd = "bidule";
//connexion au serveur et la BD
Mysql_connect($host, $user, $passwd) or die ("erreur de connexion au serveur");
Mysql_select_db($bdd) or die ("erreur de connexion a la bd");
//je récupère mes valeurs
$matricule =$_POST['matricule'];
$login =$_POST['login'];
$passwd =$_POST['passwd'];

// je crée la requete
$strSQL = "INSERT INTO 'etudiant'('matricule','login','passwd') VALUES ('$matricule','$login',$passwd')";
// execution de la requete
Mysql_query($strSQL)or die ("erreur d'insertion");
echo("chargement réussi!!");
Mysql_close();
?>
.... Quand je l'exécute, je rcoit ce message......
-Undefined index : matricule in D:\program files\Easy PHP3.0\www\charge1. one line 11
-Undefined index : login in D:\program files\Easy PHP3.0\www\charge1. one line 12
 -Undefined index : passwd in D:\program files\Easy PHP3.0\www\charge1. one line 13
 erreur d'insertion dans la BD
              .......fichier  formulaire.php3....
<html>

<form methode ="POST" action = "charge1.php3" name ="monform">
matricule:
login:
passwd:
</form>

</html>
.... lui quand je l'exécute..... je recoit
erreur d'insertion dans la BD
SVP j'ai déjà tout fait mais rien  merci de m'aider!!!!!

5 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 févr. 2009 à 10:10
Salut,

Si c'est du PHP, il faut poster sur phpcs.

Les trois lignes qui te posent problème sont les suivantes :
$matricule =$_POST['matricule'];
$login =$_POST['login'];
$passwd =$_POST['passwd'];

L'erreur est en fait que $_POST['matricule'], $_POST['login'] et $_POST['passwd'] sont indéfinis. Il n'y a donc pas de paires clé valeurs ayant pour clé matricule, login ou passwd dans les données postées. Il faut donc voir du côté du formulaire.

Essaie d'utiliser plutôt un attribut id pour tes inputs. L'attribut name est deprecated (Quoiqu'il soit encore a utiliser dans certains cas). On utilise parfois les deux avec la même valeur pour plus de compatibilité, mais je ne sais pas si c'est encore nécessaire de nos jours.

matricule:
login:
passwd:

Concernant la détection des erreurs dans le HTML, la validation via les validateurs du W3C peuvent pas mal aider.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 févr. 2009 à 10:11
[Déplacé sur phpcs]
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
15 févr. 2009 à 13:29
Salut,

$_POST a été implémenté en PHP 4.1.0 (idem pour $_GET). Vu que tu utilise cette antiquité de PHP 3 c'est normal que ça n'existe pas et que tu obtienne donc une erreur.

Juste a titre indicatif, ça fait des annés que PHP 5 est sortit, PHP 4 n'est plus supporté depuis fin 2007 et PHP 6 est disponible (en version instable). Alors utiliser PHP 3 de nos jours ... il faut vraiment ne rien avoir d'autre a faire <_< Plutot que d'aller utiliser des éléments que tu sera le dernier homme préhistorique a utilise essaye de faire évoluer ta version de PHP, ça ne peux que t'être bénéfique.
0
cs_omgba Messages postés 4 Date d'inscription samedi 29 décembre 2007 Statut Membre Dernière intervention 14 mai 2009
16 févr. 2009 à 12:31
    salut rt15 je vais de ce pas tester ton code mais dis moi je ne comprend pas quand tu parle de poster sur PHPCS ? stp sois un peu plus claire car je m'y connais très peu.
    merci  d'avance!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 févr. 2009 à 17:28
Ne néglige pas la réponse de TychoBrahe. Si $_POST et $_GET sont bien inexistant en PHP 3 et que tu souhaites continuer en PHP 3, tu dois utiliser ce qui était utilisé en PHP 3. A savoir $HTTP_POST_VARS et $HTTP_GET_VARS.Sachant que tu risques de devoir mettre :
global $HTTP_POST_VARS;
Pour pouvoir t'en servir.

Ce site (www.phpcs.com) fait parti des sites CodeS-SourceS, qui regroupe tout un tas de sites au même design, dédiés à divers langages (vbfrance pour le vb, cppfrance pour le c et le cpp...)

Quand tu poses une question, on te demande de sélectionner un thème. Quand tu postes sur phpcs, il y a deux catégories de thèmes, les thèmes PHP / ... et les thèmes CodeS-SrouceS / .... Si tu postes dans un thème PHP, ton poste n'est visible que depuis phpcs : les développeurs PHP et uniquement eux peuvent voir ta question. Si tu postes dans un thème CodeS-SourceS, tu postes dans le bar. Le bar est visible depuis tous les sites à tous les développeurs. Mais un développeur C ou Java n'a que faire de ta question sur le PHP... Donc il faut que tu postes en sélectionnant un thème en rapport avec le PHP, et parmis ceux-ci, celui qui est le plus en rapport avec ta qestion. C'est important car il y a pas mal de pollution en ce moment. Ceux qui répondent aux questions perdent du temps à lire des questions qui n'ont rien à voir avec ce qui les intéressent.

J'ai donc déplacé ton poste... Mais fais attention pour ta prochaine question !
0