Erreur avec php pour la date (mysql) [Résolu/Fermé]

Signaler
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
-
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
-
Bonjour,

Voici l'erreur qui apparait quand j'essaie d'ajouter la date dans mon formulaire d'inscription

Fatal error: Call to undefined function birthday() in C:\wamp\www\internetservices\ajoutAgent.php on line 24


Voici la ligne 24 de mon Code

$sql = 'INSERT INTO 'agent' ('id', 'nom', 'prenom', 'password', 'matricule', 'privilege', 'date', 'birthday')  VALUES(NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string(md5($_POST['password'])).'", "'.mysql_escape_string($_POST['matricule']).'","'.mysql_escape_string($_POST['privilege']).'","'.birthday('Y-m-d').'"';


Une aide s'il vous plait!



5 réponses

Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
79
la fonction birthday n'existe pas ...

date('Y-m-d') existe

et au passage, tu as 8 champs a insérer et tu ne passes que 7 values donc ta requete plantera
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Salut Maka54 ça fait un bye...
Au fait il s'agit de deux date, la première c'est la date qui me permet de voir chaque fois qu'un utilisateur à fait des mises à jour son compte et l'autre c'est une date que j'appelle statique, cette date c'est birthday il s'agit de la date d'anniversaire d'un membre.

Si vous avez des propositions ou une aide à m'apporter par rapport à ce que j'ai fait, s'il vous plait aidez moi comme vous l'avez toujours fait. Merci !
Messages postés
690
Date d'inscription
vendredi 7 septembre 2007
Statut
Membre
Dernière intervention
25 mars 2015
95
Bonjour,

