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

PHP & Base de données Discussion :

[SQL] Probléme d'insertion SQL et d'envoi de mail


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut [SQL] Probléme d'insertion SQL et d'envoi de mail
    Bonjour les gens
    j'ai adapté un script d'insertion sql dans la BDD téléchargé sur un site, de même que pour l'envoi d'un mail.
    Indépendament l'un de l'autre, les scripts fonctionnent parfaitement.
    Après compilation des deux et mise en page, aucune action ne fonctionne et aucune erreur ne m'est retournée.
    Voici le code, si quelqu'un pouvait m'aider, merci d'avance, je galère trop là ^^.

    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
    <?php
     
    include("config.php"); // on demande au script d aller se référer à config.php pour prendre en compte les paramètres contenus dans celui-ci
     
    // On commence par récupérer les champs 
     
    // si on renseigne le champs "societe", alors la variable $soc prendra la valeur de ce champs, sinon elle reste vide. le ['societe'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['societe']))      $soc=$_POST['societe'];
    else      $soc="";
     
    // si on renseigne le champs "activite", alors la variable $act prendra la valeur de ce champs, sinon elle reste vide. le ['activite'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['activite']))      $act=$_POST['activite'];
    else      $act="";
     
    // si on renseigne le champs "code_ape", alors la variable $ape prendra la valeur de ce champs, sinon elle reste vide. le ['code_ape'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['code_ape']))      $ape=$_POST['code_ape'];
    else      $ape="";
     
    // si on renseigne le champs "num_siren", alors la variable $si prendra la valeur de ce champs, sinon elle reste vide. le ['num_siren'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['num_siren']))      $si=$_POST['num_siren'];
    else      $si="";
     
    // si on renseigne le champs "adresse", alors la variable $adr prendra la valeur de ce champs, sinon elle reste vide. le ['adresse'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['adresse']))      $adr=$_POST['adresse'];
    else      $adr="";
     
    // si on renseigne le champs "code_postal", alors la variable $cp prendra la valeur de ce champs, sinon elle reste vide. le ['code_postal'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['code_postal']))      $cp=$_POST['code_postal'];
    else      $cp="";
     
    // si on renseigne le champs "ville", alors la variable $vil prendra la valeur de ce champs, sinon elle reste vide. le ['ville'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['ville']))      $vil=$_POST['ville'];
    else      $vil="";
     
    // si on renseigne le champs "nom", alors la variable $no prendra la valeur de ce champs, sinon elle reste vide. le ['nom'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['nom']))      $no=$_POST['nom'];
    else      $no="";
     
    // si on renseigne le champs "prenom", alors la variable $pr prendra la valeur de ce champs, sinon elle reste vide. le ['prenom'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['prenom']))      $pr=$_POST['prenom'];
    else      $pr="";
     
    // si on renseigne le champs "telephone", alors la variable $tel prendra la valeur de ce champs, sinon elle reste vide. le ['telephone'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['telephone']))      $tel=$_POST['telephone'];
    else      $tel="";
     
    // si on renseigne le champs "fax", alors la variable $fa prendra la valeur de ce champs, sinon elle reste vide. le ['fax'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['fax']))      $fa=$_POST['fax'];
    else      $fa="";
     
    // si on renseigne le champs "website", alors la variable $url prendra la valeur de ce champs, sinon elle reste vide. le ['website'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['website']))      $url=$_POST['website'];
    else      $url="";
     
    // si on renseigne le champs "email", alors la variable $vm prendra la valeur de ce champs, sinon elle reste vide. le ['email'] correspond au name du champs dans le formulaire mis entre crochets et guillemets pour la synthaxe php.
    if(isset($_POST['email']))      $em=$_POST['email'];
    else      $em="";
     
     
    // On vérifie si les champs sont vides
    // on controlle chaque saisie de référence voir si elles sont vides ou renseignées, c'est a dire toutes celles qui dans la base de données auront une importance pour etre traitée par la suite
    if(empty($soc) OR empty($act) OR empty($ape) OR empty($si) OR empty($adr) OR empty($cp) OR empty($vil) OR empty($no) OR empty($pr) OR empty($tel) OR empty($fa) OR empty($em))
        {
    	// on affiche un message de controlle sur la saisie en fonction des champs vides
        echo '<font color="red">Attention, seul le champs <b>Site Internet</b> peut rester vide !</font>';
        }
    // Aucun champ n'est vide, on peut enregistrer dans la table
    else     
        {
        $db = mysql_connect('******', '******', '******');  // connexion à la base : ('serveur', 'utilisateur', 'mdp de la base')
        mysql_select_db('dbname',$db);                  // sélection de la base ('nom de la base')
     
        // on regarde si l'url existe déjà en fesant un select sur un champs unique, ou il ne peux pas y avoir 2 fois le meme dans la table
    	// le select porte sur le champs siren (numero unique) dans la table demande_tarif de la base de données, on stock le résultat dans la variable $sql
        $sql = "SELECT siren FROM demande_tarif WHERE url='$url'";
    	// on execute la requete : si OK, on poursuit, sinon on affiche le message d'erreur SQL
        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        // va retourner le nombre de lignes du résultat de la requete
        $res = mysql_num_rows($req);
     
        if($res!=0)  // si le numero siren existe déjà, on affiche un message d'erreur
            {
            echo '<font color="red">Désolé, mais ce numero SIREN existe déjà dans notre base.</font>';
            }
        else  //  ou le numero n'existe pas, alors on insère les informations du formulaire dans la table renseignée
            {   
            $sql = "INSERT INTO demande_tarif( societe, activite, ape, siren, adresse, cp, ville, nom, prenom, tel, fax, site, mail) 
    		 VALUES('$soc','$act','$ape','$si','$adr','$cp', '$vil', '$no', '$pr', '$tel', '$fa', '$url', '$em')"; // (societe, activite, ...) = nom des champs de la table                             ---------                   ($soc, $act, ...) valeur des variables qui seront stockées dans leur emplacement respectif dans la table
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
            }
        mysql_close();  // on ferme la connexion
        } 
    // liste des variables pour le script
    $sujet="Demande de tarifs";
    $corpmail="Une demande de tarifs vient d'être envoyée .\n
    SOCIETE : $soc 
    ACTIVITE : $act
    CODE APE : $ape 
    NUMERO SIREN : $si 
    ADRESSE : $adr
    CODE POSTAL : $cp
    VILLE : $vil
    NOM : $no
    PRENOM : $pr
    TELEPHONE : $tel
    FAX : $fa
    SITE INTERNET : $url
    EMAIL : $em
    ";
     
     
    // on vérifie que le format de l'adresse mail est valide
     
     
          $pt = strpos($em,".");
          $aro = strpos($em,"@");
              if($pt == '')     {echo " Votre adresse email est invalide<br><a href='$urlsite'>Retour</a>";}
              elseif($aro == ''){echo " Votre adresse email est invalide<br><a href='$urlsite'>Retour</a>";} 
     
    // Si tout est OK, le mail est envoyé.
          else {
          mail("$votremail","$sujet","$corpmail","from: //// DEMANDE DE TARIFS /////"); 
          echo "<font face='Arial' color='#7D9729' size='2'>Votre message a bien été envoyé, une réponse vous sera donnée d'ici 24 à 48 heures.<a href='$urlsite'>Retour</a></font> " ;} 
    	 }
     
    ?>
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Points : 54
    Points
    54
    Par défaut
    Bonjour

    Apparemment tu as une erreur de syntaxe à l'avant derniere ligne ( no 125 ) ,
    Elle se finit par une } , ce qui en fait une de trop !!!.

    Pour eviter ca essaye de mettre au debut de ton script : error_reporting(E_ALL) , tu auras en output les erreur de syntaxe.

    Bon courage.

  3. #3
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    oki ca le fait, une erreur apparait maintenant ^^
    (j'ai viré l'accolade en fin de script et mis le reporting)

    l'erreur est la suivante :
    Erreur SQL !SELECT siren FROM demande_tarif WHERE url='www.blablabla.fr'
    Unknown column 'url' in 'where clause'
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  4. #4
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    ca veut dire que ta table demande ne comporte pas de colonne url !

  5. #5
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    ah ba pourtant si ...
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

  6. #6
    Membre éprouvé Avatar de FraK
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 828
    Points : 985
    Points
    985
    Par défaut
    Bon, problème résolus, mon patron a effacé sans faire gaffe la moitié des champs de la table, d'où l'erreur.
    Merci à tous.
    Infographiste / Webdesigner / Intégrateur (un peu Développeur aussi si on peut dire ;p)
    On me trouve souvent dans la partie Hardware, Systèmes et Logiciels ou encore Webmasters - Développement Web et surtout dans le forum Wordpress.
    »» Mon Blog Musical (drumnbass)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. INSERT SQL : problème avec valeurs à entrer
    Par St-Jean dans le forum VBA Access
    Réponses: 5
    Dernier message: 25/09/2007, 16h18
  2. [SQL] Problème d'insertion du à un champ auto_increment ?
    Par toma03 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 11/06/2007, 16h29
  3. [SQL] problème d'insertion dans ma base ou problème de requête sql
    Par maroco31 informatik dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/06/2007, 08h16
  4. [SQL] problème de requête sql d'insertion
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 10/05/2007, 14h11
  5. [SQL]Problème requête INSERT
    Par Melaus dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/01/2007, 14h26

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