Votre question

Probleme avec les variables de session

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
21 Juin 2010 22:31:32

j'ai un souci avec mes varibales de session,en fait j'utilise un formulaire pour me connecté,sa marche sans probleme,seulement je veux arriver à gerer un delai d'expiration,si le delai expire alors l'utilisateur est appelé a se reconnecté,j'affiche le formulaire de connexion.voila ce que j'ai fais mais j'ai l'impression que quelque chose cloche la dedans,voici un bout de mon code:

  1. if (isset($_POST["valider"]))
  2. {
  3. $link = mysql_connect("localhost", "root", "pytheas") or die();
  4. $db = mysql_select_db("grh") or die();
  5. $query = "select * from utilisateur where login='" .
  6. addslashes($_POST["utilisateur"]) . "' and password = '"
  7. . addslashes($_POST["password"]) . "'";
  8. $result = mysql_query($query) or die();
  9. $row=mysql_fetch_row($result);
  10. if ($row )
  11. {
  12. $login =$_POST['utilisateur'];
  13. $pass =$_POST['password'];
  14. $_SESSION['login']=$login;
  15. $_SESSION['pass']=$pass;
  16. $_SESSION['date_debut'] = time();//initialisation du debut de la session
  17. if (time() - $_SESSION['date_debut'] >= 300) //si delai depasse 5mn alors se reconnecter
  18. exit('<a href="login.php">delai expiré</a>');//redirection vers le formulaire de connexion
  19. else
  20. $_SESSION['date_debut'] = time();//sinon je raffraichit le debut de la session
  21.  
  22.  
  23. require("acceuil.php");
  24. }

je précise qu'au debut du j'ai ecris session_start()
mais sur ma page acceuil ma session ne s'expire pas,et quand j'ecris en debut de ma page acceuil session_start() suivi de:
  1. <?php
  2. //session_start();
  3. $_SESSION['date_debut'] = time();
  4. if (time() - $_SESSION['date_debut'] >= 300)
  5. { echo 'Session expiré !'; afficheformulaire(); die;}
  6. else
  7. {
  8. $_SESSION['date_debut'] = time();
  9. ?>

il y'a un msg d'erreur du genre:
Notice: A session had already been started - ignoring session_start() in C:\Program Files\EasyPHP 3.0\www\acceuil.php on line 2
quelqu'un pourait-il m'aider.

Autres pages sur : probleme variables session

24 Juin 2010 21:15:09

qui peut me montré comment afficher le résultat d'une recherche comportant plusieurs enregistrements de page en page.par exemple si ma requête comporte 20 enregistrement pouvoir les affichés par groupe de 5 sur chaque page,donc logiquement 4 pages.merci.c'est urgent.
m
0
l
Contenus similaires
25 Juin 2010 23:01:43

merci pour ce lien je l'ai parcouru,il répond à ma question mais j'ai un petit problème.
voila j'ai ecrit tout mon code php sur une seule page en fait en voici le debut:<form name="recherche" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
[/b]
et celui permettant de gerer ma pagination ci-dessous:

  1. echo'<p align="center"> Page:';
  2. for($i=1;$i<=$nbpage;$i++)
  3. {
  4. if($i==$pageActuelle )
  5. echo ' [ '.$i.' ] ';
  6. else
  7. echo'<a href="rechercer.php?page='.$i.'>'.$i.'</a>';
  8. }
  9. echo'</p>';


il affiche effectivement le nombre de page et le numero de la page courante entre crochet [] seulement quand je clique sur le numero de la page suivante il me redirige vers mon formulaire au lieu de la page demandée,je ne sais pas si c'est dû à ce lien là:echo'<a href="rechercer.php?page='.$i.'>'.$i.'</a>';si c'est le cas alors que dois-je faire.Merci
m
0
l
28 Juin 2010 21:58:56

J'espère que ça aidera

  1. <?php
  2. /* Prépare les pages */
  3. $totalDesMessages = 150;
  4. $nombreDeMessagesParPage = 15;
  5.  
  6. // 150 / 15 arrondis = 10
  7. $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
  8.  
  9.  
  10. /* Nombre de pages */
  11. // Ternaire qui dit "Si $_GET['page'] n'hesite pas => 1 Sinon on contraint le numérique avec intval()
  12. $page = (!isset($_GET['page'])) ? 1 : intval($_GET['page']);
  13.  
  14. // On est sur la page 2, donc 2 - 1 *15 (qui est le nombre de message) = 15
  15. $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
  16. $DerniereMessageAafficher = $premierMessageAafficher + $nombreDeMessagesParPage;
  17.  
  18. // $premierMessageAafficher a la valeur 15 et le nombre
  19. $requete =mysql_query("SELECT *
  20. FROM table
  21. LIMIT " . $premierMessageAafficher . ", " . $DerniereMessageAafficher . " ")or die(mysql_error());
  22. ?>



Ca a l'air compliqué comme ça, et pourtant...

  1. <?php
  2. for ($i = 1 ; $i <= $nombreDePages ; $i++)
  3. { /* On affiche pas la page actuelle en lien */
  4. if ($i == $page) {echo $i;}
  5. else{echo '<a href="messagerie-consulter.php?page=' . $i .'">' . $i . '</a> ';}
  6. }
  7. ?>



Voilà, compliqué comme dire bonjour
m
0
l
29 Juin 2010 10:52:37

A la fin chaqu'un des enregistrements renvoyés par "SELECT",j'ai deux boutons supprimer et ajouter,j'aimerais qu'au click par exemple du bouton Supprimer,une confirmation me soit demandée avant de procéder à la suppression réelle de l'enregistrement en question,pouvez vous me guider sur la logique à suivre?comme exactement l'interface de PhpMyAdmin.j'ai tenté d'utilisé une fonction javascript pour gerer la confirmation que voici:

  1. <script type="text/JavaScript">
  2. function onSupprimer()
  3. {
  4. for (i = 0; i < document.rechercher.elements.length; i++)
  5. if (document.rechercher.elements[i].supp.value) /*supp=nom du bouton supprimer*/
  6. if (confirm("Êtes-vous sûr de vouloir supprimer cet employé?"))
  7. {
  8. document.rechercher.action="supprimer.php";
  9. document.rechercher.submit();
  10. }
  11. }


et puis

  1. if(isset($_POST['supp']))
  2. {
  3. $_nbr=mysql_query("select count(numero) from employes");
  4. for($a=1;$a<=$nbr;$a++)
  5.  
  6.  
  7. }


mais je me rends compte que cette logique supprimera tout mes enregistrements.

je pensais à créer un tableau à 2 dimensions qui contiendrai le nombre total d'enregistrement de ma base et le nombre de champs du genre:

employe[total][champ] et créer un compteur qui pour l'enregistrement i selectionné le supprimera.je ne sais pas si ma logique tient?
m
0
l
a c 232 L Programmation
29 Juin 2010 11:23:34

Salut,

Est-ce que tu pourrais fournir le code HTML de ton formulaire.
En ajoutant un onsubmit sur ton form, tu devrais pouvoir annuler la suppression si tu réponds non.

Quelque chose du genre:
  1. <form ... onsubmit='return confirm("Etes vous sûr ?");'>
  2. ...
  3. </form>
m
0
l
30 Juin 2010 00:32:15

voici en fait le code qui me permet d'avoir mes enregistrements je je range dans un tableau.ces enregistrements proviennent en fait a partir d'un formulaire que l'utilisateur aura rempli.c'est à ce tableau qui contient les enregistrements là que je veux associer mes boutons "Supprimer" et "Modifier" voici le code:

<table width="1000" height="100" align="center" border="" bordercolor="#33ff33" bgcolor="#CC3366">
<tr>
<td ><b>Numero</b></td>
<td ><b>Nom</b></td>
<td ><b>Prenom</b></td>
<td ><b>genre</b></td>
<td ><b>Date de Naissance</b></td>
<td><b>Date D\'embauche</b></td>
<td ><b>Salaire Brut</b></td>
<td ><b>Sitmat</b></td>
<td ><b>Nombre D\'enfant</b></td>
<td ><b>Telephone</b></td>
<td ><b>Email</b></td>
<td ><b>Loisir</b></td>
</tr>
<?php
while($row=mysql_fetch_array($result))
{
?>
<tr>
<td width="100"><?php echo $row[0];?></td>
<td width="100"><?php echo $row[1];?></td>
<td width="100"><?php echo $row[2];?></td>
<td width="100"><?php echo $row[3];?></td>
<td width="100"><?php echo $row[4];?></td>
<td width="100"><?php echo $row[5];?></td>
<td width="100"><?php echo $row[6];?></td>
<td width="100"><?php echo $row[7];?></td>
<td width="100"><?php echo $row[8];?></td>
<td width="100"><?php echo $row[9];?></td>
<td width="100"><?php echo $row[10];?></td>
<td width="100"><?php echo $row[12];?></td>
<td width="100"><input type="submit" name="modif" value="Modifier" />/*bouton à la fin de la derniere colone, pour me permettre de supprimer l'enregistrement en question*/
<td width="100"><input type="submit" name="supp" value="Supprimer" onClick="return onSupprimer();" />
</tr>
aidez avec la façon de pouvoir le faire.Merci
m
0
l
30 Juin 2010 10:30:11

Mon problème est le suivant :
J’ai organisé les enregistrements renvoyés par mon select dans un tableau,et pour chacun d’eux j’ai mis un bouton « Supprimer » à la fin,de sorte que l’utilisateur puisse supprimer l’enregistrement si
Il le souhaite.Lorsque l’utilisateur clique sur le bouton supprimer,une boite de dialogue lui demandant confirmation apparait,s’il clique sur ok il y’a suppression dudit enregistrement sinon rien ne se passe .seulement je ne sais pas comment écrire le code,y’a-t-il quelqu’un qui puisse m’aider avec le code de cet algo ?c’est urgent.merci d’avance.
m
0
l
a c 232 L Programmation
30 Juin 2010 11:01:25

Bah il faut avoir l'ID de ton élément à supprimer, que tu mets dans un input de type hidden par exemple.
Et quand tu valideras la suppression, tu auras ton ID dans une variable PHP.
m
0
l
30 Juin 2010 12:10:09

mais comment je peux le faire,en fait je vois à peu près l'algo,mais je ne sais comment le transcrire en php.pouvez m'ecrire le code,ou me donner un lien vers un sujet qui traite du meme cas?
m
0
l
a c 232 L Programmation
30 Juin 2010 13:25:04

HTML:
  1. <td width="100"><input type="submit" name="modif" value="Modifier" />
  2. <td width="100"><input type="hidden" name="numero" value="<?php echo $row['numero']; ?>" /> <input type="submit" name="supp" value="Supprimer" onClick="return onSupprimer();" />


Et pour supprimer l'élément, exécuter une requête SQL suffit:
  1. DELETE FROM employes WHERE numero = $_POST['numero']


(C'est la requête minimale, mais il va falloir l'arranger pour ne pas avoir de problème d'SQL Injection par exemple)
m
0
l
1 Juillet 2010 11:06:01

j'ai un un autre problème concernant la pagination,quand je clique sur la page suivante il ne m'amène pas sur la page mais sur le formulaire.je ne sais pas pouquoi?
voici mon code:

  1. $nb_par_page = 6;
  2. $nb_total=mysql_query( "SELECT COUNT(numero) as total FROM employes");
  3. $row =mysql_fetch_assoc($nb_total);
  4. $total=$row['total'];
  5. $nbpage=ceil($total/$nb_par_page);
  6. if(isset($_GET['page']))
  7. {
  8. $pageActuelle=intval($_GET['page']);
  9. if($pageActuelle > nbpage)
  10. $pageActuelle =nbpage;
  11. }
  12. else
  13. $pageActuelle=1;
  14. $premierElement = ($pageActuelle -1) * $nb_par_page;
  15. $query.=sprintf(" LIMIT %d,%d;",$premierElement,$nb_par_page);
  16. $result=mysql_query($query);
  17. $row=mysql_fetch_array($result);
  18. if(!$row)
  19. echo'ancun resultat';
  20. else
  21. {
  22. ?>
  23. <table width="1000" height="100" align="center" border="" bordercolor="#33ff33" bgcolor="#CC3366">
  24. <tr>
  25. <td ><b>Numero</b></td>
  26. <td ><b>Nom</b></td>
  27. <td ><b>Prenom</b></td>
  28. <td ><b>genre</b></td>
  29. <td ><b>Date de Naissance</b></td>
  30. <td><b>Date D\'embauche</b></td>
  31. <td ><b>Salaire Brut</b></td>
  32. <td ><b>Sitmat</b></td>
  33. <td ><b>Nombre D\'enfant</b></td>
  34. <td ><b>Telephone</b></td>
  35. <td ><b>Email</b></td>
  36. <td ><b>Loisir</b></td>
  37. </tr>
  38. <?php
  39.  
  40. while($row=mysql_fetch_array($result))
  41. {
  42. ?>
  43.  
  44. <tr>
  45. <td width="100"><?php echo $row[0];?></td>
  46. <td width="100"><?php echo $row[1];?></td>
  47. <td width="100"><?php echo $row[2];?></td>
  48. <td width="100"><?php echo $row[3];?></td>
  49. <td width="100"><?php echo $row[4];?></td>
  50. <td width="100"><?php echo $row[5];?></td>
  51. <td width="100"><?php echo $row[6];?></td>
  52. <td width="100"><?php echo $row[7];?></td>
  53. <td width="100"><?php echo $row[8];?></td>
  54. <td width="100"><?php echo $row[9];?></td>
  55. <td width="100"><?php echo $row[10];?></td>
  56. <td width="100"><?php echo $row[12];?></td>
  57. <td width="100"><input type="submit" name="modif" value="Modifier" />
  58. <td width="100"><input type="submit" name="supp" value="Supprimer" id="<?php echo $row[0];?></td>" onClick="return onSupprimer();" />
  59. </tr>
  60. <?php
  61. }//fin while
  62. echo'<p align="center"> Page:';
  63. for($i=1;$i<=$nbpage;$i++)
  64. {
  65. if($i==$pageActuelle )
  66. echo ' [ '.$i.' ] ';
  67. else
  68. echo '<a href="rechercer.php?page='.$i.'">Page '.$i.'</a> - ';
  69. /*recherce est le nom de mon formulaire*/
  70. }
  71. echo'</p>';
  72.  
  73.  
  74. }//fin pti else
  75. }//fin du grd
m
0
l
a c 232 L Programmation
1 Juillet 2010 12:21:45

A mon avis, il va nous falloir le code qu'il y a avant ça.
S'il t'amène sur la page 1, tu as un soucis au niveau de la pagination, mais s'il t'amène sur ton formulaire (qu'est ce que ton formulaire d'ailleurs ?), c'est que y'a quelque chose avant qui le fait aller sur le formulaire.


Et niveau clareté, c'est certainement mieux d'avoir deux pages différentes, une qui affiche les détails (page 1, page 2...) et une qui affiche ton formulaire, ça évite de se perdre...


Et au passage, en faisant :
  1. $result=mysql_query($query);
  2. $row=mysql_fetch_array($result);
  3. if(!$row)
  4. echo'ancun resultat';


Ta 2ème ligne récupère les premières données récupérées par ta requête SQL, et elles ne seront jamais affichées.
Tu as la fonction mysql_num_rows pour savoir le nombre de ligne, et si c'est égal à 0 afficher "aucun résultat".
m
0
l
1 Juillet 2010 15:40:49

voici le code de mon formulaire,en fait c'est formulaire multicritère demandant à l'utilisateur d'entrer ou de cocher ces critères en fonction desquels une recherche est faites dans la bd et les résultats,s'il en existe plusieurs sont affichés de page en page.voici le code de mon formulaire en question,il est un peu long,et c'est net après ce code que vient celui de la pagination posté en haut:

  1. <body>
  2. <?php
  3. function afficherformulaire ($u = '', $error = '')
  4. {
  5. if ($error != '')
  6. echo '<font color="red">' . $error . '</font>';
  7. ?>
  8. <form name="recherche" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  9. <table width="800" border="0" align="center" height="75" bgcolor="#0099FF">
  10. <tr>
  11. <td width="500" align="center" colspan="2" height="0">
  12. <h1><b><font color="#FF0000"><marquee>Ceci est un formulaire de rechercher entrez y vos critères.</marquee></font></b></h1>
  13. </td>
  14. <tr><td width="792" colspan="2">
  15. <b>Numero</b>
  16. <input type="text" name="numero" />
  17. </td>
  18. </tr>
  19. <tr><td width="792">
  20. <b>Nom</b>
  21. <input type="text" name="nom" />
  22. </td></tr>
  23. <tr><td width="792"><b>Prenom</b>
  24. <input type="text" name="prenom" />
  25. </td></tr>
  26. <tr><td width="792">
  27. <b>Genre</b>
  28. <input type="radio" name="genre" value="masculin" />Masculin<input type="radio" name="genre" value="feminin"/>Feminin</td></tr>
  29. <tr><td width="792">
  30. <b>Date de Naissance:</b>
  31. <input type="radio" name="datnaiss" value="moins" />Moins de 30 ans<input type="radio" name="datnaiss" value="plus" />Plus de 30 ans
  32. </td></tr>
  33. <tr><td width="792">
  34. <b>Date D'embauche:</b>
  35. <input type="radio" name="datemb" value="inferieur" />Inferieur ou égale à 2000<input type="radio" name="datemb" value="superieur" />Supérieur à 2000
  36. </td></tr>
  37. <tr><td width="792">
  38. <b>Salaire Brut:</b>
  39. <input type="radio" name="salbrut" value="minore" />compris entre [0-150000]<input type="radio" name="salbrut" value="majore" />Entre [15000-et plus]
  40. </td></tr>
  41. <tr><td width="792">
  42. <b>Situation Matrimoniale:</b>
  43. <input type="radio" name="sitmat" value="celibataire" />Celibataire<input type="radio" name="sitmat" value="marie" />Marié<input type="radio" name="sitmat" value="veuf" />Veuf<input type="radio" name="sitmat" value="divorce" />Divorcé
  44. </td></tr>
  45. <tr><td width="792">
  46. <b>Nombre D'enfants:</b>
  47. <input type="radio" name="nbenf" value="plusde" />Plus de 5<input type="radio" name="nbenf" value="moinsde" />Moins de 5
  48. </td></tr>
  49. <tr><td width="792">
  50. <b>Numero de Télephone:</b>
  51. <input type="text" name="tel" /><br/>
  52. </td></tr>
  53. <tr><td width="792">
  54. <b>Email:</b>
  55. <input type="text" name="mail" /><br/>
  56. </td></tr>
  57.  
  58. <tr>
  59.  
  60. <td>
  61. <b>Loisir:</b>
  62. <input type="radio" name="loisir" value="cinema"/>Cinema
  63. <input type="radio" name="loisir" value="musique"/>Musique
  64. <input type="radio" name="loisir" value="litterature"/>Littérature
  65. <input type="radio" name="loisir" value="sport"/>Sport
  66. <input type="radio" name="loisir" value="religion"/>Religion
  67. <input type="radio" name="loisir" value="telesision"/>Télévision
  68. <input type="radio" name="loisir" value="politique"/>Politique
  69. </td>
  70. </tr>
  71. <tr><td width="792" align="center"><input type="submit" name="valider" value="rechercher" /></td></tr>
  72. </table>
  73. </form>
  74. <?php
  75. }//fin fonction
  76. ?>
  77. <!--<script type="text/JavaScript">
  78. function onSupprimer()
  79. {
  80. <a href="?action=delete&id='.$id.'" onclick="return confirm('Supprimer ? OK = oui, Annuler = Non');" value="supprimer">Supprimer cet employé</a>
  81. }
  82. </script>-->
  83.  
  84.  
  85.  
  86. <?php
  87. if(!isset($_GET['valider']))
  88. afficherformulaire();
  89. else
  90. {
  91. $link=mysql_connect("localhost","root","pytheas");
  92. $db=mysql_select_db("grh");
  93.  
  94. $genre=$_GET['genre'];
  95. $numero=$_GET['numero'];
  96. $nom=$_GET['nom'];
  97. $prenom=$_GET['prenom'];
  98. $nbenf=$_GET['nbenf'];
  99. $datnaiss =$_GET['datnaiss'];
  100. $datemb=$_GET['datemb'];
  101. $salbrut=$_GET['salbrut'];
  102. $tel=$_GET['tel'];
  103. $mail=$_GET['mail'];
  104. $sitmat=$_GET['sitmat'];
  105. $loisir=$_GET['loisir'];
  106.  
  107. if($genre!='')
  108. $query="select * from employes where genre='".$genre."'";
  109. if($nom!='')
  110. $query="select * from employes where nom= '".$nom."'";
  111. if($prenom!='')
  112. $query="select * from employes where prenom= '".$prenom."'";
  113. if(($nbenf!='')&&($nbenf=='plusde'))
  114. $query="SELECT * FROM employes WHERE nbenf >=5 ";
  115. if(($nbenf!='')&&($nbenf=='moinsde'))
  116. $query="select * from employes where nbenf < 5";
  117. if($tel!='')
  118. $query="select * from employes where tel= '".$tel."'";
  119. if($mail!='')
  120. $query="select * from employes where email like '".$mail."'";
  121. if($numero!='')
  122. $query="select * from employes where numero= '".$numero."'";
  123. if(($salbrut!='') &&($salbrut=='minore'))
  124. $query="select * from employes where salbrut < 150000";
  125. if(($salbrut!='')&& ($salbrut=='majore'))
  126. $query="select * from employes where salbrut >=150000";
  127. if(($datnaiss!='')&& ($datnaiss=='moins'))
  128. $query="SELECT * FROM employes WHERE (date_format( now( ) , '%Y' ) - substr( datnaiss, 1, 4 ))<30";
  129. if(($datnaiss!='')&& ($datnaiss=='plus'))
  130. $query="SELECT * FROM employes WHERE (date_format( now( ) , '%Y' ) - substr( datnaiss, 1, 4 ) ) >=30";
  131. if(($datemb!='')&& ($datemb=='inferieur'))
  132. $query="select * from employes where substr(datembauche,1,4) <2000";
  133. if(($datemb!='')&& ($datemb=='superieur'))
  134. $query="select * from employes where substr(datembauche,1,4)>=2000";
  135. if($sitmat!='')
  136. $query="select * from employes where sitmat='".$sitmat."'";
  137. if($loisir!='')
  138. $query="select * from employes where loisir='".$loisir."'";


je tient qu'il affiche les resultat sur la premiere ,mais dès que je clique sur le lien de la page suivante il me ramène sur mon formulaire,je me demande si je ne doit pas créer des variables de session pour les envoyer de page en page.

m
0
l
a c 232 L Programmation
1 Juillet 2010 18:03:35

D'accord, je vois.

C'est tout simplement parce que tu ne repasses pas les valeurs de ton formulaire quand tu passes à la page suivante, tu appelles seulement "rechercher.php?page=2", sans spécifier tous les paramètres qui avaient déjà été saisis.

Deux solutions: soit tu les repasses, soit tu les stockes pour les réutiliser en page 2.
m
0
l
2 Juillet 2010 00:49:42

ok si vous aussi vous pensez aux variables de session donc c'est cela mon probleme,mais c'est exactement ou que je dois les déclarées,je pensais à les déclarées net après le:while($row=mysql_fetch_array($result))
comme çà:
while($row=mysql_fetch_array($result))
{
/* là, à ce niveau,je ne sais pas si c'est le bon endroit*/
$nbre++;
$_SESSION['nom'] = $_GET['nom'];
$_SESSION['prenom'] =$_GET['prenom'];

?>

<tr>
<td width="100"><?php echo $row[0];?></td>
<td width="100"><?php echo $row[1];?></td>
<td width="100"><?php echo $row[2];?></td>
<td width="100"><?php echo $row[3];?></td>
<td width="100"><?php echo $row[4];?></td>
<td width="100"><?php echo $row[5];?></td>
<td width="100"><?php echo $row[6];?></td>
<td width="100"><?php echo $row[7];?></td>
<td width="100"><?php echo $row[8];?></td>
<td width="100"><?php echo $row[9];?></td>
<td width="100"><?php echo $row[10];?></td>
<td width="100"><?php echo $row[12];?></td>
<form name="gererbouton" method="get"action=""/></td>
<td width="100"><input type="submit" name="modif" value="Modifier" /></td>
<td width=""><td width="100"><input type="hidden" name="numero" value="<?php echo $row[0]; ?>" /><input type="submit" name="supp" value="Supprimer"onClick="return onSupprimer();" /></td>

</tr>
m
0
l
a c 232 L Programmation
2 Juillet 2010 01:09:52

Si tu les déclares dans une boucle while, ça va s'exécuter autant de fois qu'il y a d'éléments dans ta requête.
Il n'y a aucun rapport entre les paramètres passés de ton formulaire et les résultats de ta requête SQL. Aucune raison de mettre ça dans le while.
Tu mets ça tout simplement au début de ton script, une fois que tu as récupérés les valeurs.
m
0
l
3 Juillet 2010 15:54:37

j'ai un problème que je n'arrive toujours pas à resoudre,ce qui fais buggué peut-etre mon code.j'utilise des boutons radio dans mon formulaire,mais il se trouve que le système trouve des erreurs dans les noms de ces variables,ce qui m'etonne vraiment,j'ai vérifier à plusieurs reprise sans appercevoir la moindre petite erreur,il me met des erreur du genre:
Notice: Undefined index: nbenf in C:\Program Files\EasyPHP 3.0\www\grh\rechercer.php on line 107

Notice: Undefined index: datnaiss in C:\Program Files\EasyPHP 3.0\www\grh\rechercer.php on line 108

Notice: Undefined index: datemb in C:\Program Files\EasyPHP 3.0\www\grh\rechercer.php on line 109

Notice: Undefined index: salbrut in C:\Program Files\EasyPHP 3.0\www\grh\rechercer.php on line 110

Notice: Undefined index: sitmat in C:\Program Files\EasyPHP 3.0\www\grh\rechercer.php on line 113

Notice: Undefined index: loisir in C:\Program Files\EasyPHP 3.0\www\grh\rechercer.php on line 114
et c'est lignes sont les lignes ou il existe des boutons radio,ce qui paralyse mes requetes puisque le système ne reconnait plus ces variables,en plus cela m'empèche réelement d'évoluer,prière à vous de m'aider.Merci
m
0
l
3 Juillet 2010 16:14:42

j'oubliais voici le code de mon formulaire:
  1. <?php session_start(); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <title>Aout</title>
  7. </head>
  8.  
  9. <body>
  10. <?php
  11.  
  12. function afficherformulaire ($u = '', $error = '')
  13. {
  14. if ($error != '')
  15. echo '<font color="red">' . $error . '</font>';
  16. ?>
  17. <form name="recherche" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  18. <table width="800" border="0" align="center" height="75" bgcolor="#0099FF">
  19. <tr>
  20. <td width="500" align="center" colspan="2" height="0">
  21. <h1><b><font color="#FF0000"><marquee>Ceci est un formulaire de rechercher entrez y vos critères.</marquee></font></b></h1>
  22. </td>
  23. <tr><td width="792" colspan="2">
  24. <b>Numero</b>
  25. <input type="text" name="numero" />.
  26. </td>
  27. </tr>
  28. <tr><td width="792">
  29. <b>Nom</b>
  30. <input type="text" name="nom" />
  31. </td></tr>
  32. <tr><td width="792"><b>Prenom</b>
  33. <input type="text" name="prenom" />
  34. </td></tr>
  35. <tr><td width="792">
  36. <b>Genre</b>
  37. <input type="radio" name="genre" value="masculin" />Masculin<input type="radio" name="genre" value="feminin"/>Feminin</td></tr>
  38. <tr><td width="792">
  39. <b>Date de Naissance:</b>
  40. <input type="radio" name="datnaiss" value="moins" />Moins de 30 ans<input type="radio" name="datnaiss" value="plus" />Plus de 30 ans
  41. </td></tr>
  42. <tr><td width="792">
  43. <b>Date D'embauche:</b>
  44. <input type="radio" name="datemb" value="inferieur" />Inferieur ou égale à 2000<input type="radio" name="datemb" value="superieur" />Supérieur à 2000
  45. </td></tr>
  46. <tr><td width="792">
  47. <b>Salaire Brut:</b>
  48. <input type="radio" name="salbrut" value="minore" />compris entre [0-150000]<input type="radio" name="salbrut" value="majore" />Entre [15000-et plus]
  49. </td></tr>
  50. <tr><td width="792">
  51. <b>Situation Matrimoniale:</b>
  52. <input type="radio" name="sitmat" value="celibataire" />Celibataire<input type="radio" name="sitmat" value="marie" />Marié<input type="radio" name="sitmat" value="veuf" />Veuf<input type="radio" name="sitmat" value="divorce" />Divorcé
  53. </td></tr>
  54. <tr><td width="792">
  55. <b>Nombre D'enfants:</b>
  56. <input type="radio" name="nbenf" value="plusde" />Plus de 5<input type="radio" name="nbenf" value="moinsde" />Moins de 5
  57. </td></tr>
  58. <tr><td width="792">
  59. <b>Numero de Télephone:</b>
  60. <input type="text" name="tel" /><br/>
  61. </td></tr>
  62. <tr><td width="792">
  63. <b>Email:</b>
  64. <input type="text" name="mail" /><br/>
  65. </td></tr>
  66.  
  67. <tr>
  68.  
  69. <td>
  70. <b>Loisir:</b>
  71. <input type="radio" name="loisir" value="cinema"/>Cinema
  72. <input type="radio" name="loisir" value="musique"/>Musique
  73. <input type="radio" name="loisir" value="litterature"/>Littérature
  74. <input type="radio" name="loisir" value="sport"/>Sport
  75. <input type="radio" name="loisir" value="religion"/>Religion
  76. <input type="radio" name="loisir" value="telesision"/>Télévision
  77. <input type="radio" name="loisir" value="politique"/>Politique
  78. </td>
  79. </tr>
  80. <tr><td width="792" align="center"><input type="submit" name="valider" value="rechercher" /></td></tr>
  81. </table>
  82. </form>
  83. <?php
  84. }//fin fonction
  85. ?>
m
0
l
a c 232 L Programmation
3 Juillet 2010 20:04:01

Ce ne sont que des "Notice", des messages d'informations pas importants.
Tu peux les supprimer soit en définissant tes variables avant de les utiliser, soit enlever l'affichage des Notice
m
0
l
10 Juillet 2010 16:59:37

salut,j'ai un soucie que j'aimerais partage avec vous afin que vous m'aidez.j'utilise 3 champs de sélection dans un formulaire d'ajout d'enregistrement dans ma base,afin de gérer les dates,2 dates donc 6 champs de sélection,mon insertion fonctionne sans problème,mais dans la modification de l'enregistrement j'ai un souci,j'utilise en fait une fonction "afficherformulaire()" qui me permet lorsque l'utilisateur clique sur le bouton modifié de l'enregistrement qu'il souhaite modifier d'afficher le formulaire avec en parametre ces informations,donc formulaire affiché avec les valeurs dans les differents champs,j'ai réussit à gerer le cas du bouton radio genre,c'est à dire qu'à laffichage du formulaire si l'utilisateur est du genre "masculin" masculin est coché s'il est du genre" feminin " feminin est coché egalement,mais je ne sais pas comment pouvoir gerer le cas des champs de selection à l'affichage.je voudrais que lors de l'affichage,il affiche dans les champs correspondants les valeurs jour, mois,et année.voici le code de ma fonction afficherformulaire():excuser moi pour sa longueur:

  1. function afficherformulaire ($num='',$nom='',$prenom='',$genre='masculin',$dn='',$de='',$sal='',$error = '')
  2. {
  3. if ($error != '')
  4. echo '<font color="red">' . $error . '</font>';
  5. ?>
  6. <form name="form1" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  7. <input type="hidden"name="MAX_FILE_SIZE"value="1000000">
  8. <table width="800" height="200" border="0" bgcolor="#FFFFCC">
  9. <td><b>Numero:</b></td><td width="492"><input type="text" name="numero" value="<?php echo $num; ?>"> <br/></td>
  10. </tr>
  11. <tr>
  12. <td><b>Nom:</b></td><td><input type="text" name="nom" value="<?php echo $nom; ?>"><br/></td>
  13. </tr>
  14. <tr>
  15. <td><b>Prenom: </b></td> <td><input type="text" name="prenom" value="<?php echo $prenom; ?>" %2
m
0
l
a c 232 L Programmation
10 Juillet 2010 19:52:06

Doit manquer un bout, non ?
m
0
l
10 Juillet 2010 22:34:19

c'est vrai,je vous remet le code:


  1. function afficherformulaire ($num='',$nom='',$prenom='',$genre='masculin',$dn='',$de='',$sal='',$error = '')
  2. {
  3. if ($error != '')
  4. echo '<font color="red">' . $error . '</font>';
  5. ?>
  6. <form name="form1" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  7. <input type="hidden"name="MAX_FILE_SIZE"value="1000000">
  8. <table width="800" height="200" border="0" bgcolor="#FFFFCC">
  9. <td><b>Numero:</b></td><td width="492"><input type="text" name="numero" value="<?php echo $num; ?>"> <br/></td>
  10. </tr>
  11. <tr>
  12. <td><b>Nom:</b></td><td><input type="text" name="nom" value="<?php echo $nom; ?>"><br/></td>
  13. </tr>
  14. <tr>
  15. <td><b>Prenom: </b></td> <td><input type="text" name="prenom" value="<?php echo $prenom; ?>" /><br/></td>
  16. </tr>
  17. <tr>
  18. <td><b>Genre:</b></td><td><input type="radio" name="genre" value="masculin" <?php if ($genre=='masculin') echo 'checked'; ?>/>Masculin<input type="radio" name="genre" value="feminin" <?php if ($genre=='feminin') echo 'checked'; ?>/>Feminin<br/></td>
  19. </tr>
  20. <tr>
  21. <td><b>Date de Naissance:</b></td>
  22. <td>
  23. <select name="jour">
  24. <option value="01">01</option>
  25. <option value="02">02</option>
  26. <option value="03">03</option>
  27. <option value="04">04</option>
  28. <option value="05">05</option>
  29. <option value="06">06</option>
  30. <option value="07">07</option>
  31. <option value="08">08</option>
  32. <option value="09">09</option>
  33. <option value="10">10</option>
  34. <option value="11">11</option>
  35. <option value="12">12</option>
  36. <option value="13">13</option>
  37. <option value="14">14</option>
  38. <option value="15">15</option>
  39. <option value="16">16</option>
  40. <option value="17">17</option>
  41. <option value="18">18</option>
  42. <option value="19">19</option>
  43. <option value="20">20</option>
  44. <option value="21">21</option>
  45. <option value="22">22</option>
  46. <option value="23">23</option>
  47. <option value="24">24</option>
  48. <option value="25">25</option>
  49. <option value="26">26</option>
  50. <option value="27">27</option>
  51. <option value="28">28</option>
  52. <option value="29">29</option>
  53. <option value="30">30</option>
  54. <option value="31">31</option>
  55. </select>
  56.  
  57. <select name="mois">
  58. <option value="01" >01</option>
  59. <option value="02" >02</option>
  60. <option value="03" >03</option>
  61. <option value="04" >04</option>
  62. <option value="05" >05</option>
  63. <option value="06" >06</option>
  64. <option value="07" >07</option>
  65. <option value="08" >08</option>
  66. <option value="09" >09</option>
  67. <option value="10">10</option>
  68. <option value="11">11</option>
  69. <option value="12">12</option>
  70. </select>
  71. <select name="anne">
  72. <option value="1900" >1900</option>
  73. <option value="1901" >1901</option>
  74. <option value="1902" >1902</option>
  75. <option value="1903" >1903</option>
  76. <option value="1904" >1904</option>
  77. <option value="1905" >1905</option>
  78. </select></td>
  79. </tr>
  80. <tr>
  81. <td><b>Date D'embauche:</b></td>
  82. <td> <select name="jouremb">
  83. <option value="01">01</option>
  84. <option value="02">02</option>
  85. <option value="03">03</option>
  86. <option value="04">04</option>
  87. <option value="05">05</option>
  88. <option value="06">06</option>
  89. <option value="07">07</option>
  90. <option value="08">08</option>
  91. <option value="09">09</option>
  92. <option value="10">10</option>
  93. <option value="11">11</option>
  94. <option value="12">12</option>
  95. <option value="13">13</option>
  96. <option value="14">14</option>
  97. <option value="15">15</option>
  98. <option value="16">16</option>
  99. <option value="17">17</option>
  100. <option value="18">18</option>
  101. <option value="19">19</option>
  102. <option value="20">20</option>
  103. <option value="21">21</option>
  104. <option value="22">22</option>
  105. <option value="23">23</option>
  106. <option value="24">24</option>
  107. <option value="25">25</option>
  108. <option value="26">26</option>
  109. <option value="27">27</option>
  110. <option value="28">28</option>
  111. <option value="29">29</option>
  112. <option value="30">30</option>
  113. <option value="31">31</option>
  114. </select>
  115.  
  116. <select name="moisemb">
  117. <option value="01" >01</option>
  118. <option value="02" >02</option>
  119. <option value="03" >03</option>
  120. <option value="04" >04</option>
  121. <option value="05" >05</option>
  122. <option value="06" >06</option>
  123. <option value="07" >07</option>
  124. <option value="08" >08</option>
  125. <option value="09" >09</option>
  126. <option value="10">10</option>
  127. <option value="11">11</option>
  128. <option value="12">12</option>
  129. </select>
  130. <select name="anneemb">
  131. <option value="1900" >1900</option>
  132. <option value="1901" >1901</option>
  133. <option value="1902" >1902</option>
  134. <option value="1903" >1903</option>
  135. <option value="1904" >1904</option>
  136. <option value="1905" >1905</option>
  137. </select></td>
  138. </tr>
  139. <tr>
  140. <td><b>Salaire Brut:</b></td><td><input type="text" name="salbrut" value="<?php echo $sal; ?>"/><br/></td>
  141. </tr>
  142. <tr>
  143. <td width="172"><b>Situation Matrimoniale:</b></td>
  144. <td><input type="radio" name="sitmat" value="celibataire" checked="checked"/>Celibataire<input type="radio" name="sitmat" value="marie" />Marié<input type="radio" name="sitmat" value="veuf" />Veuf<input type="radio" name="sitmat" value="divorce" />Divorcé<br/></td>
  145. </tr>
  146. <tr>
  147. <td><b>Nombre D'enfants:</b></td><td><input type="text" name="nbenf" /><br/></td>
  148. </tr>
  149. <tr>
  150. <td width="172"><b>Numero de Télephone:</b></td>
  151. <td><input type="text" name="tel" /><br/></td>
  152. </tr>
  153. <tr>
  154. <td><b>Email:</b></td><td><input type="=text" name="mail" /><br/></td>
  155. </tr>
  156. <tr>
  157. <td><b>Photo:</b></td><td><input type="file" name="maphoto" /><br/></td>
  158. </tr>
  159. <tr>
  160. <td><b>Loisirs: </b></td><td><input type="radio" name="loisir" value="cinema" />Cinéma<input type="radio" name="loisir" value="musique" checked="checked" />musique<input type="radio" name="loisir" value="litterature" />Littérature<input type="radio" name="loisir" value="sport" />Sport<input type="radio" name="loisir" value="religion" />Réligion<input type="radio" name="loisir" value="television" />Télévision<input type="radio" name="loisir" value="politique" />Politique<br/></td>
  161. </tr>
  162. <tr>
  163. <form name="sauve" method="get" action="sauvegarder.php">
  164. <td align="center" colspan="2"><input type="hidden" name="numero" value="<?php echo $row[0]; ?>" /><input type="submit" name="valider" value="sauvegarder"/></td>
  165. </form>
  166. </tr>
  167. </table>
  168. </form>
  169. <?php
  170. }//fin fonction
  171.  
  172.  
  173. $id = $_GET['numero'];
  174. $query ="select * from employes where numero = $id";
  175. $result=mysql_query($query);
  176. // $row=mysql_fetch_array($result);
  177. while($row=mysql_fetch_array($result))
  178. {
  179. afficherformulaire($row[0],$row[1],$row[2],$row[3],$row[6],'');
  180. die();
  181. }
  182. $jr=$_POST['jouremb'];
  183. $ms=$_POST['moisemb'];
  184. $an=$_POST['anneemb'];
  185. $dat2="".$an."-".$ms."-".$jr." ";
  186. $jour=$_POST['jour'];
  187. $mois=$_POST['mois'];
  188. $annee=$_POST['anne'];
  189. $dat="".$annee."-".$mois."-".$jour." ";
  190. $numero=$_POST['numero'];
  191. $nom=$_POST['nom'];
  192. $prenom=$_POST['prenom'];
  193. $genre=$_POST['genre'];
  194. $salbrut=$_POST['salbrut'];
  195. $sitmat=$_POST['sitmat'];
  196. $nbenf=$_POST['nbenf'];
  197. $tel=$_POST['tel'];
  198. $mail=$_POST['mail'];
  199. $photo=$_FILES['maphoto'];
  200. $loisir=$_POST['loisir'];
  201.  
  202. /*ce sont ces variables qu'il ne reconnait pas,il met notice:indefined index pour chaqu'un d'eux,pourtant c'est le meme formulaire que j'ai utilisé pour l'insertion mais là bas il ne me signale pas ce type de remarque*/
  203. if($nom==''||$prenom=='')
  204. {
  205. afficherformulaire($numero,$nom,$prenom,"VEUILLEZ RENSEIGNER TOUS LES CHAMPS");
  206. die();
  207. }
  208. // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
  209. if (isset($_FILES['maphoto']) AND $_FILES['maphoto']['error'] == 0)
  210. {
  211. // Testons si le fichier n'est pas trop gros
  212. if ($_FILES['maphoto']['size'] <= 1000000)
  213. {
  214. // Testons si l'extension est autorisée
  215. $infosfichier = pathinfo($_FILES['maphoto']['name']);
  216. $extension_upload = $infosfichier['extension'];
  217. $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png','JPEG');
  218. if (in_array($extension_upload, $extensions_autorisees))
  219. {
  220. move_uploaded_file($_FILES['maphoto']['tmp_name'], 'DossierImage/' . basename($_FILES['maphoto']['name']));
  221. $fichier="DossierImage/".$_FILES['maphoto']['name'];
  222. }else
  223. {
  224. afficherformulaire($numero,$nom,$prenom,"Le type de fichier n'est pas supporté");
  225. die();
  226. }
  227. //echo"Le type de fichier n'est pas supporté";
  228. }
  229. else
  230. {
  231. afficherformulaire($numero,$nom,$prenom,"La taille de la photo est trop grande");
  232. die();
  233. }
  234. }
  235. le code de "sauvegarder.php":
  236.  
  237. $link=mysql_connect("localhost","root","pytheas");
  238. $db=mysql_select_db("grh");
  239.  
  240.  
  241. $id=$_GET['numero'];/*il ne reconnait pas le $id lequel marche pour la suppression*/
  242. echo $id;/*ici il ne m'affiche aucune valeur de $id*/
  243. die();
  244.  
  245.  
  246. $query= "delete from employes where numero=$id";
  247. /*comme je ne sais pas comment savoir exactement les champs modifiés je procede par une suppression pour refaire une insertion plus bas,mais rien de tout ceci ne marche et je n'arrive pas à percevoir l'erreur*/
  248. $query='insert into employes values("'.$numero.'","'.$nom.'","'.$prenom.'","'.$genre.'","'.$dat.'","'.$dat2.'","'.$salbrut.'","'.$sitmat.'","'.$nbenf.'","'.$tel.'","'.$mail.'","'.$fichier.'","'.$loisir.'")';
  249. $result=mysql_query($query)or die('Erreur SQL! <br/> '.$query.'<br/>' .mysql_error());;
  250. mysql_close();
m
0
l
a c 232 L Programmation
10 Juillet 2010 23:31:19

Tu as des die() dans ton code, comment veux tu que tout le code s'exécute si tu l'arrêtes en plein milieu ?!

Forcément que tu ne vas rien avoir...
m
0
l
12 Juillet 2010 13:17:33

j'ai supprimer mes die() mais le problème perssiste,je n'arrive pas à récupérer le id de l'enregistrement à sauvegarder, pourtant c'est de la même manière j'ai procedé aussi bien pour la suppression que pour la modification,mais je ne comprend pas pourquoi j'arrive pas à le récupérer sur ma page sauvegarder.php
m
0
l
a c 232 L Programmation
12 Juillet 2010 13:51:32

Parce que tu récupères ton "numero" en GET alors que ton formulaire est en POST ? :) 
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS