PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#28 Re : Forum Général PHP » Menu déroulant dynamique et automatique [Résolu] » 07-06-2011 15:47:35

Bonjour Maljuna Kris,

alors je vais t'expliquer un peu plus...

alors, mon code marche mais... Un utilisateur sélectionne une option de mon menu déroulant, dans 1er écran, ensuite il clique sur le bouton "envoyer" pour afficher les résultats dans la 2e page

Voici le code et merci...

<?php
   
   //connection au serveur
   include"bd_db/connection.php";
   //sélection de la base de données et table
   include"bd_db/selection_test.php";

   $var_age_menu=$_POST["age_menu"];
   

    $var_age_menu= htmlspecialchars($var_age_menu, ENT_QUOTES);
   
   
    $cherche_menu = " select bd_nom,bd_age FROM $table_db WHERE bd_age = ".$_POST['age_menu'];
   

    $rep_cherche_menu = mysql_query($cherche_menu, $cnx) or die( mysql_error() ) ;
   
    while($row_menu=mysql_fetch_row($rep_cherche_men
u)){
    $var_nom=$row_menu[0];
   
    echo "<table><tr><td>$var_nom</td><td>
</tr></table>" ;
    }
   

?>

Super mais je vais faire tous cela dans le même écran : comment peux-je afficher les informations dans 1er (le même) écran où il y a le menu déroulant lorsqu’une option du menu a été sélectionné par l"utilisateur sans cliquer sur un bouton "Envoyer" ?

#29 Re : Forum Général PHP » Menu déroulant dynamique et automatique [Résolu] » 07-06-2011 15:47:35

Salut Maljuna Kris,

tu as raison à propos de stockage d'une âge...:/

et merci pour Distinct...:)

$res =   " select DISTINCT bd_age FROM $table_db  ";

alors est ce que tu as la réponse aussi pour ma 2e question :

2e question : comment je peux afficher les résultats de ce menu, par exemple : lorsque l'on sélecte 5 ans, il faut que j'affiche Nathalie et Alice...roll

roll

#30 Forum Général PHP » Menu déroulant dynamique et automatique [Résolu] » 07-06-2011 15:47:35

phpdos
Réponses : 8

J'ai un formulaire où j'affiche les âges des utilisateurs et leurs noms...

Voici le code :

<?php

include"bd_db/connection.php";

include"bd_db/selection.php";
 
  $req=  " select bd_age,bd_nom FROM $table_db  ";
  $rep =  mysql_query($req, $cnx) or die( mysql_error() ) ;

  while($row=mysql_fetch_row($rep)){
    $var_age=$row[0];
    $var_nom=$row[1];
   
  echo "<tr><td>$var_age</td><td>$var_nom</td></tr>"  ;
          }
               

         ?>

Ça fonctionne...:)

Je vais mettre un menu déroulant au lieu d'afficher tous les ages dans la table...
Donc ce menu déroulant va prendre les infos dans la bdd MySql.

J’arrive afficher les valeurs dans mon menu.

Voici mon code

<select name="age_menu" id="age_menu" onchange="submit()">
        <?php
            echo "<option selected=\"selected\" value='null'>Choissiez une option</option>";
           

      $res =   " select bd_age FROM $table_db  ";
      $rep_menu =  mysql_query($res, $cnx) or die( mysql_error() ) ;
     
     
     
            while($affiche_contenu = mysql_fetch_assoc($rep_menu)) {
                echo '<option value="'.$affiche_contenu['bd_age'].'">'.$affiche_contenu['bd_age'].'</option>';
            }
        ?>
    </select>

1er question : comment je peux regrouper les informations::rolleyes:
Exemple
+---------+-------------+----------+
| ID          | bd_age        | bd_nom   |
+---------+-------------+----------+
| 1           | 5 ans           | nathalie   |
| 2           | 5 ans           | alice        |
| 3           | 2 ans           | nathalie   |
| 4           | 2 ans           | john       |
| 5           | 10 ans         | gilles       |
+---------+-------------+----------+
En fait avec le code actuel, les options de mon menu sont 2 fois "5 ans", 2 fois "2 ans" et une fois "10 ans". Comment je peux afficher seulement 3 options au lieu de 5 options (sans répéter) ?:rolleyes:



