par
moogli » 10 mai 2013, 20:00
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érisque, ne sont pas obligatoire</span>';
}
?>
@+
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 [b]astérisque[/b] (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 [url=http://php.net/mysqli]mysqli[/url]et 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]<?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érisque, ne sont pas obligatoire</span>';
}
?>
[/php]
@+