besoin d'aide pour terminer un script formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : besoin d'aide pour terminer un script formulaire

Re: besoin d'aide pour terminer un script formulaire

par baxterbax » 16 mai 2011, 17:07

J'ai repris mon script. j'arrive plus ou moins à supprimer des enregistrements maintenant, mais le hic s'est qu'il m'enleve uniquement les enregistrement de la première activité et je ne peux pas faire une selection parmis la liste.


j'ai ajouté le script suivant à ma page gestion.php.

Code : Tout sélectionner

$result= mysql_query('select* from noms WHERE activite = '.$id.' ORDER BY nom')or die(mysql_error()); //$res=mysql_query($req); echo '<form method="post" action="gestion.php"> <table> <tr> <td>Nom</td><td>Prénom</td><td>email</td><td>Supprimer</td> </tr>'; while ($data = mysql_fetch_array($result, MYSQL_ASSOC)) { echo '<tr> <td>',$data['nom'],'</td> <td>',$data['prenom'],'</td> <td>',$data['email'],'</td> <td><input type="checkbox" name="id_rep[]" value="',$data['id'],'" /></td> </tr>'; } while (list($key, $tab) = each($HTTP_POST_VARS)) while (list($key, $data) = @each($tab)) $mysql_result = mysql_query('DELETE from noms WHERE activite = '.$id.' ORDER BY nom') or die(mysql_error()); if($mysql_result==0) print("<Center><b>Erreur</center>"); else echo "<br><center><b>Les éléments sélectionnés ont été supprimé</b></center>"; echo '<tr><td colspan="4"><input type="submit" value="Effacer les cases cochés" /></td></tr> </table>';

Re: besoin d'aide pour terminer un script formulaire

par baxterbax » 16 mai 2011, 10:53

merci ça marche maintenant. par contre aurais-tu un idée du comment faire pour une supprimer une inscription dans la base de données depuis ma page gestion.php

Re: besoin d'aide pour terminer un script formulaire

par moogli » 09 mai 2011, 12:03

select count(clef primaire) as nbinscrit from table where parametre=condition

