IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème de syntaxe dans un formulaire php-mysql


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème de syntaxe dans un formulaire php-mysql
    Bonjour,

    Je suis tout nouveau, je vais donc me présenter avant tout.

    Je me prénome Alexandre, j'ai 25 ans et je suis originaire d'une petite ville qui s'appelle Gien située dans le Loiret.

    Je suis débutant dans le PHP et MYSQL, je risque donc de poser des questions bêtes, et par avance je m'en excuse.

    ________________________________________________________

    J'ai essayé de faire un formulaire php avec base sql, j'ai fusioné deux scripts, le codage me paraît OK mais pourtant sous easy php voici ce qu'il m'est sorti :

    Parse error: syntax error, unexpected ')' in C:\Program Files\EasyPHP-5.4alpha3\www\formulaire.php on line 24
    Voici le fichier en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php
    if (isset($_POST['B1']))
    {
     // teste les valeurs. $nom=trim(addslashes($_POST['nom']));
    $civilite = htmlentities($_POST['civilite']);
    $prenom = htmlentities($_POST['prenom']);
    $adresse = htmlentities($_POST['adresse']);
    $pays = htmlentities($_POST['pays']);
    $cp = htmlentities($_POST['cp']);
    $ville = htmlentities($_POST['ville']);
    $actif = htmlentities($_POST['actif']);
    $mail=trim(addslashes($_POST['mail']));
     $tableau=array();
     $tableau=Explode("@",$mail,2);
     echo $tableau[0];
     if ($nom=="" || $nom=="Nom")
     {
       echo "Merci de bien vouloir entrer votre nom";
     }elseif ($mail==""){
       echo "Merci de bien vouloir rentrer votre adresse e-mail";
     }elseif (!isset($tableau[1])) {
       echo"L'adresse e-mail saisie n'est pas correcte";
     }else{
      if(!mysql_connect('127.0.0.1', 'essais2', '',)){
        Echo'Connection Impossible';
        exit();
      } else{
       Echo'Connexion réussie';
      }
      Mysql_select_db('essais2');
      $requete="insert formulaire SET nom='$nom', mail='$mail', actif='$actif'" ;
      $resultat=mysql_query($requete);
      //die ();
    // envoi par mail
    $date=date('Ymd');
    $message=date("d/m/Y H:m:s\n")."\n ".$civilite."Coordonnées : "."\n Nom: ".$nom.", Prénom : ".$prennom."\n Adresse : ".$adresse.", ".$cp.", ".$ville."
    /n Pays: ".$pays" /n
    Adresse mail: ".$mail" /n
    A accepté de recevoir la newsletter : ".$actif;
    $sujet="Message sur le site de l&rsquo;Office de".$civilte,.$nom,;
    $webmaster=('ADRESSEMAIL@OFFICETOURISME.FR');
    mail($webmaster,$sujet,$message,$entetes);
     
     }
    }
    $form="<form method='POST'>
      <p>Civilit&eacute; 
        <select name='civilite' id='civilite'>
          <option>M</option>
          <option>Mme</option>
          <option>Mlle</option>
        </select>
      </p>
      <p>
        <input name='nom' type='text' value='Votre nom' size='20'>
        <input name='prenom' type='text' id='prenom' value='Votre Prenom' size='20'> 
      </p>
      <p>
        <input name='adresse' type='text' id='adresse' value='Votre adresse' size='50'>
    , 
    <input name='cp' type='text' id='cp' value='Votre code postal'> 
    , 
    <input name='ville' type='text' id='ville' value='Votre ville'>
    </p>
      <p>
        <input name='pays' type='text' id='pays' value='Votre pays'>
      </p>
      <p>Votre adresse mail: <input type='text' name='mail' size='30' value='Votre adresse mail'></p>
      <p>
        <input name='actif' type='checkbox' id='actif' value='checkbox'>
    Je souhaite recevoir les informations de l'Office de Tourisme </p>
      <p><input type='submit' value='Envoyer' name='B1'></p>
    </form>";
    echo $form;
     
    ?>
    Voici la table sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE IF NOT EXISTS `formulaire` (
      `mail` text NOT NULL,
      `nom` text NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    Savez-vous d'où peut venir mon problème, je suis dessus depuis la semaine dernière et je ne trouve pas de solution.
    Je vous remercie d'avance pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    il suffit de comprendre le message d'erreur, qui signale le problème ligne 24 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if(!mysql_connect('127.0.0.1', 'essais2', '',)){
    Une virgule en trop.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup, je me penche maintenant sur les autres erreurs (que je ne pouvais pas voir) qui s'affichent maintenant, en tout cas sa a bien débloqué la situation sur ce point

    Edit - 13h44 : J'ai corrigé les erreurs qui empêchaient le formulaire de s'afficher, apparement il ne prend pas en compte ma déclaration des variables.

    Notice: Undefined variable (13 messages de la sorte), ont été corrigé, j'ai peur que ça fasse doublon mais les messages d'erreur ne s'affichent plus La fonction mail n'est pas active sur mon easy php et à chaque ouverture de page il inscrit des données vierges dans la base de donnée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?php
    $civilite='';
    $prenom='';
    $adresse='';
    $pays='';
    $cp='';
    $ville='';
    $actif='';
    $sujet='';
    $mail='';
    $nom='';
    if (isset($_POST['B1']))
    {
     // teste les valeurs. $nom=trim(addslashes($_POST['nom']));
    $civilite = htmlentities($_POST['civilite']);
    $prenom = htmlentities($_POST['prenom']);
    $adresse = htmlentities($_POST['adresse']);
    $pays = htmlentities($_POST['pays']);
    $cp = htmlentities($_POST['cp']);
    $ville = htmlentities($_POST['ville']);
    $actif = htmlentities($_POST['actif']);
    $sujet = htmlentities($_POST['sujet']);
    $mail= htmlentities($_POST['mail']);
     }else{
      if(!mysql_connect('127.0.0.1', 'root', '')){
        Echo'Connection Impossible';
        exit();
      } else{
       Echo'Connexion réussie';
      }
      Mysql_select_db('essais2');
      $requete="insert formulaire SET nom='$nom', mail='$mail', actif='$actif'" ;
      $resultat=mysql_query($requete);
      //die ();
    // envoi par mail
    $date=date('Ymd');
    $message=date("d/m/Y H:m:s\n")."\n ".$civilite."Coordonnées : "."\n Nom: ".$nom.", Prénom : ".$prenom."\n Adresse : ".$adresse.", ".$cp.", ".$ville."
    \n Pays: ".$pays."
    Adresse mail : ".$mail." 
    A accepté de recevoir la newsletter : " .$actif
    .$sujet= "Message sur le site de l&rsquo;Office de Gien";
    $webmaster=('ADRESSEMAIL@OFFICETOURISME.FR');
    mail($webmaster,$sujet,$message);
     
     }
    $form="<form method='POST'>
      <p>Civilit&eacute; 
        <select name='civilite' id='civilite'>
          <option>M</option>
          <option>Mme</option>
          <option>Mlle</option>
        </select>
      </p>
      <p>
        <input name='nom' type='text' value='Votre nom' size='20'>
        <input name='prenom' type='text' id='prenom' value='Votre Prenom' size='20'> 
      </p>
      <p>
        <input name='adresse' type='text' id='adresse' value='Votre adresse' size='50'>
    , 
    <input name='cp' type='text' id='cp' value='Votre code postal'> 
    , 
    <input name='ville' type='text' id='ville' value='Votre ville'>
    </p>
      <p>
        <input name='pays' type='text' id='pays' value='Votre pays'>
      </p>
      <p>Votre adresse mail: <input type='text' name='mail' size='30' value='Votre adresse mail'></p>
      <p>
        <input name='actif' type='checkbox' id='actif' value='checkbox'>
    Je souhaite recevoir les informations de l'Office de Tourisme de Gien </p>
      <p><input type='submit' value='Envoyer' name='B1'></p>
    </form>";
    echo $form;
     
    ?>

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Je pense enfin tenir le bon bout, j'ai repris un formulaire que j'ai sur un autre site, cette fois tout fonctionne..

    Pour ceux que sa intéressent, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    <?php
    //\\ Param&egrave;tres - A mettre en haut de page
     
    //Pour tous les param&egrave;tres -> 1 = oui ; 0 = non
    $email_admin = 'webmaster@f1-direct.com'; // Votre email
    $nom_site = 'Office de Tourisme de Gien'; // Le nom du site o&ugrave; sera install&eacute; le script
    $choix_urgent = 0; // Vous pouvez choisir d'activer ou non la fonction "urgent", ainsi l'internaute pourra signaler que son mail est urgent ou non
    $choix_nom = 0;// Nom obligatoire ?
    $votre_mail = 0; // Afficher votre adresse email directement ?
     
    //
    // Ne pas modifier ci-dessous
    //
     
    if(isset($_POST['envoyer']) && $_POST['envoyer'] == 'ok')
    // Si l'on envoye quelque chose
    {
    	$reponse = '<br />';
    	$mail = htmlentities($_POST['mail']); // On r&eacute;cup&egrave;re l'email
    	$nom = htmlentities($_POST['nom']); // Le nom
    	$prenom = htmlentities($_POST['prenom']); // Le nom
    	$adresse = htmlentities($_POST['adresse']); // Le nom
    	$cp = htmlentities($_POST['cp']); // Le nom*
    	$ville = htmlentities($_POST['ville']); // Le nom
    	$pays = htmlentities($_POST['pays']); // Le nom
    	$actif = htmlentities($_POST['actif']); // Le nom
    	$civilite = htmlentities($_POST['civilite']); // Le sujet
    	$message = nl2br(htmlentities($_POST['message'])); // Le message
    	$urgent = htmlentities($_POST['urgent']); // On r&eacute;cup&egrave;re le type du message
     
     
    	if($choix_nom == 1)
    	// Si le nom est obligatoire
    	{
    		if(!empty($nom))
    		// Si le champ est bien rempli on met 1
    		{
    			$Snom = 1;
    		}
    		elseif(empty($nom))
    		// Sinon on met 0
    		{
    			$Snom = 0;
    		}
    	}
    	else
    	// Si le champ n'est pas activ&eacute; on met 1
    	{
    		$Snom = 1;
    	}
     
     
     
     
    	// On v&eacute;rifie que l'email, le message et le sujet sont bien pr&eacute;sent et on v&eacute;rifie si tout est correct avec le nom
    	{
     
    		// L'entete du message
    		$entete = "MIME-Version: 1.0\r\n";
    		$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
    		$entete .= "From: <$mail>\r\n";
    		$entete .= "Reply-To: $mail\r\n";
     
    		$email = ''; // La variable du message a envoyer
     
    		if($urgent == 1) // Si le message est urgent on le signal
    			$email .= '<strong>Message urgent !!</strong><br />';
     
    		if(empty($nom))
    			$nom = 'NON INDIQUE';
     
    		// On cr&eacute;&eacute;e le message	
    		$email .= 'Vous recevez ce message de votre site <u>' .$nom_site. '</u> <br/>';
    		$email .= 'Civilité : '.$civilite.' '.$nom.' '.$prenom.'</strong>.<br />';
    		$email .= 'Ses coordonnées sont : ' .$mail.' <br> '.$adresse.' - '.$cp.' - '.$ville.' - '.$pays.'<br /><br />';
    		$email .= 'Souhaite-t-il recevoir la newsletter : ' .$actif. '' ;
    		$email = stripslashes($email);
     
    		mail($email_admin, 'Message internaute sur votre site Office de Tourisme de Gien', $email, $entete); // Et on envoye le tout
     
    		$reponse .= "Votre message a bien &eacute;t&eacute; transf&eacute;r&eacute; &agrave; l'Office de Tourisme de Gien. Nous vous r&eacute;pondrons dans les plus brefs d&eacute;lais.<br />"; // on indique que tout s'est bien d&eacute;roul&eacute;.
    	}
     
    }
     
    //\\ Fin - Le texte commen&ccedil;ant par "<form..." et finissant par "</form>" peut &ecirc;tre plac&eacute; partout dans la page
     
    ?>
    <form name="form1" method="post" action="">
      <p align="left"><strong><?php echo $reponse; ?></strong></p>
      <div align="left">
        <?php 
    if($votre_mail == 1) 
    { 
    	echo '<p>Adresse email du webmaster : <u>' .$email_admin. '</u></p>'; 
    } 
    ?>
      </div>
      <p align="left"> Votre email :
          <input type="text" name="mail" >
        *</p>
      <p align="left">
        <label> Votre nom complet :
        <input type="text" name="nom" >
        <?php if($choix_nom == 1) { echo '*'; } ?>
    </label>
      </p>
      <p align="left">
        <label>Votre prenom : 
        <input name="prenom" type="text" id="prenom"  value="" size="55">
    </label>
      </p>
      <p align="left">
        <label>Adresse : 
        <input name="adresse" type="text" id="adresse"  value="" size="55">
    </label>
      </p>
      <p align="left">
        <label>Code Postal : 
        <input name="cp" type="text" id="prenom3"  value="" size="55">
    </label>
      </p>
      <p align="left">
        <label>Ville : 
        <input name="ville" type="text" id="prenom4"  value="" size="55">
    </label>
      </p>
      <p align="left">
        <label>Pays : 
        <input name="pays" type="text" id="prenom5"  value="" size="55">
        </label>
      </p>
      <p align="left">Civilit&eacute; :
        <select name="civilite" id="civilite">
          <option selected>M</option>
          <option>Mme</option>
    	  <option>Mlle</option>
        </select>
          </select>
    </p>
      <p align="left">Recevoir newsletter : 
        <select name="actif" id="actif">
          <option selected>Oui</option>
          <option>Non</option>
        </select>
      </p>
      <div align="left">
        <?php
    if($choix_urgent == 1)
    {
    	echo '<p>Votre message est-il urgent ? :<br />';
    	echo '<label><input type="radio" name="urgent" value="1"> Oui</label><br />';
    	echo '<label><input type="radio" name="urgent" value="0" checked> Non</label><br />';
    	echo '(Merci de ne pas abuser de l\'urgence)</p>';
     
     
     }else{
      if(!mysql_connect('ADRESSE BDD', 'LOGIN', 'MDP')){
        Echo'Connection Impossible';
        exit();
      }
      Mysql_select_db('NOM BDD');
      $requete="insert formulaire SET nom='$nom', mail='$mail', actif='$actif'" ;
      $resultat=mysql_query($requete);
      }
    ?>
      </div>
      <p align="center">
        <input type="hidden" name="envoyer" value="ok" >
        <input type="submit" name="Submit" value="Envoyer" >
        <input type="reset" name="Submit2" value="R&eacute;initialiser" >
      </p>
    </form>
    *
    Et pour le SQL, voici la requête à exécuter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE IF NOT EXISTS `formulaire` (
      `nom` text NOT NULL,
      `mail` text NOT NULL,
      `actif` text NOT NULL,
      `ID` int(11) NOT NULL auto_increment,
      PRIMARY KEY  (`ID`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=55 ;
     
    --
    -- Contenu de la table `formulaire`
    --
     
    INSERT INTO `formulaire` (`nom`, `mail`, `actif`, `ID`) VALUES
    ('', '', '', '')
    Si vous avez une astuce pour que ça n'écrive plus automatiquement dans la BDD à l'ouverture de la page je suis preneur, mais le script est fonctionnel dans l'état.

    PS : Le principe d'écriture dans la BDD est de permettre d'exporter les adresses mail en conditions sur le actif "oui" afin de copier coller le listing sous Outlook, je vais tenter de fabriquer un formulaire de desinscription, si j'y arrive je vous le communique ici également.

    Encore merci à jreaux62 pour votre aide !

    Cordialement, Alexandre.

    ________________________________

    Edit du 6 novembre :
    Finalement j'ai trouver une astuce pour supprimer les doublons, les ''non'' pour le recevoir la newsletter, je suis juste bloqué sur un élèment capital, les doublons, ainsi j'ai essayer ce code mais il supprime tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?PHP
    $connexion = mysql_pconnect("localhost","bdd","pass"); 
    mysql_select_db("bdd",$connexion);
    //Supression d'un enregistrement dans la table 'Tatable' ou l'id sera égale à 2 :
    if(mysql_query("DELETE FROM formulaire WHERE actif mail = mail")){
      echo "Votre adresse '$mail4' à été correctement supprimée de notre listing.";
    }else{
      echo "Adresse courriel inconnue dans notre base de donnée.";
    }
    ?>

Discussions similaires

  1. Saisie automatique dans un formulaire PHP/MySQL
    Par marina_db dans le forum Langage
    Réponses: 6
    Dernier message: 01/07/2014, 12h04
  2. [phpMyAdmin] #1064 : Problème de syntaxe dans MySQL
    Par anthony29 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 23/06/2010, 15h25
  3. [MySQL] Champs à nul dans formulaire PHP, Mysql refuse l'enregistrement
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/02/2009, 22h10
  4. [MySQL] Probléme de apostrophe a mettre en formulaire php/mysql
    Par mecmec dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/06/2007, 20h42
  5. [MySQL] Problème de syntaxe dans suppression doublons
    Par fred23195 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/04/2006, 15h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo