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

Soyez le premier à donner votre avis sur cette source.

Vue 11 636 fois - Téléchargée 2 812 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

Messages postés
273
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
24 juin 2014
4
j'aime les critiques et les critiqueurs spécialistes du criticage des non critiqués
Messages postés
11
Date d'inscription
samedi 9 janvier 2010
Statut
Membre
Dernière intervention
13 avril 2011

Deja c'est un site d'apprentissage
Messages postés
11
Date d'inscription
samedi 9 janvier 2010
Statut
Membre
Dernière intervention
13 avril 2011

oui effectivement mais il faut tjrs eviter des mots comme "mechant" "Null"
Messages postés
487
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
1 septembre 2011

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.
Messages postés
11
Date d'inscription
samedi 9 janvier 2010
Statut
Membre
Dernière intervention
13 avril 2011

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.