tu récupère nbinscrit dans le traitement de la requete qui correspond au nombre de tuples dans la table (donc ton nombre d'inscrit). le paramètre c'est pour le cas où tu gère plusieurs type de "manifestation" en même temps (histoire de pas les mélanger).


@+

Re: besoin d'aide pour terminer un script formulaire

par baxterbax » 09 mai 2011, 09:21

ok, merci pour l'info, c'est corrigé maintenant, mon formulaire fonctionne, mais je voudrais savoir comment faire pour bloquer le nombre d'inscits quand il n' a plus de places. il me semble je sais que cela peut se faire au niveau de la base de données.

Code : Tout sélectionner

<?php $flag=mysql_connect("", "", "" ) or die(mysql_error()); mysql_select_db("" ); $nom = (isset($_POST['nom'])) ? $_POST['nom'] : ''; $prenom = (isset($_POST['prenom'])) ? $_POST['prenom'] : ''; $email = (isset($_POST['email'])) ? $_POST['email'] : ''; $ok = (isset($_GET['inscription'])) ? $_GET['inscription'] : ''; if($nom!="" && $prenom!="" && $email!="" && isset($_POST["activite"])) { foreach ($_POST['activite'] as &$value) { mysql_query("INSERT INTO noms VALUES('', '" . $value . "', '" . $nom . "', '" . $prenom . "','" . $email . "')" ) or die (mysql_error()); } header('Location: form1.php?inscription=ok'); } else { echo 'Vous devez indiquer vos coordonn&eacute;es dans les champs &agrave; remplir.';} if($ok=='ok') { echo 'Votre inscription a bien &eacute;t&eacute; prise en compte ! Merci.';} echo '<form method="post" action="form1.php">'; $reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM activites') or die(mysql_error()); $donnees0 = mysql_fetch_array($reponse0); $nb_activites = $donnees0['nb_activites']; echo '<h3>Liste des activit&eacute;s</h3>'; if($nb_activites == 0) { echo 'Aucune activit&eacute; disponible pour le moment.<br /><br />'; } else { if($nb_activites == 1) {echo 'Il y a '.$nb_activites.' activit&eacute; disponible pour le moment.<br /><br />';} else { echo 'Il y a '.$nb_activites.' activit&eacute;s disponibles pour le moment.<br /><br />';} } $reponse1 = mysql_query('SELECT * FROM activites ORDER BY id ASC') or die(mysql_error()); while ($donnees1 = mysql_fetch_array($reponse1)) { $id = $donnees1['id']; $activite = $donnees1['activite']; $details = $donnees1['details']; $places = $donnees1['places']; echo '<fieldset>'; echo '<legend>Activit&eacute; n&deg;'.$id.'</legend>'; echo 'Activit&eacute; : <strong>'.$activite.'</strong><br />'; if(empty($details)) { echo ''; } else { echo 'D&eacute;tails : '.nl2br($details).''; } echo '<hr />'; echo '<input type="checkbox" name="activite[]" value="'.$id.'" /><br />'; $reponse2 = mysql_query('SELECT COUNT(*) AS nb_de_places_occupees FROM noms WHERE activite = '.$id.''); $donnees2 = mysql_fetch_array($reponse2); $nb_de_places_restantes = $places - ($donnees2['nb_de_places_occupees']); echo 'Nombre de places total : '.$places.'<br />'; echo 'Nombre de places restantes : '.$nb_de_places_restantes.'<br />'; echo '</fieldset><br />'; } mysql_close($flag); echo'<table border="0" cellpadding="0" cellspacing="0">'; echo'<tr><td style="padding-bottom:5px">Nom : </td><td width="10">&nbsp;</td>'; echo'<td style="padding-bottom:5px"><input name="nom" type="text" value="'.$nom.'" size="50" class="field"/></td></tr><tr>'; echo'<td style="padding-bottom:5px">Pr&eacute;nom</td><td width="10">&nbsp;</td>'; echo'<td style="padding-bottom:5px"><input type="text" name="prenom" value="'.$prenom.'" size="50" class="field" />'; echo'</td></tr><tr><td style="padding-bottom:5px">Mail : </td>'; echo'<td width="10">&nbsp;</td>'; echo'<td style="padding-bottom:5px"><input type="text" name="email" value="'.$email.'" size="50" class="field" />'; echo'</td></tr></table>'; echo '<input type="submit" value="Valider"></form>'; ?>

Re: besoin d'aide pour terminer un script formulaire

par moogli » 02 mai 2011, 09:59

salut,

Il faut utiliser la notation tableau dans le nommage de la checkbox (par exemple name="activite[]").

Coté validation du formulaire tu récupère un tableau dans $_POST['activite'], tu peux le parcourir avec foreach

@+

besoin d'aide pour terminer un script formulaire

par baxterbax » 29 avr. 2011, 16:13

je suis débutant en php et je voudrais modifier ce script formulaire pour que les gens puissent s'inscrire à plusieurs activités en même temps. le hic c'est pour l'instant, si on coche plusieurs cases à la fois, j'ai toujours qu'une seule inscription qui apparait.


j'ai deux parties, une page formulaire et une page gestion pour gerer et recuperer les inscriptions.

http://www.ccsti74-crangevrier.com/resa ... /form1.php
http://www.ccsti74-crangevrier.com/resa ... estion.php


si jamais quelqu'un peu m'aider. merci d'avance


script formulaire : <?php
mysql_connect("", "", "" ) or die(mysql_error()); 
mysql_select_db("ccsticratelier" ); 

 if(isset($_POST['nom'])) 
 { 
  if(!empty($_POST['nom'])) 
  { 
   $nom = $_POST['nom']; 
    $activite = $_POST['activite']; 

   $prenom = $_POST['prenom']; 
   $email = $_POST['email']; 
    

    
  mysql_query("INSERT INTO noms VALUES('', '" . $activite . "', '" . $nom . "', '" . $prenom . "','" . $email . "')" ) or die (mysql_error()); 
   header('Location: form1.php?inscription=ok'); 
  } 
   
  else 
  { 
   echo 'Vous devez indiquer vos coordonn&eacute;es dans les champs &agrave; remplir.'; 
  } 
 } 

  
if(isset($_GET['inscription']) && $_GET['inscription'] == 'ok') 
 { 
  echo 'Votre inscription a bien &eacute;t&eacute; prise en compte ! Merci.'; 
   
   
 } 
 echo '<form method="post" action="form1.php">';   
  
  
  
  
 $reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM activites') or die(mysql_error()); 
 $donnees0 = mysql_fetch_array($reponse0); 
 $nb_activites = $donnees0['nb_activites']; 
  
 echo '<h3>Liste des activit&eacute;s</h3>'; 
  
 if($nb_activites == 0) 
 { 
  echo 'Aucune activit&eacute; disponible pour le moment.<br /><br />'; 
 } 

  
else 
 { 
  if($nb_activites == 1) 
  { 
   echo 'Il y a '.$nb_activites.' activit&eacute; disponible pour le moment.<br /><br />'; 
  } 
   
  else 
  { 
   echo 'Il y a '.$nb_activites.' activit&eacute;s disponibles pour le moment.<br /><br />'; 
  } 
 } 
  
  
  
 echo '<form>'; 
  
 $reponse1 = mysql_query('SELECT * FROM activites ORDER BY id ASC') or die(mysql_error()); 
 while ($donnees1 = mysql_fetch_array($reponse1)) 

  
 ///////////////////////// 
  
  
 //////////////////////////// 
 { 
  $id = $donnees1['id']; 
   
  $activite = $donnees1['activite']; 
  $details = $donnees1['details']; 
  $places = $donnees1['places']; 

   
  echo '<fieldset>'; 
  echo '<legend>Activit&eacute; n&deg;'.$id.'</legend>'; 
  echo 'Activit&eacute; : <strong>'.$activite.'</strong><br />'; 
   
  if(empty($details)) 
  { 
   echo ''; 
  } 
   
  else 
  { 
   echo 'D&eacute;tails : '.nl2br($details).''; 
  } 
   
  echo '<hr />'; 
   
   
   //echo '</label>Inscrivez votre nom :</label> <input type="text" name="nom" /><br />'; 
   //echo '<input type="hidden" name="activite" value="'.$id.'" /><br />'; 
   // echo '<input type="hidden" name="activite" value="nom" /><br />'; 
   // echo '<input type="hidden" name="activite" value="'.$nom.'" /><br />'; 
   //echo '<input type="hidden" name="activite" value="'.$nom.'" /><br />'; 
  

echo '<input type="checkbox" name="activite" value="'.$id.'" /><br />'; 
   
   
   
   
  $reponse2 = mysql_query('SELECT COUNT(*) AS nb_de_places_occupees FROM noms WHERE activite = '.$id.''); 
  $donnees2 = mysql_fetch_array($reponse2); 
   
  $nb_de_places_restantes = $places - ($donnees2['nb_de_places_occupees']); 
    
  echo 'Nombre de places total : '.$places.'<br />'; 
  echo 'Nombre de places restantes : '.$nb_de_places_restantes.'<br />'; 
  
  echo '</fieldset><br />'; 
  
   
 } 



  mysql_close(); 


echo'<table border="0" cellpadding="0" cellspacing="0">'; 
            echo'<tr>'; 
              echo'<td style="padding-bottom:5px">Nom : </td>'; 
             echo'<td width="10">&nbsp;</td>'; 
              echo'<td style="padding-bottom:5px"><input name="nom" type="text" value="'.$nom.'" size="50" class="field"/></td>'; 
            echo'</tr>'; 
           echo'<tr>'; 
              echo'<td style="padding-bottom:5px">Pr&eacute;nom</td>'; 
              echo'<td width="10">&nbsp;</td>'; 
              echo'<td style="padding-bottom:5px"><input type="text" name="prenom" value="'.$prenom.'" size="50" class="field" />'; 
              echo'</td>'; 
           echo'</tr>'; 
            echo'<tr>'; 
              echo'<td style="padding-bottom:5px">Mail : </td>'; 
              echo'<td width="10">&nbsp;</td>'; 
              echo'<td style="padding-bottom:5px"><input type="text" name="email" value="'.$email.'" size="50" class="field" />'; 
              echo'</td>'; 
            echo'</tr>'; 
          echo'</table>'; 

echo '<input type="submit" value="Valider"></form>'; 


?> 




Page gestion :
<?php 

  
mysql_connect("", "", "" ) or die(mysql_error()); 
 mysql_select_db("ccsticratelier" ); 

  


if(isset($_GET['supprimer'])) 
 { 
  $_GET['supprimer'] = $_GET['supprimer']; 
  mysql_query('DELETE FROM activites WHERE ID = \'' . $_GET['supprimer'] . '\''); 
  header('location:gestion.php'); 
 } 
  
 if(isset($_POST['activite']) AND isset($_POST['places']) AND isset($_POST['details'])) 
 { 
  if(!empty($_POST['activite']) AND !empty($_POST['places'])) 
  { 
   $activite = $_POST['activite']; 
   $details = $_POST['details']; 
   $places = $_POST['places']; 

  
  mysql_query("INSERT INTO activites VALUES('', '" . $activite . "', '" . $details . "', '" . $places . "')" ) or die (mysql_error()); 
   header('Location: gestion.php?ajout=ok'); 
  } 
   
  else 
  { 
   echo '<br />Vous devez remplir tous les champs obligatoires.'; 
  } 
 } 

  
if(isset($_GET['ajout']) AND $_GET['ajout'] == 'ok') 
 { 
  echo '<br />L\'activité a été ajoutée avec succès.'; 
 } 

  
echo '<h3>Ajouter une activité </h3>'; 
 echo '<form action="gestion.php" method="post">'; 
 echo '<label>Nom de l\'activité : </label><input type="text" name="activite" /><br />'; 
 echo '<label>Nombre de places dispo : </label><input type="text" name="places" /><br /><br />'; 
 echo '<label>Description de l\'activité (facultatif) : </label><br />'; 
 echo '<textarea cols="60" rows="10" type="text" name="details"></textarea><br />'; 
 echo '<input type="submit" value="Enregistrer" />'; 

  
$reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM activites') or die(mysql_error()); 
 $donnees0 = mysql_fetch_array($reponse0); 
 $nb_activites = $donnees0['nb_activites']; 
  
 echo '<hr /><h3>Liste des activités</h3>'; 
  
 if($nb_activites == 0) 
 { 
  echo 'Aucune activité disponible pour le moment.<br /><br />'; 
 } 

  
else 
 { 
  if($nb_activites == 1) 
  { 
   echo 'Il y a '.$nb_activites.' activité disponible pour le moment.<br /><br />'; 
  } 
   
  else 
  { 
   echo 'Il y a '.$nb_activites.' activités disponibles pour le moment.<br /><br />'; 
  } 
 } 
  
 $reponse1 = mysql_query('SELECT * FROM activites ORDER BY id ASC') or die(mysql_error()); 
 while ($donnees1 = mysql_fetch_array($reponse1)) 
 { 
  $id = $donnees1['id']; 
  $activite = $donnees1['activite']; 
  $details = $donnees1['details']; 
  $places = $donnees1['places']; 
   
  echo '<fieldset>'; 
  echo '<legend>Activité n°'.$id.'</legend>'; 
  echo 'Activité : <strong>'.$activite.'</strong><br />'; 
   
  if(empty($details)) 
  { 
   echo ''; 
  } 
   
  else 
  { 
   echo 'Détails : '.nl2br($details).''; 
  } 
   
  echo '<hr />'; 
   
  $reponse2 = mysql_query('SELECT COUNT(*) AS places_occupees FROM noms WHERE activite = '.$id.'') or die(mysql_error()); 
  $donnees2 = mysql_fetch_array($reponse2); 
  $places_occupees = $donnees2['places_occupees']; 
   
  if($places_occupees == 0) 
  { 
   echo 'Aucun membre ne s\'est inscrit pour cette activité.'; 
  } 
   
  else 
  { 
   echo '<strong>Liste des membres pour cette activité ('.$places_occupees.'/'.$places.')</strong><br />'; 
  } 
   
$result= mysql_query('SELECT * FROM noms WHERE activite = '.$id.' ORDER BY nom') or die(mysql_error()); 
   

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    
    
printf("Nom : %s   : Prénom :  %s  : email : %s", $row["nom"], $row["prenom"],$row["email"]); 
    
$Nom = $row[0]; 

$prenom = $row[1]; 

$email = $row[3]; 
echo'<br>'; 
    
} 
   
  { $nom = $donnees3['nom']; 
   //echo '<input type="text" name="nom" value="'.$nom.'" enable="enable" /><br />'; 
  } 
   
  echo '</fieldset><br />'; 
 } 
  
 mysql_close(); 
  
  

?>