Gestionnaire d'eleves ou carnet d'adresse avec export xls

0/5 (14 avis)

Vue 13 141 fois - Téléchargée 3 015 fois

Description

bonjour

Un script qui peut servir à gérer l'inscription d'éléves ...
mais qui peut devenir un carnet d'adresse ...
Je met ce script aprés avoir dépanner sur le forum un internaute
j'ai réecrit pratiquement tout donc je l'offre à tous
Une pagination et une sécurisation basique sont disponibles
c'est une base de travail
merci

a++

Source / Exemple :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>              
  <head>                      
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">                      
    <meta name="generator" content="PSPad editor, www.pspad.com">                      
    <title>                   
    </title>              
  </head>   
  <style type="text/css">  
    <!--
     
    #pagina{
    	background-color: white;
      padding-top:5px;
    	font-family:Arial, Helvetica, sans-serif;
    	font-size:12px;
    	font-weight:normal;
    }
    --> 
  </style>          
  <body bgcolor="#ffddbb">
<?php 
function pagination(){
include('config/connection.php');
$par_page=5;
if(isset($_GET['debut'])){ 
$debut=(int)$_GET['debut'];
}else{
$debut=0;/*page 1 par defaut*/
}

$q="SELECT * from ".$dbtable."";
$comptage_lignes_table=mysql_num_rows(mysql_query($q));
$mas_pages= ceil($comptage_lignes_table/$par_page);
$prev=$debut-$par_page;
$next=$debut+$par_page;

$q2 = "select * from ".$dbtable." limit $debut,$par_page";
$get = mysql_query($q2);
while($rows = mysql_fetch_assoc($get)){
$r[]=$rows;
}
mysql_close();

/*creation navbar*/
$navbar ="";
if(!($debut<=0)){
$navbar .= '<a href="?debut='.$prev.'"><< DEBUT </a>';
}

$i=1;
for($x=0;$x<$comptage_lignes_table;$x=$x+5){
  if($debut!=$x){
  $navbar .= '<a href="?debut='.$x.'"> '.$i.' </a>';
  }else{
  $navbar .= '<a href="?debut='.$x.'"> <b>['.$i.'] </b></a>';
  }
$i++;
}

if($debut <= $comptage_lignes_table-$par_page){
$navbar .= '<a href="?debut='.$next.'"> FIN >></a>';
}

return $dat=array(0=>$navbar,1=>$r);
}

/*utilisation de la fonction pagination*/
$res = pagination();
echo '<div align="center" id="pagina">'.$res[0].'</div>'; /*menu navigation*/
//echo '<pre>';
//print_r($res[1]);
/*les enregistrements*/
echo '<div align="center">';
echo '<table border="1">';
echo '<tr><td>Prenon</td><td>Nom</td><td>Classe</td><td>Date de naissance</td><td>Telephone</td><td>Portable</td><td>Adresse</td><td>Action</td></tr>';
foreach($res[1] as $d[1] => $data){
$date=explode('-',$data['Date_naissance']);
$date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
echo '<tr><td>'.$data['Prenom'].'</td><td>'.$data['Nom'].'</td><td>'.$data['Classe'].
'</td><td>'.$date.'</td><td>'.$data['Telephone'].'</td><td>'.$data['Portable'].'</td><td>'.$data['Adresse'].
'</td><td><a href="?modifier='.$data['id'].'">Modifier</a> -- <a href="?supprimer='.$data['id'].'">Supprimer</a></td></tr>';
}
echo '</table>';
echo '</div><hr>';
/*fin pagination*/

echo '<hr>';

include('config/connection.php'); 

/*listage des eleves sans pagination cette partie est laissée pour exemple*/
$sql = 'SELECT * FROM '.$dbtable.''; /*pareil*/
$req=mysql_query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

