[Problème] Requête insert into

Résolu
Healiste Messages postés 11 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 9 mai 2013 - 29 mai 2012 à 15:50
Healiste Messages postés 11 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 9 mai 2013 - 30 mai 2012 à 09:08
Bonjour, voilà, j'ai un problème sur un projet en cours. Je dois créer une newsletter pour ma mairie. J'ai donc fait une page html avec formulaire simple pour le moment.



Et voici le code de la page "inscription.php"

<?php
/* Etablissement d'une connexion à la base de donnée */

$cnx = odbc_connect("basededonnee", "", ""); /* Connexion à la base de donnée */
$requete = "select * from adherent";
$jeu = odbc_do($cnx, $requete);

if($cnx) echo 'ok
'; //Si connexion, il y a !

/* Initialisation des variables à false */
$bool=false; /* Validation de l'e-mail Bouton à cocher dans le formulaire */

// On rend inoffensives les balises HTML que le visiteur a pu rentrer
$nom=htmlspecialchars($_POST['nom']);
$prenom=htmlspecialchars($_POST['prenom']);
$mail=htmlspecialchars($_POST['mail']);

/* On vérifie si le mail n'existe pas déjà dans la BD */
while(odbc_fetch_into($jeu,$champ))
{
if($mail == $champ[2])
$bool=true; /* Le booléen devient vrai lorsque la condition est vérifiée */
}


/* Si le mail n'existe pas, on poursuit la création du compte */
if(!$bool) {

if (isset($_POST["mail"])) {
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $mail))
echo 'L\'adresse '.$mail.' n\'est pas valide, recommencez !';
}

/* Si on a connaissance du prénom et du nom, soit, champ non vide */
if ((isset($prenom)) && (isset($nom))) {
/* REMARQUE: Le mail a obligatoirement été entré, d'où le REQUIRED dans le code HTML */
/* On crée un compte avec tous les champs remplis */
$requete="insert into adherent (prenom, nom, mail, newsletter) values ('".$prenom."','".$nom."','".$mail."',"$_POST["newsletter"].");";

/* Si on a connaissance du prénom mais pas du nom */
} elseif ((isset($prenom)) && (!isset($nom)))

$requete="insert into adherent (prenom, mail, newsletter) values ('".$prenom."','".$mail."',".$_POST["newsletter"].");";

/* Si on a connaissance du nom mais pas du prénom */
elseif ((!isset($prenom)) && (isset($prenom)))

$requete="insert into adherent (nom, mail, newsletter) values ('".$nom."','".$mail."',".$_POST["newsletter"].");";

/* Si on a connaissance ni du prénom, ni du nom */
else
$requete="insert into adherent (mail, newsletter) values ('".$mail."',".$_POST["newsletter"].");";

} else

echo 'Compte déjà existant !';

odbc_close($cnx); // ferme la connexion

?>



Mon problème est que lorsque je clique sur continuer, il me met un message d'erreur pour la ligne:

$requete="insert into adherent (prenom, nom, mail, newsletter) values ('".$prenom."','".$nom."','".$mail."',"$_POST["newsletter"].");";

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\site internet\inscription.php on line 48

Je suis peut-être idiot mais je ne vois pas où est mon erreur.

Pourtant, la connexion est bonne, la requete d'ajout aussi, juste le bouton décocher qui me fait des siennes quand j'essaye de faire un

$accepter=false
if($_POST["newsletter"])
$accepter=true;


Et remplacer dans les requêtes "$_POST["newsletter"]" par "$accepter" mais je trouve tout de même une erreur.

Merci pour les futurs réponses, je suis à l'écoute si y a des problèmes dans mon code !

Bonne journée à tous, Florent C.

5 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
29 mai 2012 à 18:53
Bonjour,

$requete="insert into adherent (prenom, nom, mail, newsletter) values ('".$prenom."','".$nom."','".$mail."',"$_POST["newsletter"].");";

Tu as oublié un . devant ton $_POST.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
Healiste Messages postés 11 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 9 mai 2013
30 mai 2012 à 09:08
Ah :) C'est sympa à visiter mais on en fait vite le tour ^^' Moi, je suis au lycée (BTS informatique) de Redon d'ailleurs.

Aussi, j'ai trouvé où était mon erreur. Attention les yeux:

  $requete = odbc_do($cnx, $sql) or die( odbc_error() ) ;


Tadaaaaaam !!

Je clos le sujet pour éviter l'encombrement du forum ^^'

A une prochaine tout le monde, bonne journée (en ce temps ensoleillé *-*)

Florent C.
3
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
29 mai 2012 à 20:15
La Gacilly c'est perdu en Bretagne, à coté de Redon?
0
Healiste Messages postés 11 Date d'inscription jeudi 31 mars 2011 Statut Membre Dernière intervention 9 mai 2013
30 mai 2012 à 08:12
Merci NHenry, j'ai rectifié ça mais le problème persiste toujours. L'ajout dans la base de donnée ne veut pas se faire. Pourtant, les variables ont l'air correcte et en plus, même les echo que j'insère dans le if (nom [...] prenom) apparaissent donc le problème ne peut venir que de la requête.

De plus, j'ai tenté de créer un "compte" avec un mail déjà existant dans la base, ajouté par mes mains directement et il le détecte bien et affiche 'Mail déjà existant !'.

Pour répondre à abdoulax, oui lol Mais on vit avec... Surtout quand on vit dans un endroit encore plus paumé que La Gacilly.

Florent C.
0

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

Posez votre question
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
30 mai 2012 à 09:01
Je suis originère de La Gacilly :p
0
Rejoignez-nous