2e question : comment je peux afficher les résultats de ce menu, par exemple : lorsque l'on sélecte 5 ans, il faut que j'affiche Nathalie et Alice...:rolleyes:

#33 Re : Javascript » filtres/contrôle sur le même email » 21-05-2011 10:55:57

Bonjour Pierrot,

J'ai un bd de MySql...

Alors, comment je peux faire pour que cela marche :

1er écran, mon formulaire...
Je fais les vérifications avec JavaScript si c'est bon j'amène les informations (par Post) à 2e page où j'envoie une requête qui va vérifier si l'email existe ou pas dans MySql.

S'il existe j'affiche le message : désolé, etc. s'il n'existe pas, c'est l'écriture des informations dans mon BD mySql et j'affiche le message : Merci pour votre inscrpription, etc.

Est-ce que c'est cela ?

#35 Javascript » filtres/contrôle sur le même email » 21-05-2011 10:55:57

phpdos
Réponses : 12

J'ai fait un formulaire et j'ai mis certains filtres/contrôle sur quelques champs à remplir avec le JavaScript...

Tout marche bien...

function check()...

if (document.FormToto.nom.value=="")
  {
    alert("ECRIVEZ VOTRE NOM S\'IL VOUS PLAIT !");
    return false;

//....

  if (document.FormToto.annee6.checked)
    {
       v_compte = v_compte + 1;
    }
     
    if (v_compte == 0 )
    {
      alert("VEUILLEZ CHOISIR AU MOINS UN MAGAZINE S\'IL VOUS PLAIT !");
      return false;
    }
      if (v_compte >> 1 )
    {
      alert("VEUILLEZ CHOISIR MAX. UN MAGAZINE S\'IL VOUS PLAIT !");
      return false;
    }

//etc...

Voici ma question : comment je peux mettre un contrôle/filtre en contrôlant les emails : si un utilisateur a rempli le formulaire avec un email, une deuxième fois, un utilisateur qui a le même email  ne puisse pas remplir et l'envoyer ?

Un message s’afficherait : ce courriel a déjà été saisi, vous ne pouvez pas envoyer le formulaire par le même email.

#37 MySQL, PostgreSQL, etc... » PHP et MySql... dans un formulaire » 10-02-2011 15:19:58

phpdos
Réponses : 2

Bonjour,

J’ai une question avec PHP et MySql...


Dans ma table de mySql, il y a 3 champs : bd_1a, bd_2b, bd_3c

Dans les champs, il peut avoir les valeurs [on] ou bien vides (il n'y a rien)...
En plus, dans  les 3 champs ci-dessus, du même enregistrement (donc dans la même ligne) tous les champs seront vide, ou tous les ont la valeur "on" ou bien quelques-uns vide et les autres la valeur [on]


avec mon code ci-dessous, j'affiche mon checkBox [1a] sélectionné s'il y a [on] dans mon champ [bd_1a]

<?php
        //checkbox-------------------------------------
    $rep_checkbox= mysql_query("SELECT bd_1a, bd_2b, bd_3c FROM $table_db WHERE id=$var_id");
   


            $var_1a= $ligne_liste_checkbox['bd_1a'];
            $option_1a = ($var_1a) ? 'checked="checked"' : null;

            $var_2b= $ligne_liste_checkbox['bd_2b'];
            $option_2b = ($var_2b) ? 'checked="checked"' : null;

           

            $var_3cb= $ligne_liste_checkbox['bd_3c'];
            $option_3c = ($var_3c) ? 'checked="checked"' : null;      
       


?>

 <label>
          <input type="checkbox" name="1a" id="1a" <?php echo $option_1a; ?> />
        </label>

 <label>
          <input type="checkbox" name="2b" id="2b" <?php echo $option_2b; ?> />
        </label>

 <label>
          <input type="checkbox" name="3c" id="3c" <?php echo $option_3c; ?> />
        </label>

Voici ma question :

Je vais supprimer 2 checkbox suivants : 2b et 3b
et je vais garder mon 1er checkbox 1a et je vais qu'il soit [checked] lorsqu'il y a la valeur [on] dans un de trois champs (bd_1a, bd_2b, bd_3c)
et s'il n'y a pas de valeur dans les trois champs, je veux que mon checkbox ne soit pas sélectionné...

À votre avis, comment je peux faire cela, est-ce que vous avez une idée ?

Merci

#38 Re : Forum Général PHP » enregistrement dans mySql et csv sous Excel » 31-08-2010 06:00:07

Bonjour moogli  ^_^

Merci pour vos aides... selon les aides et les explications, mes codes marchent...
j'ai deux solutions


la 1ère c'est mon code que j'ai bidouillé pour qu'il marche...

  function nettoyage($chaine) {
 
          $var_fonction_nettoyage =$chaine;
                       
                {
           //remplacement [:] par [.,] pour qu'il n'y a pas de creation des collones sup dans excel
           //remplacement [rn] (lorsqu'utilisateur appuie sur la touche "Entrée") par [--->] pour qu'il n'y a pas de création des colonnes sup dans Excel
            $tb_tableau_nettoyage = array('/;/','/\r\n/');
              $tb_tableau_replacer = array('.,','--->');

            //application utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
            //des remplacements  complexe on utilise preg_replace mais on pourrais aussi utiliser str_replace pusique c'est plus basiques (voir la 2e solution)
            return utf8_decode(preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $chaine));
           
                 }
                      }  
 
    //ecriture du fichier
    //fputs qui ne permet pas de formater du texte au format csv puisque c'est pour n'importe quel fichier pour Excel on utilise fputcsv qui permet de formater du texte au format csv
    fputs($ouvrir_FD, utf8_decode($var_date).';'.nettoyage($var_votre_nom).';'.nettoyage($var_nom_enfant).';'.nettoyage($var_adresse).';'.nettoyage($var_ville).';'.utf8_decode($var_province).';'.utf8_decode($var_code_postal).';'."\n");

    //Enfin fermer le fichier
    fclose($ouvrir_FD);

et la 2e c'est la meilleur solution :

<? php

          //remplacement [rn] (lorsqu'utilisateur appuie sur la touche "Entrée") par [--->] pour qu'il n'y a pas de création des colonnes sup dans Excel
          function replace_rn_saut($el)
          {
            //callback --> La fonction de rappel à exécuter pour chaque élément de chaque tableau.
                //str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace.
                //des remplacements basiques on n'utilise  str_replace au lieu de preg_replace qui est plus complexe.
          return (str_replace("\r\n",' ',$el));
          }
         
         
         
            // array --> Liste des tableaux à exécuter via la fonction de callback .
            //http://php.net/manual/fr/function.array-map.php
          $tab_excel = array();
         
          $tab_excel[] = $var_date;
          $tab_excel[] = $var_votre_nom;
          $tab_excel[] = $var_nom_enfant;
          $tab_excel[] = $var_adresse;
          $tab_excel[] = $var_ville;
          $tab_excel[] = $var_province;
          $tab_excel[] = $var_code_postal;
           
        //fonction array_map ----> Applique une fonction sur les éléments d'un tableau
        //retourne un tableau après leur avoir appliqué la fonction callback
           //utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
          $tab_excel = array_map('utf8_decode',$tab_excel);
          //apliquer la fonction replace_rn_saut
          $tab_excel = array_map('replace_rn_saut',$tab_excel);
           

           
             
         

          //Ecriture le fichier
          //fputcsv qui permet de formater du texte au format csv
          fputcsv($ouvrir_FD, $tab_excel, ';');
         
          //Enfin fermer le fichier
                  fclose($ouvrir_FD);
         
?>

merci encore et bonne journée

#39 Re : Forum Général PHP » enregistrement dans mySql et csv sous Excel » 31-08-2010 06:00:07

Bonjour Moogli,

Comme tu m'as dit, j'ai fait un table...

 $tb_tableau_nettoyage = array();
            $tb_tableau_nettoyage[0] = '/;/';
            $tb_tableau_nettoyage[1] = '/\r\n/';

            $tb_tableau_replacer = array();
            $tb_tableau_replacer[0] = '.,';
            $tb_tableau_replacer[1] = '--->';

    $var_ville = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_ville);
        $var_nom = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_nom);
            $var_prenom = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_prenom);
                $var_pays = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_pays);
               
               
             //ecriture fichier csv
         fputs($ouvrir_FD, utf8_decode($var_ville).';'.utf8_decode($var_nom).';'.utf8_decode($var_prenom).';'.utf8_decode($var_pays).';'."\n");

