Erreur avec php pour la date (mysql)

Résolu
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   -  
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   -
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!



A voir également:

5 réponses

maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
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
0
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   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 !
0
pitxu Messages postés 689 Date d'inscription   Statut Membre Dernière intervention   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 ?
0
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   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.
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
les informations du birthday viennent du formulaire?
0
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   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>
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
au lieu de birthday('y-m-d) met $_POST['birthday']
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   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']
0
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   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;
.
.
. 
0
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
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/
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
je pense qu'il est débutant, utiliser jquery dans son cas serait du chinois
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Il n'est pas si débutant que ça mais ne lis pas toujours les réponses en entier !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Hello,

glodybiss tu t'égares : d'où sort cette fonction "birthday" ?!
0
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   9
 
Salut Mihawk, je suis là! Je veux juste prendre le temps de travailler dessus parce que juste là ça ne marche pas, j'ai changé mon code en utilisant cette fois-ci date picker, la fonction birthday représente la date d'anniversaire d'un membre dans ma base des données, lorsqu'un membre s'inscrit.
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
Oui mais "la fonction birthday représente la date d'anniversaire d'un membre dans ma base des données" ça ne veut rien dire ! Une fonction ne représente pas une donnée !
0
glodybiss Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   9
 
Salut Mihawk, J'ai encore refait mon code et j'ai utiliser cette fois-ci la date picker mais il se peut que le problème (J'ai toujours ceci dans ma base des données : 0000-00-00)persistes regarde à que ressemble ce que j'ai fait :

$sql = 'INSERT INTO 'cyb_site'('id', 'dateactiv', 'dateinstall') VALUES
(NULL, "'.$_POST['dateactiv'].'" , "'.$_POST['dateinstall'].'")' 


html :

<table><tr>
            <td>Date activation</td>
              <td > <input type="text" id="datepicker" name="dateactiv"  class="input_ajout_agent" value="<?php if (isset($_POST['dateactiv'])) echo htmlentities(trim($_POST['dateactiv'])); ?>" >
                 </td>
            </tr>
            <tr>
             <td>Date installation</td>
              <td >
			   <input type="text" id="datepicker2" name="dateinstall"  class="input_ajout_agent" value="<?php if (isset($_POST['dateinstall'])) echo htmlentities(trim($_POST['dateinstall'])); ?>" >
                 </td>
            </tr></table>
0
Mihawk Messages postés 4315 Date d'inscription   Statut Contributeur Dernière intervention   846
 
À première vue aucun problème...
Et le traitement des tes POST ?
0
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
si il y a un problème, la date que tu recuperes en POST est un format francais (je supppose)

et la date que tu dois mettre en base de données est un format anglo-saxons

donc tu dois transformer la date :

STR_TO_DATE('".$_POST['dateactiv']."','%d/%m/%Y')
0