baxterbax
Invité n'ayant pas de compte PHPfrance
30 sept. 2011, 22:50
merci pour ta réponse, je vais voir en fonction de tes conseils, la solution possible.
Pour donner une idée de l'ensemble, ma page formulaire, par contre faut pas être effrayé devant le code car n'étant pas un crack en php j'ai retourner mon script dans tout les sens pour trouver la solution à mon probème. alors soyez indulgent svp, car ça doit être un joyeux bordel dans mes lignes.
<?php
if ( !empty($_POST['captcha']) ) {
$captchacrypte = md5($_SESSION['captcha']);
// On supprime la session pour éviter la récupération pour les robots
$_SESSION['captcha'] = '';
}
// On prépare la liste de caractère a inséré dans le captcha
$chaine = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
// On prépare le compteur de caractère
$nb = 0;
// On limite à 6 caractères
while( $nb < 6 ) {
// On tire un nombre au hazard
$rand = rand(0,51);
// On regarde à quelle lettre il correspond et on l'ajoute à la chaine
$chaine2 .= $chaine[$rand];
// On prépare pour la lettre suivante
$nb++;
}
// Enfin on génère la session
$_SESSION['captcha'] = $chaine2;
$nb_champs=$_POST['nb_champs'];
if ( $captchacrypte == md5($_POST['captcha']) AND !empty($_POST['captcha'])&&($_POST['nom'])&&($_POST['prenom'])&&
($_POST['email'])&&($_POST['atelier']) )
{
$nom_atelier=$_POST['atelier'];
$nom=$_POST['nom'.$i];
$prenom=$_POST['prenom'.$i];
$email=$_POST['email'];
$size=sizeof($nb_champs);
for($i=0;$i<=$size;$i++){
mysql_query("INSERT INTO noms VALUES('' ,'" . $nom_atelier. "','" . $id_atelier. "', '" . $nom[$i] . "', '" .$prenom[$i] . "','" . $email . "')" ) or die (mysql_error());
}
header('Location: resultat.php?inscription=ok');
}
if($ok=='ok') {
echo '<font color="#FF0000"><font size="5">Votre inscription a bien été prise en compte ! Merci.</font>';
}
else { if($ok!='ok') echo '<font color="#FF0000"><font size="4">Vous devez indiquer vos coordonnées dans les champs à remplir.</font color"></font>';}
if ( !empty($_POST['captcha']) ) {
echo "\t\t\t<B style=\"color : #ff0000;\">Le code saisi est incorrect</b><br />\n";}
$captcha = (isset($_POST['captcha'])) ? $_POST['captcha'] : '';
$nom_atelier=($atelier);
$ok = (isset($_GET['inscription'])) ? $_GET['inscription'] : '';
$id = $_GET["idPersonne"] ;
///////////////
// on crée la requête SQL
$sql = 'SELECT haut FROM structure';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo' '.$data['haut'].'';
}
?>
</tr>
<tr>
<td align="" valign="center">
<?
define('SUJET','Inscription aux ateliers Fête de la science 2011');
$message = "Bonjour,
Ceci est un mail automatique, merci de ne pas y répondre.
";
mail(ADRESSE_WEBMASTER,SUJET,$message,'From: '.ADRESSE_WEBMASTER);
$message = "Bonjour,
Ceci est un mail automatique, merci de ne pas y répondre.
";
;
mail($_POST['email'],SUJET,$message,'From: '.ADRESSE_WEBMASTER);
echo' <form method="post" action="" id="idPersonne' . $id . '" enctype="multipart/form-data" onClick="traitement(this.id)">';
$reponse0 = mysql_query('SELECT COUNT(*) AS nb_activites FROM ateliers WHERE theme = '.$id.' ORDER BY atelier') or die(mysql_error());
$donnees0 = mysql_fetch_array($reponse0);
$nb_activites = $donnees0['nb_activites'];
// echo '<h3>Liste des activités</h3>';
if($nb_activites == 0)
{ }
else {
if($nb_activites == 1)
{echo '';}
else
{ echo '';}
}
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["idPersonne"] ;
$reponse1= mysql_query('select* from ateliers WHERE id = '.$id.' ORDER BY atelier')or die(mysql_error());
while ($donnees1 = mysql_fetch_array($reponse1))
{
$id = $donnees1['id'];
$id_atelier = $donnees1['id'];
$id = $donnees1['id'];
$nom_atelier = $donnees1['id'];
$atelier = $donnees1['atelier'];
$places = $donnees1['places'];
$details = $donnees1['details'];
$dates = $donnees1['dates'];
?>
<style type="text/css">
.fondClaire{
background-color: #F1F5FA;
border: 1px dotted #000000;
}
</style>
</head>
<body>
<table width="700"class="fondClaire">
<tr>
<td width="750" height="144" valign="top" class="fondClaire">
<p>
<?
echo ' <font color="#0000ff"><font size="4"><strong>'.$atelier.'</strong></font><br />';
echo'<br>';
echo '<font color="#000000"><font size="3"><strong>'.$dates.'</strong></font><br />';
echo'<br>';
if(empty($details)) { echo '<br>'; }
else { echo ''.nl2br($details).''; }
$reponse2 = mysql_query('SELECT COUNT(*) AS nb_de_places_occupees FROM noms WHERE id_atelier = '.$id_atelier.'');
$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.'';
if($nb_de_places_restantes =='0') {
echo 'Plus de places disponibles';
}
?>
</p>
<table width="250" border="0" align="right">
<tr valign="bottom">
<td height="31" align="right">
<?
if($nb_de_places_restantes >'0') {
echo ' <font color="#266577"><strong></strong></font><input type="hidden" name="atelier" value="'.$nom_atelier.' ">';
}?>
</td>
</tr>
</table></td>
</tr></table>
<?
$id = $_GET["idPersonne"] ;
echo'</font>';
echo '<font color="#266577"><font size="3"><strong></strong></font><br />';
echo'<hr><style="border-style: border-bottom: 3px dotted #266577; color="#266577;"></hr>';
echo '<br>';
}
?>
</tr>
<tr>
<td align="center" valign="center">
<?
// on crée la requête SQL
$sql = 'SELECT bas FROM structure';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
?>
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><span
class="bloc"><font size="3"><strong>Pour vous inscrire à cet atelier, merci d'indiquer le nom et prénom de chaque participant ainsi qu'une seule adresse email :
</strong></font> </span><br>
</font> </p>
<table width="550
" height="325"
border="0" align="center" cellpadding="0" cellspacing="0"
style="text-align: left; margin-left: auto; margin-right: ; height: 550
px; width: 550
px;">
<tbody>
<tr>
<td width="31"></td>
<td width="28"></td>
<td width="38" style="text-align: center;"></td>
<td width="149" style="text-align: center;"></td>
<td width="110" style="text-align: center;"></td>
</tr>
<tr valign="middle">
<td height="42" colspan="5" align="center" style="vertical-align: center;"><span style="vertical-align: top;">
<?php
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer"){
// on affiche le nombre de champs du formulaire
echo 'Nombre de champs : '.$_POST['nb_champs'].'<br />';
// on affiche la valeur des champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
$nom = 'nom'.$i;
$value = $_POST[$nom];
$prenom= 'prenom'.$i;
$value = $_POST[$prenom];
echo 'nom'.$i.' : '.$value.''; echo 'prenom'.$i.' : '.$value.'' ; echo 'email'.$i.' : '.$value.'<br />';
}
}
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire
else{
// on défini le nombre initial de champs
if (!isset($_POST['nb_champs'])){
$_POST['nb_champs'] = $nb_de_places_restantes;
}
// si la personne clic sur "un champs en +", on ajoute un champs
if (isset($_POST['ajouter_champs']) && $_POST['ajouter_champs'] == "Un champs en +"){
$_POST['nb_champs']++;
}
// on affiche le formulaire
echo '<FORM METHOD="post">';
// on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire
echo '<INPUT TYPE="hidden" NAME="nb_champs" VALUE="'.$_POST['nb_champs'].'">';
// on affiche tous les champs du formulaire
for ($i=1; $i<=$_POST['nb_champs']; $i++){
echo ' Nom*/prénom <input name="nom[]' , $i , '" type="text" id="nom' , $i , '" value="' , isset($_POST['nom'.$i]) ? $_POST['nom'.$i] : '' , '">
<input name="prenom[]' , $i , '" type="text" id="prenom' , $i , '" value="' , isset($_POST['prenom'.$i]) ? $_POST['prenom'.$i] : '' , '"><br/>';
}
}
?>
</span></td>
</tr>
<tr valign="middle">
<td height="42" colspan="5" align="center" style="vertical-align: center;"><strong><font color="#000000">Email *</font></strong> <input name="email" type="text" maxlength="40"></td>
</tr>
<tr valign="middle">
<td height="42" colspan="5" align="center" style="vertical-align: center;">
<div align="center">Afin d’empêcher les inscriptions automatisées, nous vous demandons de taper la ou les lettres affichées dans le champ texte ci-dessous.<br><br>
Code de confirmation:
<> <font
face="Verdana, Arial, Helvetica, sans-serif" size="2">
</font>
<input name="captcha" size="6" maxlength="6" type="text"> <br>
</div>
<p> </p>
</td>
</tr>
<tr>
<td colspan="5" rowspan="1" align="center" style="vertical-align: top;">
<div style="text-align: center;"><input type="submit" name="valider_form" value="Valider" />
</form>
<br>
</div>
</td>
</tr>
<tr>
<td colspan="5" rowspan="1" align="center" style="vertical-align: center;"><br>
<?
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo' '.$data['bas'].'';
}
?>
</td>
</tr>
</tbody>
</table>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title></title>
<p><span style="color: red;">*</span> : saisie obligatoire.
Nous nous engageons à préserver la confidentialité de ces informations.
</p>
</body>
</html>
<?
echo'<br>';
echo'<br>';
echo'<br>';
?>