[Problème] Requête insert into [Résolu]

Healiste 11 Messages postés jeudi 31 mars 2011Date d'inscription 9 mai 2013 Dernière intervention - 29 mai 2012 à 15:50 - Dernière réponse : Healiste 11 Messages postés jeudi 31 mars 2011Date d'inscription 9 mai 2013 Dernière intervention
- 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.
Afficher la suite 

5 réponses

Répondre au sujet
NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention - 29 mai 2012 à 18:53
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
Healiste 11 Messages postés jeudi 31 mars 2011Date d'inscription 9 mai 2013 Dernière intervention - 30 mai 2012 à 09:08
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Healiste
abdoulax 875 Messages postés samedi 17 mai 2003Date d'inscription 22 juin 2012 Dernière intervention - 29 mai 2012 à 20:15
0
Utile
La Gacilly c'est perdu en Bretagne, à coté de Redon?
Commenter la réponse de abdoulax
Healiste 11 Messages postés jeudi 31 mars 2011Date d'inscription 9 mai 2013 Dernière intervention - 30 mai 2012 à 08:12
0
Utile
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.
Commenter la réponse de Healiste
abdoulax 875 Messages postés samedi 17 mai 2003Date d'inscription 22 juin 2012 Dernière intervention - 30 mai 2012 à 09:01
0
Utile
Je suis originère de La Gacilly :p
Commenter la réponse de abdoulax

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.