Ca marche mais il y a toujours trop de répétitions...
Alors j'aimerais bien l'optimiser... J'ai fait une fonction :



function nettoyage($chaine) {
 
                    $var_fonction_nettoyage ="";
                     
                        if (isset($_POST[$var_fonction_nettoyage])) {
                     
                                {
                                $tb_tableau_nettoyage = array();
                                $tb_tableau_nettoyage[0] = '/;/';
                                $tb_tableau_nettoyage[1] = '/\r\n/';
                               
                                $tb_tableau_replacer = array();
                                $tb_tableau_replacer[0] = '.,';
                                $tb_tableau_replacer[1] = '--->';
                     
                                        $var_fonction_nettoyage = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $_POST[$var_fonction_nettoyage]);
                                         
                                            $var_fonction_nettoyage = utf8_decode($var_fonction_nettoyage);
                     
                               }
                     
                          return $var_fonction_nettoyage;
                                                                    }
 
                                            }
fputs($ouvrir_FD, utf8_decode($var_date).';'.nettoyage($var_votre_nom).';'.nettoyage($var_nom_enfant).';'.nettoyage($var_adresse).';'.nettoyage($var_ville).';'.utf8_decode($var_province).';'.utf8_decode($var_code_postal).';'."\n");

Mais je n’arrive pas… Dans les fichiers CSV; les colonnes (ceux que j’ai appliqué la fonction « nettoyage ») sont vides, sans valeur…
Alors à votre avis, comment je peux alléger mon code? ? Je vais surtout faire cela pour apprendre pas pour la vitesse.

