Page 1 sur 1

Formulaire inscription problème

Posté : 10 mai 2013, 19:03
par luigi77270
Bonjour à tous et à toute,
Pour mon projet de fin d'année je dois créer un site web avec une base de donnée, du PHP et du HTML, bref un site quoi...
Le problème est qu'il faut faire un formulaire d'inscription et celui que j'ai essayé de faire actuellement à un problème mais je n'arrive pas à voir où.
Je demande donc votre aide pour m'aider à résoudre ce problème très embêtant.
Voici mon code:
<?php

// On commence par récupérer les champs
if(isset($_POST['civilite']))      $nom=$_POST['civilite'];
else      $civilite="";
if(isset($_POST['nom']))      $prenom=$_POST['nom'];
else      $nom="";
if(isset($_POST['prenom']))      $email=$_POST['prenom'];
else      $prenom="";
if(isset($_POST['date_naissance']))      $icq=$_POST['date_naissance'];
else      $date_naissance="";
if(isset($_POST['lieu_naissance']))      $titre=$_POST['lieu_naissance'];
else      $lieu_naissance="";
if(isset($_POST['nationalite']))      $url=$_POST['nationalite'];
else      $nationalite="";
if(isset($_POST['numero_voie']))      $url=$_POST['numero_voie'];
else      $numero_voie="";
if(isset($_POST['voie']))      $url=$_POST['voie'];
else      $voie="";
if(isset($_POST['lieu_dit']))      $url=$_POST['lieu_dit'];
else      $lieu_dit="";
if(isset($_POST['commune']))      $url=$_POST['commune'];
else      $commune="";
if(isset($_POST['profession']))      $url=$_POST['profession'];
else      $profession="";
if(isset($_POST['fixe']))      $url=$_POST['fixe'];
else      $fixe="";
if(isset($_POST['portable']))      $url=$_POST['portable'];
else      $portable="";
if(isset($_POST['courriel']))      $url=$_POST['courriel'];
else      $courriel="";
if(isset($_POST['site']))      $url=$_POST['site'];
else      $site="";
if(isset($_POST['aikido']))      $url=$_POST['aikido'];
else      $aikido="";
if(isset($_POST['ffwush']))      $url=$_POST['ffwush'];
else      $ffwush="";
if(isset($_POST['feqgae']))      $url=$_POST['feqgae'];
else      $feqgae="";
if(isset($_POST['ffst']))      $url=$_POST['ffst'];
else      $ffst="";
if(isset($_POST['afatj']))      $url=$_POST['afatj'];
else      $afatj="";
if(isset($_POST['cotisation']))      $url=$_POST['cotisation'];
else      $cotisation="";
if(isset($_POST['date_certification']))      $url=$_POST['fdate_certification'];
else      $date_certification="";
if(isset($_POST['medecin']))      $url=$_POST['medecin'];
else      $feqgae="";