echo '<div align="center">';

  echo '<table border="1">';

  echo '<tr><td>Prenon</td><td>Nom</td><td>Classe</td><td>Date de naissance</td><td>Telephone</td><td>Portable</td><td>Adresse</td><td>Action</td></tr>';

  while($data = mysql_fetch_assoc($req)){ 
    
  $date=explode('-',$data['Date_naissance']);
  $date=$data['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];
      
  echo '<tr><td>'.$data['Prenom'].'</td><td>'.$data['Nom'].'</td><td>'.$data['Classe'].
  '</td><td>'.$date.'</td><td>'.$data['Telephone'].'</td><td>'.$data['Portable'].'</td><td>'.$data['Adresse'].
  '</td><td><a href="?modifier='.$data['id'].'">Modifier</a> -- <a href="?supprimer='.$data['id'].'">Supprimer</a></td></tr>'; 
  } 

  echo '</table>';

echo '</div><hr>';
/*fin listage*/

/*actions*/
if(isset($_GET['supprimer']) && !empty($_GET['supprimer'])){
$id_suppr = (int)$_GET['supprimer'];
$_GET['supprimer']=null;
$sql="delete from ".$dbtable." where id='".$id_suppr."' limit 1";
mysql_query($sql) or die('DEMANDE SUPPRESSION ?');
unset($_GET);
header('Location: index.php');exit;
}

if(isset($_GET['modifier']) && !empty($_GET['modifier'])){
$id_modi = (int)$_GET['modifier'];
$_GET['modifier']=null;

$sql="select * from ".$dbtable." where id='".$id_modi."' limit 1";
$query=mysql_query($sql) or die('DEMANDE SELECTION ?');
$ligne=mysql_fetch_array($query);

$date=explode('-',$ligne['Date_naissance']);
$date=$ligne['Date_naissance']=$date[2].'-'.$date[1].'-'.$date[0];

?>
<div align="center">           
  <form method="POST" action="">                           
    <input type="hidden" name="id" value="<?php echo $ligne['id'];?>" />                 
    <table>                      
      <tr><td>Prenom</td><td>              
          <input type="text" name="Prenom" size="20" value="<?php echo $ligne['Prenom'];?>" maxlength="20"></td>          
      </tr>                      
      <tr><td>Nom</td><td>              
          <input type="text" name="Nom" size="20" value="<?php echo $ligne['Nom'];?>" maxlength="35"></td>          
      </tr>                     
      <tr><td>Classe</td><td>              
          <input type="text" name="Classe" size="20" value="<?php echo $ligne['Classe'];?>" maxlength="4"></td>          
      </tr>                      
      <tr><td>Telephone</td><td>              
          <input type="text" name="Telephone" size="20" value="<?php echo $ligne['Telephone'];?>" maxlength="10"></td>          
      </tr>                     
      <tr><td>Portable</td><td>              
          <input type="text" name="Portable" size="20" value="<?php echo $ligne['Portable'];?>" maxlength="10"></td>          
      </tr>                      
      <tr><td>Adresse</td><td>              
          <input type="text" name="Adresse" size="20" value="<?php echo $ligne['Adresse'];?>" maxlength="255"></td>          
      </tr>                      
      <tr><td>Date_naissance</td><td>              
          <input type="text" name="Date_naissance" size="20" value="<?php echo $ligne['Date_naissance'];?>" maxlength="15"></td>          
      </tr>                
    </table>                          
    <input type="submit" value="Modification" name="Modifier"><br />                      
  </form>           
</div>  

<?php
echo '<center><a href="?">Lister les éléves</a></center>';
}

if(isset($_POST['Modifier']) && $_POST['Modifier']==="Modification" && $_SERVER['REQUEST_METHOD']==='POST'){
/*LE FORMULAIRE EST POSTE*/
     
     foreach($_POST as $k => $v){
     $v=htmlentities($v);
     $v=mysql_real_escape_string($v);
     $_POST[$k]=$v;
     }
         
     extract($_POST);  
                
     // je vérifie si les champs sont vides 
      
     if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance)){ 
     echo '<center><font color="red">Attention, seul le champs <b>Telephone</b> peut rester vide !</font>'; 
     echo '<br /><font color="red">Attention, seul le champs <b>Portable</b> peut rester vide !</font>'; 
     echo '<br /><a href="javascript:history.back();">Retour</a></center>';
     }else{
     $date_naiss = explode('-',$Date_naissance);    
     $Date_naissance = $date_naiss[2].'-'.$date_naiss[1].'-'.$date_naiss[0];
     
     $sql =" UPDATE ".$dbtable." SET
      
     `Nom`= '$Nom' ,
     `Prenom`= '$Prenom' ,
     `Classe`= '$Classe',
     `Telephone`= '$Telephone',
     `Portable`= '$Portable',
     `Adresse`= '$Adresse' ,
     `Date_naissance`= '$Date_naissance'
      WHERE id='".$id."' ";
  
      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
      unset($_POST);
      header('Location: index.php');exit;
      } 
}