Merci:)

#40 Re : Forum Général PHP » enregistrement dans mySql et csv sous Excel » 31-08-2010 06:00:07

Bonjour,
Merci pour vos aides…
J’ai réglé mon problème avec la fonction preg_remplace comme vous voyez ci-dessous…
Du coup, j’ai trois questions :

1- Comment je peux optimiser mon code qui se trouve dans la partie de fonction preg_replace ?

      // fonction  preg_replace
      // replacer [;] par [.,]
      // remplacer [\r\n] par [--->]
      //[\r\n] dans excel, c'est la ligne suivant
          $var_ville =  preg_replace( "/;/", ".,", $var_ville );
          $var_ville =  preg_replace( "/\r\n/", "--->", $var_ville );
         
          $var_nom =   preg_replace( "/;/", ".,", $var_nom );
          $var_nom =   preg_replace( "/\r\n/", "--->", $var_nom );
         
          $var_prenom =   preg_replace( "/;/", ".,", $var_prenom );
          $var_prenom =   preg_replace( "/\r\n/", "--->", $var_prenom );
         
          $var_pays =   preg_replace( "/;/", ".,", $var_pays );
          $var_pays =   preg_replace( "/\r\n/", "--->", $var_pays );
         
         
      //ecriture fichier csv
      fputs($ouvrir_FD, utf8_decode($var_ville).';'.utf8_decode($var_nom).';'.utf8_decode($var_prenom).';'.utf8_decode($var_pays).';'."\n");

2- est-ce qu’il y a un script php ou  javascript qui empêche d’écrire ou transformer les minuscules en majuscule dans un champ de texte ( input / textbox)
3- est ce qu’il y a un script php ou  javascript qui transforme les accents dans un champ de texte ( input / textbox)

Bonne journée

#41 Forum Général PHP » enregistrement dans mySql et csv sous Excel » 31-08-2010 06:00:07

phpdos
Réponses : 8

Bonjour,

Par mon formulaire en PHP, les données sont enregistrées dans MySql et dans un fichier csv.
J’ai des problèmes avec mon fichier csv sous Excel…
Je vous pose 2 questions
1- lorsque l'utilisateur écrit  le point-virgule [;] dans un champ de texte (input type="text") au niveau du fichier csv, il y a un problème : à cause de ce point-virgule, il y a une colonne supplémentaire dans mon fichier sous Excel : puisqu’il y a les séparateurs [;] dans un fichier csv.
Comment je peux remédier ce problème ? (dans mysql,  tout est correct) :?:

Voici mon code pour la création du fichier

fputs($ouvrir_FD, utf8_decode($var_ville).';'.utf8_decode($var_nom).';'."\n");