// On vérifie si les champs sont vides
if (empty($civilite) OR(empty($nom) OR empty($prenom) OR empty($date_naissance) OR empty($lieu_naissance) OR empty($nationalite) OR empty($numero_voie) OR empty($voie) OR empty($commune) OR empty($profession) OR empty($fixe) OR empty($courriel) OR empty($cotisation) OR empty($date_certification) OR empty($medecin))
    {                 <-------------------------LE PROBLEME VIENT DE CETTE LIGNE!
    echo '<font color="red">Attention, seul le champs sans astérix peuvent rester vide !</font>';
    }

// Aucun champ n'est vide, on peut enregistrer dans la table
else     
    {
       // connexion à la base
	   $host = '127.0.0.1' ;   // Ici on déclare nos valeurs
$user = 'root' ;
$bdd = 'adherent' ;
$password  = '' ;
 
// On récupère les valeurs de retours
$link = mysql_connect($host, $user, $password) or die("erreur de connexion au serveur");
mysql_select_db($bdd, $link) or die("erreur de connexion a la base de donnees");
 
    
    // on écrit la requête sql
    $sql = "INSERT INTO adherent(civilite, nom, prenom, date_naissance, lieu_naissance, nationalite, numero_voie, voie, lieu_dit, commune, profession, fixe, portable, courriel, site, aikido, taichichuan, ffwush, feqgae, ffst, afatj, Cotisation, date_certification, medecin) 
			VALUES('$civilite','$nom','$prenom','$date_naissance','$lieu_naissance','$nationalite','$numero_voie','$voie','$lieu_dit','$commune','$profession','$fixe','$portable','$courriel','$site','$aikido','$taichichuan','$ffwush','$feqgae','$ffst','$afatj','$Cotisation','$date_certification','$medecin')";
    
    // on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';

    mysql_close();  // on ferme la connexion
    } 

?>
Le message intervient donc à la ligne 75 soit où j'ai fais la marque, le message dit "Parse error: syntax error, unexpected '{' in F:\EasyPHP-5.3.3\EasyPHP-5.3.3\www\site\SQL\inscription.php on line 75".
Merci d'avance !

Re: Formulaire inscription problème

Posté : 10 mai 2013, 19:15
par ghost5922
Bonjour,

OR(empty($nom) il a pas une erreur ici je suis sur iPhone dur de voir ton code :)

Re: Formulaire inscription problème

Posté : 10 mai 2013, 20:00
par moogli
salut,


vu l'erreur il manque une parenthèse fermante en fin de ligne précédente.

tu en ouvre une après le première or mais ne la referme pas.

quite à être en formation je te suggère d'utiliser du code à jour, donc exit la balise font, utilise un span et une classe css.
tu devrais fait faire l'accord dans la phrase en cas d'erreur s'il n'y qu'un champs sans astérisque (sinon attend toi a voir une gros avec des braie blanche et bleu et un p'tit chien blanc). alors il peux rester vide, sinon seuls les champs ..........

les lignes 4 à 49 sont totalement inutile autant faire un test direct dans le if empty prennant en compte le fait que la variable peux le pas exister (sans erreur).
Du coup tu garde l'utilisation de $_POST, c’est plus long a écrire mais tu ne perd l'origine de la variable et ne risque pas une collision.
ou les truc illogique comme : $email = $_POST['prenom'], $url = $_POST['nationalite'];, $url = $_POST['numero_voie']; etc etc

en même temps utilise l'extension mysqliet non l'extension mysql qui est obsolète.

le "or die ( ....)" est aussi a proscrire il est préférable d'avoir une capture de l'erreur correcte et un affiche en conséquence plutot que de laisser l'internante sur une page blanche ou pire juste une requête SQL qui s'affiche !

J'ai corrigé ton code en y ajoutant un minimum de sécurité sur la requête SQL.
<?php
// On vérifie si les champs sont vides
if (!empty($_POST['civilite']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['date_naissance']) &&
    !empty($_POST['lieu_naissance']) && !empty($_POST['nationalite']) && !empty($_POST['numero_voie']) &&
    !empty($_POST['voie']) && !empty($_POST['commune']) && !empty($_POST['profession']) && !empty($_POST['fixe'])
    && !empty($_POST['courriel']) && !empty($_POST['site']) && !empty($_POST['cotisation'])
    && !empty($_POST['date_certification']) && !empty($_POST['medecin'])
) {

    // connexion à la base
    $host = '127.0.0.1'; // Ici on déclare nos valeurs
    $user = 'root';
    $bdd = 'adherent';
    $password = '';
    $link = mysqli_connect($host, $user, $password, $bdd);

    // on écrit la requête sql
    $sql = 'INSERT INTO adherent(civilite, nom, prenom, date_naissance, lieu_naissance, nationalite, numero_voie, voie,
             lieu_dit, commune, profession, fixe, portable, courriel, site, aikido, taichichuan, ffwush, feqgae, ffst, afatj,
             Cotisation, date_certification, medecin)
             VALUES(\'' . mysqli_real_escape_string($link, $_POST['civilite']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['civilite']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['prenom']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['date_naissance']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['lieu_naissance']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['nationalite']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['numero_voie']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['voie']) . '\',
             \'' . (isset($_POST['lieu_dit']) ? mysqli_real_escape_string($link, $_POST['lieu_dit']) : '') . '\',
             \'' . mysqli_real_escape_string($link, $commune) . '\',
             \'' . mysqli_real_escape_string($link, $profession) . '\',
             \'' . mysqli_real_escape_string($link, $fixe) . '\',
             \'' . (isset($_POST['portable']) ? mysqli_real_escape_string($link, $_POST['portable']) : '') . '\',
             \'' . mysqli_real_escape_string($link, $courriel) . '\',
             \'' . (isset($_POST['site']) ? mysqli_real_escape_string($link, $_POST['site']) : '') . '\',
             \'' . (isset($_POST['aikido']) ? mysqli_real_escape_string($link, $_POST['aikido']) : '') . '\',
             \'' . (isset($_POST['taichichuan']) ? mysqli_real_escape_string($link, $_POST['taichichuan']) : '') . '\',
             \'' . (isset($_POST['ffwush']) ? mysqli_real_escape_string($link, $_POST['ffwush']) : '') . '\',
             \'' . (isset($_POST['feqgae']) ? mysqli_real_escape_string($link, $_POST['feqgae']) : '') . '\',
             \'' . (isset($_POST['ffst']) ? mysqli_real_escape_string($link, $_POST['ffst']) : '') . '\',
             \'' . (isset($_POST['afatj']) ? mysqli_real_escape_string($link, $_POST['afatj']) : '') . '\',
             \'' . mysqli_real_escape_string($link, $_POST['cotisation']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['fdate_certification']) . '\',
             \'' . mysqli_real_escape_string($link, $_POST['medecin']) . '\')';

    // on insère les informations du formulaire dans la table
    $ret = mysqli_query($link, $sql);
    if ($ret === false) {
        echo '<p class="erreur">Erreur SQL !<br />' . $sql . '<br/>' . mysqli_error($link);
    } else {
        // on affiche le résultat pour le visiteur
        echo 'Vos infos on été ajoutées.';
    }
    mysqli_close($link); // on ferme la connexion
} else {
    echo '<span class="erreur">Seul les champs qui ne pas marqué d\'un ast&eacute;risque, ne sont pas obligatoire</span>';
}

?>
 
@+

Re: Formulaire inscription problème

Posté : 10 mai 2013, 20:37
par luigi77270
Merci de vos réponses !Il y à un soucis dans le code que tu ma corriger, en effet, tous les champs n'étais pas obligatoires, et donc maintenant on est obliger de remplir tous les champs :s

Rectification: Excuse moi j'avais mal compris le code, mais dés que je ne remplis pas un champs, sa me dit quand même que des champs sont vide

Re: Formulaire inscription problème

Posté : 10 mai 2013, 20:50
par moogli
tant que c'est un des champs du if oui !

Re: Formulaire inscription problème

Posté : 10 mai 2013, 21:04
par luigi77270
Les champs inscrit dans le IF sont rempli dans le formulaire mais il y a toujours un problème on dirait :s

Re: Formulaire inscription problème

Posté : 10 mai 2013, 21:07
par luigi77270
Bon bah finalement tout remarche, je ne sais pas comment mais merci mille fois :D