la réponse est dans l'erreur, tu fais appel à une fonction php 'birthday' qui est inconnu du serveur. As-tu une telle fonction dans ton code ?
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Pitwu il s'agit de deux date, la première c'est la date qui me permet de voir chaque fois qu'un utilisateur à fait des mises à jour son compte et l'autre c'est une date que j'appelle statique, cette date c'est birthday il s'agit de la date d'anniversaire d'un membre.
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
les informations du birthday viennent du formulaire?
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Oui! Voici mon formulaire

 <?php
    if (isset($_POST['Enregistrer']) && $_POST['Enregistrer'] == 'Enregistrer') {

     if ((isset($_POST['nom']) && !empty($_POST['nom'])) &&  (isset($_POST['prenom']) && !empty($_POST['prenom'])) &&  (isset($_POST['password']) && !empty($_POST['password'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['matricule']) && !empty($_POST['matricule']))&& (isset($_POST['privilege']) && !empty($_POST['privilege']))   ) {

        if ($_POST['password'] != $_POST['pass_confirm']) {
           $erreur = 'Non concordance des mots de passe fournis.';
        }
		 if (isset($_POST['matricule']) != preg_match("#^CYB\d{3}$#", $_POST['matricule'])){
      // On continue le traitement
	  $erreur = 'Le matricule est incorrect';
   }
	else  {
        $base = mysql_connect (DB_HOST, USER_NAME, PASSE_WORD);
       mysql_select_db (DATA_BASE, $base);

        $sql = "SELECT count(*) as nb FROM agent WHERE matricule =' ".mysql_escape_string($_POST['matricule'])."'";
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $data = mysql_fetch_array($req);

          if ($data['nb'] == 0) {

             $sql = 'INSERT INTO 'agent' ('id', 'nom', 'prenom', 'password', 'matricule', 'privilege', 'date', 'birthday')  VALUES(NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string(md5($_POST['password'])).'", "'.mysql_escape_string($_POST['matricule']).'","'.mysql_escape_string($_POST['privilege']).'","'.birthday('Y-m-d').'"';
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                echo '<div class="succes">Agent enregistré avec succes</br></div>';
                exit();
             }
             else {
                $erreur = 'Ce matricule est déja utilisé par un utilisateur existe deja dans le systeme';
             }

          }

       }
       else {
          $erreur = 'Au moins un des champs est vide.';
       }

    }
    ?>

<div id="boxAgent">
<form action="" method="post" name="form1" id="form1">
          <table>
 <?php
   if (isset($erreur)) {
   echo '<div id="info" class="error">'.$erreur.'</div><!--error-->';
     } ?>
     <br/><br/>
     <h4>Nouvel agent</h4>

            <tr>
              <td class="td">Nom</td>
              <td> <input type="text" name="nom" class="input_ajout_agent"  value="<?php if (isset($_POST['nom']))  echo htmlentities(trim($_POST['nom'])); ?>" ></td>
            </tr>

            <tr>

              <td>Prenom</td>
              <td >
                  <input type="text" name="prenom"  class="input_ajout_agent" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>" ></td>
            </tr>

               <tr>
               <td>Mot de passe</td>
              <td >
                  <input type="password" name="password"  class="input_ajout_agent" value="<?php if (isset($_POST['password'])) echo htmlentities(trim($_POST['password'])); ?>" ></td>
            </tr>

 <tr>
    <td>Confirmer</td>
              <td >
                  <input type="password" name="pass_confirm" class="input_ajout_agent"  value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>" ></td>
            </tr>


               <tr>
                          <td>Matricule</td>
                     <td> <input type="text" class="input_ajout_agent"  name="matricule" value="<?php if (isset($_POST['matricule'])) echo htmlentities(trim($_POST['matricule'])); ?>"></td>
            </tr>

             <tr>
              <td>Privilege</td>
              <td>
			  <select name="privilege" class="input_ajout_agent"  value="<?php if (isset($_POST['privilege'])) echo htmlentities(trim($_POST['privilege'])); ?>"  >
			  <option>Administrateur</option>
			  <option>Utilisateur</option>
			  </select>
</td>
            </tr>

             </tr>
            <td>Anniversaire</td>
              <td >
                <select class="select" name="birthday"  value="<?php if (isset($_POST['birthday'])) echo htmlentities(trim($_POST['birthday'])); ?>" ><option>Date</option>
                 <option>1</option>
                <option>2</option>
                <option>3</option>
                <option>4</option>
                <option>5</option>
                <option>6</option>
                <option>7</option>
                <option>8</option>
                <option>9</option>
                <option>10</option>
                <option>11</option>
                <option>12</option>
                <option>13</option>
                <option>14</option>
                <option>15</option>
                <option>16</option>
                <option>17</option>
                <option>18</option>
                <option>19</option>
                <option>20</option>
                <option>21</option>
                <option>22</option>
                <option>23</option>
                <option>24</option>
                <option>25</option>
                <option>26</option>
                <option>27</option>
                <option>28</option>
                <option>29</option>
                <option>30</option>
                <option>31</option>
                </select>

                <select>
                <option>Mois</option>
                <option>Janvier</option>
                <option>Février</option>
                <option>Mars</option>
                <option>Avril</option>
                <option>Mai</option>
                <option>Juin</option>
                <option>Juillet</option>
                <option>Août</option>
                <option>Septembre</option>
                <option>Octobre </option>
                <option>Novembre</option>
                <option>Decembre</option>
                </select>

                <select>

                <option>Année</option>
                <option>1989</option>
                <option>1988</option>
                <option>1987</option>
                <option>1986</option>
                <option>1986</option>
                <option>1986</option>
                <option>1985</option>
                <option>1984</option>
                <option>1983</option>
                <option>1982</option>
                <option>1981</option>
                <option>1980</option>
                <option>1979</option>
                <option>1978</option>
                <option>1977</option>
                <option>1976</option>
                <option>1975</option>
                <option>1974</option>
                <option>1973</option>
                <option>1972</option>
                <option>1971</option>
                <option>1970</option>
                <option>1969</option>
                <option>1968</option>
                <option>1967</option>
                <option>1966</option>
                <option>1965</option>
                <option>1964</option>
                <option>1963</option>
                <option>1962</option>
                <option>1961</option>
                <option>1960</option>
                <option>1959</option>
                <option>1958</option>
                <option>1957</option>
                <option>1956</option>
                <option>1955</option>
                <option>1954</option>
                <option>1953</option>
                <option>1952</option>
                <option>1951</option>
                <option>1950</option>
                <option>1949</option>
                <option>1948</option>
                <option>1947</option>
                <option>1946</option>
                <option>1945</option>
                <option>1944</option>
                <option>1943</option>
                <option>1942</option>
                <option>1941</option>
                <option>1940</option>
                </select> </td>
            </tr>

             <tr>
              <td>Fonction</td>
              <td><input type="text" name="fonction"  class="input_ajout_agent"  value="<?php if (isset($_POST['fonction'])) echo htmlentities(trim($_POST['fonction'])); ?>" ></td>
            </tr>

            <tr>
                         <td><input type="reset" name="Enregistrer" class="submi" value="Recommencer" /></td>
                         <td><input type="submit" name="Enregistrer" class="submi" value="Enregistrer" /></td>
            </tr>
			</table>

</form></div>
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
au lieu de birthday('y-m-d) met $_POST['birthday']
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
<select class="select" name="jour" value="<?php if (isset($_POST['birthday'])) echo htmlentities(trim($_POST['birthday'])); ?>" ><option>Date</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>




<select name="mois">
<option>Mois</option>
<option>Janvier</option>
<option>Février</option>
<option>Mars</option>
<option>Avril</option>
<option>Mai</option>
<option>Juin</option>
<option>Juillet</option>
<option>Août</option>
<option>Septembre</option>
<option>Octobre </option>
<option>Novembre</option>
<option>Decembre</option>
</select>




<select name="annee">




<option>Année</option>
<option>1989</option>
<option>1988</option>
<option>1987</option>
<option>1986</option>
<option>1986</option>
<option>1986</option>
<option>1985</option>
<option>1984</option>
<option>1983</option>
<option>1982</option>
<option>1981</option>
<option>1980</option>
<option>1979</option>
<option>1978</option>
<option>1977</option>
<option>1976</option>
<option>1975</option>
<option>1974</option>
<option>1973</option>
<option>1972</option>
<option>1971</option>
<option>1970</option>
<option>1969</option>
<option>1968</option>
<option>1967</option>
<option>1966</option>
<option>1965</option>
<option>1964</option>
<option>1963</option>
<option>1962</option>
<option>1961</option>
<option>1960</option>
<option>1959</option>
<option>1958</option>
<option>1957</option>
<option>1956</option>
<option>1955</option>
<option>1954</option>
<option>1953</option>
<option>1952</option>
<option>1951</option>
<option>1950</option>
<option>1949</option>
<option>1948</option>
<option>1947</option>
<option>1946</option>
<option>1945</option>
<option>1944</option>
<option>1943</option>
<option>1942</option>
<option>1941</option>
<option>1940</option>
</select>
et au niveau de php au lieu de mettre birthday('Y-m-d'), mets
switch(strtoupper($_POST['mois'])){
case 'JANVIER': $mois='01'; break;
case 'FEVRIER': $mois='02'; break;
.
.
.
}

$_POST['annee'].'-'.$mois.'-'.$_POST['jour']
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Ok, j'essaie et je te dis quoi. Merci beaucoup
Mais je n'ai pas compris une chose par rapport à ceci :
case 'JANVIER': $mois='01'; break;
case 'FEVRIER': $mois='02'; break;
.
.
. 
Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
79
il faut mettre des value aux options

<option value="01">Janvier</option>
<option value="02">Février</option>
<option value="03">Mars</option> 
...



plutot que d'utiliser des listes à rallonge et pour etre sur d'avoir une date valide

je te conseille d'utiliser un calendrier :

par exemple avec jquery : https://jquery.com/
et tu ajoutes le plugin datepicker : https://jqueryui.com/datepicker/
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
je pense qu'il est débutant, utiliser jquery dans son cas serait du chinois
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
777
Il n'est pas si débutant que ça mais ne lis pas toujours les réponses en entier !
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
777
Hello,

glodybiss tu t'égares : d'où sort cette fonction "birthday" ?!
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
tu devrais utiliser ça
 str_replace ( '/', '-', $_POST['dateactiv'])
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Pars error

$sql = 'INSERT INTO 'membre' ('id', 'nom', 'prenom', 'password', 'matricule', 'privilege', 'date', 'birthday')  VALUES(NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string(md5($_POST['password'])).'", "'.mysql_escape_string($_POST['matricule']).'","'.mysql_escape_string($_POST['privilege']).'","'.str_replace ( '/', '-', $_POST['birthday]).'"';
Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
79
2 erreurs :

- 8 champs a insérer , et seulement 7 dans VALUES
- la parenthèse de VALUES n'est pas fermer
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
J'suis revenu Mihak pour te remercier et t'informer aussi que j'avais fini avec ce petit truc que je faisais mais toutefois avec les sites web on ne fini jamais il faut toujours personnaliser pour atteindre un niveau de perfection qui va satisfaire son coeur et être à la page des nouvelles fonctions qui apparaissent chaque jour, donc j'aurai toujours besoin de vous à tout moment. Grand merci aussi à ceux qui n'ont pas arrêté de me répondre pendant que j'étais toujours bloqué dans ce que je faisais. Thanks !
Messages postés
4311
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
777
Copié collé ;-)))