2- Si j'utilise la zone de texte [textarea] avec 5 lignes que l'utilisateur passe à la ligne en appuyant sur la touche "Entrée", dans mon fichier csv sous Excel, le 2e paragraphe est en 2e ligne au lieu de rester dans la même ligne. Pourtant dans mon MySql, tout est correct : sur la même ligne (enregistrement) 
Comment je peux remédier ce problème (dans mysql  tout est correct) :?:

Bon week-end

#42 Re : Forum Général PHP » Les accents sous PHP et dans MySql » 19-08-2010 21:40:54

j'ai trouve

Il fallait

utf8_decode()

fputs($ouvrir_FD, utf8_decode($var_ville).';'.utf8_decode($var_code_postal).';'."\n");

Merci

Bonsoir...

#43 Re : Forum Général PHP » Les accents sous PHP et dans MySql » 19-08-2010 21:40:54

Merci à vous,

Suite vos explication j'ai réglé une grande partie de mon problème

Voici la solution

En fait je ne devrais pas faire htmlspecialchars avant l'insertion de mes données dans la BD mais simplement lors de l'affichage donc ici c'est inutile


Ensuite avant la requête d'insertion il faut faire

moijhd a écrit :

Hey !

Tu peux aussi essayer d'ajouter le code suivant (lors de la connexion) :


<?php
/*
    $DB = mysql_connect(self::HOST, self::LOGIN, self::PASS);
    mysql_select_db(self::DATA_BASE_NAME, $DB);
*/

    mysql_query('SET NAMES utf8');
?>
 

Avec le code suivant tout va bien...

<?php //Récupération des input ( champ)  $_POST
  $var_ville = isset($_POST["ville"]) ? trim($_POST["ville"]) : '';
 
  $var_code_postal = isset($_POST["code_postal"]) ? trim($_POST["code_postal"]) : '';


    // Insertion en bdd si les variables (exemple [$var_ville] non vide
    if(!empty($var_ville))
      {
 
        //connection au serveur
        include"bd_db/connection.php";
        //sélection de la base de données et table
        include"bd_db/selection.php";
 
        //juste après la connexion encodage
        mysql_query("SET NAMES 'utf8'");
 
//------...............---ecriture cvs debut

// va voir plus bas

//------...............---ecriture cvs FIN

 

          //écriture de la requête d'insertion
        //$query = "INSERT INTO matable (champ_ville) VALUE ('" .mysql_real_escape_string($var_ville). "' )";

        $var_query = "INSERT INTO $table_db (bd_ville,bd_code_postal)";
   
        $var_query .= "VALUE ('" .mysql_real_escape_string($var_ville). "','" .mysql_real_escape_string($var_code_postal). "')";
       
        $result = mysql_query($var_query, $cnx) or die (mysql_error());
      }
?>

Ça marche avec MySql et PhpMyAdmin...

Par contre j'ai un souci dans un autre niveau...

Je écris aussi les donnés dans un fichier csv...

Lorsque j'ouvre mon fichier sous NotePad++, tout va bien...



Alors, l'utilisateur écrit dans le champ "ville" [ll'assomption côté] et je peux l'afficher correctement le résultat dans une page PHP et aussi dans phpMyMyAdmin
: [l'assomption côté]. C'est la même chose lorsque j'ouvre mon fichier csv sous NodePad++... Super content...

Par contre, lorsque j'ouvre le même fichier sous Excel, il y a un pépin :

je vois comme cela : [l'assomption  çôté] :oops:   :cry:


Comment je peux corriger mon histoire sous excel ?;)

voici mon code ....


<?php
// va voir plus haut
//------...............---ecriture cvs debut
            // Définit le fuseau horaire par défaut à utiliser.
              //voir [url]http://php.net/manual/fr/function.date.php[/url]
                // [url]http://www.php.net/manual/fr/timezones.america.php[/url]
        date_default_timezone_set('America/Montreal');

       
          // formatage du date avec fonction 'date'            
            //$var_date = date('d_m_Y--H_i_s_');       
         $var_date = date('d/m/Y');

         
         
               //Définir le fichier qui nous intéresse
               //$fichier_data_FD = "data/" . date("Ymd").".csv";
                  //                    . date('dmY') . '
                  //              ('Y-m-d\TH:i:s:u')
         $fichier_data_FD = "data/envoie.csv";
            //ou en mode "ajouter" à la fin d'info existant
            //créé si inexistant
        $ouvrir_FD = fopen($fichier_data_FD,"a");


       
       

          //La position du pointeur est dans le file   
        $pointeur_adresse_memoire = ftell($ouvrir_FD);


       
       
       
       
          //et est modifiable
        $pointeur_adresse_memoire = fseek($ouvrir_FD,$pointeur_adresse_memoire-10);
 

          //pour passer à la ligne, écrire \n  
        fputs($ouvrir_FD, $var_ville.';'.$var_code_postal.';'."\n");

       
       
       
          //Enfin fermer le fichier
        fclose($ouvrir_FD);
 

//------...............---ecriture cvs FIN
?>

Alors est-ce que vous avez des idées ?

Merci encore:)