else if(isset($_POST['envoyer']) && $_POST['envoyer']==="Envoyer" && $_SERVER['REQUEST_METHOD']==='POST'){
/*LE FORMULAIRE EST POSTE*/

     foreach($_POST as $k => $v){
     $v=htmlentities($v);
     $v=mysql_real_escape_string($v);
     $_POST[$k]=$v;
     }
          
     extract($_POST);
     // je vérifie si les champs sont vides 
      
     if(empty($Prenom) OR empty($Nom) OR empty($Classe) OR empty($Adresse) OR empty($Date_naissance)){ 
     echo '<center><font color="red">Attention, seul le champs <b>Telephone</b> peut rester vide !</font>'; 
     echo '<br /><font color="red">Attention, seul le champs <b>Portable</b> peut rester vide !</font>'; 
     echo '<br /><a href="javascript:history.back();">Retour</a></center>';
     }else{ 
     $date_naiss = explode('-',$Date_naissance);    
     $Date_naissance = $date_naiss[2].'-'.$date_naiss[1].'-'.$date_naiss[0];
     $sql =" INSERT INTO ".$dbtable." (
     `id` ,
     `Nom` ,
     `Prenom` ,
     `Classe` ,
     `Telephone` ,
     `Portable` ,
     `Adresse` ,
     `Date_naissance` 
     )VALUES (NULL , '$Prenom', '$Nom', '$Classe', '$Telephone', '$Portable', '$Adresse', '$Date_naissance')";
           
     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     unset($_POST);
     header('Location: index.php');exit;
     } 
     
} else { ?>
    
    
<div align="center">              
  <form method="POST" action="">                       
    <table>                             
      <tr><td>Prenom</td><td>                         
          <input type="text" name="Prenom" size="20" value="" maxlength="20"></td>                 
      </tr>                             
      <tr><td>Nom</td><td>                         
          <input type="text" name="Nom" size="20" value="" maxlength="35"></td>                 
      </tr>                            
      <tr><td>Classe</td><td>                         
          <input type="text" name="Classe" size="20" value="" maxlength="4"></td>                 
      </tr>                             
      <tr><td>Telephone</td><td>                         
          <input type="text" name="Telephone" size="20" value="" maxlength="10"></td>                 
      </tr>                            
      <tr><td>Portable</td><td>                         
          <input type="text" name="Portable" size="20" value="" maxlength="10"></td>                 
      </tr>                             
      <tr><td>Adresse</td><td>                         
          <input type="text" name="Adresse" size="20" value="" maxlength="255"></td>                 
      </tr>                             
      <tr><td>Date_naissance</td><td>                         
          <input type="text" name="Date_naissance" size="20" value="" maxlength="15"></td>                 
      </tr>                     
    </table>                               
    <input type="submit" value="Envoyer" name="envoyer"><br />                         
  </form>            
 
 
  <form method="POST" action="config/export.php">
    (admin1234) à changer dans export.php <br /><input type="text" name="xls" maxlength="15">
    <input type="submit" value="EXPORT EXCEL" name="EXCEL"><br />    
  </form>
</div>  
  
<?php
mysql_close();
} 
?> 
</body>
</html>

Conclusion :


configurer
config/connection.php
et le mot de passe dans export.php
admin1234 par défaut

à améliorer
Les critiques sont les bienvenues
a++

Codes Sources

A voir également

Ajouter un commentaire Commentaires
begueradj Messages postés 273 Date d'inscription dimanche 4 octobre 2009 Statut Membre Dernière intervention 24 juin 2014 9
24 avril 2011 à 15:42
j'aime les critiques et les critiqueurs spécialistes du criticage des non critiqués
marocbaladeuse Messages postés 10 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 13 avril 2011
18 avril 2011 à 13:35
Deja c'est un site d'apprentissage
marocbaladeuse Messages postés 10 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 13 avril 2011
18 avril 2011 à 13:34
oui effectivement mais il faut tjrs eviter des mots comme "mechant" "Null"
masternico Messages postés 487 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 1 septembre 2011
16 avril 2011 à 17:33
lol... Parcequ'il aurait peut-être fallu que je te remercie pour l'effort d'avoir publié une source copiée intégralement sur un de tes collègue de l'ESTS (http://www.phpcs.com/codes/GESTION-CLIENT-ESTS_52671.aspx)?

Et puis merci pourquoi? Je pense que l'auteur de cette source n'est pas venu ici pour avoir des remerciements. Il est venu pour publier un code pour qu'il soit évalué. Donc je donne mon point de vue. Il n'est pas terminé, et d'une conception trop anciènne : la gestion d'une fiche est faite à travers 4 fichiers qui devront être modifiés à chaque changement de la page formulaire

Perso je préfère la solution qui consiste à faire un script unique et multitache qui sait récolter les inputs d'un formulaire sans qu'il ne lui soit préciser au paravant quels en était les types ni si ces valeur sont obligatoires ou pas.

Si tu fait un formulaire, tu peux imaginer quelquechose de la sorte:

------------------------------------------
------------------------------------------
<?php
$id_utilisateurs = require_param($_POST['id_utilisateur'],TYPE_NUM,'Les paramètres d\'appels ne sont pas au bon format','admin.php');
$action = require_param($_POST['action'],TYPE_ALPHA,'Les paramètres d\'appels ne sont pas au bon format','admin.php');
$action = $action;
$utilisateurs = new utilisateurs();
$utilisateurs->fill_object($id_utilisateurs);
if($utilisateurs->nb_rows != 1)
{
redirect_java('admin.php');
exit;
}
?>
<form name="utilisateurs_form">
">

utilisateurs_name))?$utilisateurs->utilisateurs_name:''); ?>">
utilisateurs_car_brand))?$utilisateurs->utilisateurs_car_brand:''); ?>">
</form>
-------------------------------------
-------------------------------------

De cette manière, avec un petit traitement java, on passe en revue tous les inputs du fromulaire, on les compulses avant de les envoyer vers le script de control avec un appel Ajax. Ce qui fait que le script de control sait s'il doit faire une création, mise à jour, suppression et ce, sur quel objet, et en sachant quelle valeur est obligatoire ou pas.

Donc, non je ne vais pas remercier juste pour faire plaisir. S'il veux de la pommade, il descend à la pharmacie et s'achète un tube de synthol en gel.
marocbaladeuse Messages postés 10 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 13 avril 2011
16 avril 2011 à 16:53
Monsieur masternico est ce que tu peux arreter d'embeter les gens comme ca,il faut au moin les remercier pour leurs efforts,je crois que c'est la moindre des choses
Afficher les 14 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.