#44 Forum Général PHP » Les accents sous PHP et dans MySql » 19-08-2010 21:40:54

phpdos
Réponses : 8

Bonjour,

J'ai un formulaire en PHP...

Au début de mon formulaire, j'ai mis header en utf 8


<?php
header('Content-Type: text/html; charset=UTF-8');
?>

En suite dans l’Head de la partie HTML, j'ai fait la même chose :


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Je passe les variables ENT-QUOTES
Exemple :

           

$var_pomme_nomme=$_POST["pomme_nomme"];
      $var_pomme_nomme= htmlspecialchars($var_pomme_nomme, ENT_QUOTES);

Dans le champ de mon mySql (sous phpMyAdmin) :

Type : TEXT
Interclassement : utf8_general_ci


Lorsque l’utilisateur remplit "textarea" avec les accents, l'enregistrement dans le bd n'est pas bon. Voici l'exemple :

l'utilisateur remplit le "textarea" comme cela: je m'appelle luc côté Montréal

Mais dans bd ce que je vois : je m'appelle luc côté Montréal

Comment je peux remédier mon problème ?

Merci

#45 Re : Forum Général PHP » installation phpMyAdmin 3.3.3 sous IIS Windows 7 » 28-05-2010 16:24:33

Bonjour Alnoss,

Je n'ai pas installé le serveur Apache sur mon windows 7...

#46 Forum Général PHP » installation phpMyAdmin 3.3.3 sous IIS Windows 7 » 28-05-2010 16:24:33

phpdos
Réponses : 3

Bonjour,
J’ai installé PHP 5.3.2 sur windows 7 avec IIS...
Mon php marche (phpinfo()
Ensuite j'ai installé Mysql server5.1 (mysql-essential-5.1.47-win32)
Ensuite j'ai installé phpMyAdmin 3.3.3. (phpMyAdmin-3.3.3-all-languages) en suivant tutorial... je tape le lien suivant : http://127.0.0.1/phpMyAdmin/setup/index.php

Voici le message d’erreur…

PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\php\ext\php_mssql.dll' - Le module spécifié est introuvable.  in Unknown on line 0

Pourtant  php_mssql.dll existe (C:\php\ext\php_mssql.dll) et active dans php.ini (extension=php_mssql.dll)
Alors votre avis c’est pourquoi ?

#47 Re : Forum Général PHP » [Résolu] connexion avec un bd access » 05-05-2010 20:14:53

Salut xTG,

Je me sens un peu con…

Évidemment, sur le serveur le répertoire de mon bd n’est pas le même…

Merci pour ce détail… j’ai rectifié le chemin…

Ça marche…

Bonne soirée

#48 Forum Général PHP » [Résolu] connexion avec un bd access » 05-05-2010 20:14:53

phpdos
Réponses : 2

Bonjour,

J’ai fais une connexion avec un bd access…

Localement ca marche sur mon ordi…

Lorsque je le mets sur le serveur
Il y a une erreur :

PHP Fatal error:  Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft JET Database Engine<br/><b>Description:</b> 'C:\inetpub\wwwroot\bon_commande_10\bede\commande_lettre.mdb' is not a valid path.  Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.' in C:\inetpub\wwwroot\toto\bon_commande_10\resultat\cgibin\get_infos.php:7
Stack trace:
#0 C:\inetpub\wwwroot\toto\bon_commande_10\resultat\cgibin\get_infos.php(7): com->Open('Provider=Micros...')
#1 C:\inetpub\wwwroot\toto\bon_commande_10\resultat\index.php(64): include('C:\inetpub\wwwr...')
#2 {main}
  thrown in C:\inetpub\wwwroot\toto\bon_commande_10\resultat\cgibin\get_infos.php on line 7

et voici le code

<?php

  $bd = 'C:\\inetpub\wwwroot\bon_commande_10\bede\commande_lettre.mdb';
  $conn = new COM("ADODB.Connection") or die("Cannot start ADO");
 
  // Microsoft Access connection string.
  $conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$bd");
  // SQL statement to build recordset.
  $rs = $conn->Execute("SELECT * FROM tb_formulaire_2010");
  //echo "test" . $rs->EOF;
  //exit();
   //Display all the values in the records set
  while (!$rs->EOF) {
    echo "<tr>";
    echo "<td bgcolor=\"#999999\">" . $rs->Fields["id"]->value . "</td>";
    echo "<td>" . $rs->Fields["bd_ecole"]->value . "</td>";
    echo "<td>" . $rs->Fields["bd_ville"]->value . "</td>";
    echo "<td>" . $rs->Fields["bd_province"]->value . "</td>";
    echo "<td>" . $rs->Fields["bd_nom"]->value . "</td>";

    echo "<td><span class=\"gris\">1er anneé : </span>" . $rs->Fields["bd_annee1"]->value . "<br />";
        echo "<span class=\"gris\">2e année : </span>" . $rs->Fields["bd_annee2"]->value . "<br />";
        echo "<span class=\"gris\">3e année : </span>" . $rs->Fields["bd_annee3"]->value . "<br />";
      echo "<span class=\"gris\">4e année : </span>" . $rs->Fields["bd_annee4"]->value . "<br />";
        echo "<span class=\"gris\">5e année : </span>" . $rs->Fields["bd_annee5"]->value . "<br />";
        echo "<span class=\"gris\">6e année : </span>" . $rs->Fields["bd_annee6"]->value . "</td>";

    echo "</tr>";
    $rs->MoveNext();
  }
  $rs->Close();
?>

La ligne 7 : $conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$bd");

Est ce que vous avez une idée ?

#49 Re : Forum Général PHP » php.ini pour mail fuction ET envoie email par PHP » 16-04-2010 15:44:16

Ça marche après avoir installé phpmailer-1.71 sur mon site…

Voici la solution pour windows web server 2008 :

Mettre 2 class suivants  à la racine de votre site (pas à la racine de votre serveur) (en fait, vous pouvez les mettre où vous voulez, mais dans le répertoire de votre site :
class.phpmailer.php
class.smtp.php

Ainsi, vous avez installé phpmailer-1.71

Ensuite, intégrer le code suivant dans votre formulaire :

// Préparation du mail

require("class.phpmailer.php"); // class DE PHPMailler qui marche avec le class class.smtp.php
//  le chemin où se trouve votre class (exemple : ("nom_dossier/class.phpmailer.php");)

$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP


$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Host = "111.111.1.1"; // votre serveur smtp exemple 111.111.1.1 ou smtp.toto.com
$mail->Username = "login";
$mail->Password = "motdepasse";
 
$mail->From = "votre_courriel@toto.com";


$mail->AddAddress = "son_courriel@otot.fr"; //
 
$mail->Subject = "Votre inscription bla bla";
$mail->Body = "Bonjour \n\nMerci de votre inscription sur notre liste d’envoi. \n\nAvec mes généreux remerciements.";
$mail->WordWrap = 50;
 
 
if(!$mail->Send())
{
   echo 'Nous éprouvons actuellement des difficultés. Veuillez réessayer plus tard.';
   echo 'Raison : ' . $mail->ErrorInfo;
}
else
{
   echo "<strong>Merci de votre inscription à notre liste";
}

#50 Re : Forum Général PHP » php.ini pour mail fuction ET envoie email par PHP » 16-04-2010 15:44:16

Salut xTG,



J'ai aussi essayé avec ce code suivant :

<?php
$username = "tototiti";
$password = "tatatete";
$POPserver = "111.111.1.1";
### php.ini's SMTP must correspond to this server
### and sendmail_from must be from this server (??)

$msg = POP_authenticate($username, $password, $POPserver);
if ($msg === FALSE) {
mail("toto@gmail.com", "test email", "1er ligne\nLine 2");
$msg = "mail a été envoyer.\r\n";
}
exit($msg);
?>

mais c'est toujours c'est le même message...

Pied de page des forums

Propulsé par FluxBB