Bonjour Saian et merci pour votre aide précieuse : grâce à elle mon formulaire a nettement évolué : j'ai pu se faire afficher le montant de la promesse au retour du formulaire et inclure comme je le voulais les valeurs nom, prénom et somme_part dans le mail ; mais je reste malheureusement bloqué sur la somme globale des participations que je n'arrive pas à afficher.
Peut-être n'ai-je pas inclus le code au bon endroit ? Ou bien une variable non déclarée ? Bref, j'ai encore besoin de votre aide !
Je voudrais aussi faire en sorte que la table compteur indique non pas le nombre de visite mais le nombre de promesses... que faudrait il changer dans le code pour arriver à ce résultat ?
Merci de venir encore à mon secours !
http://icaris.org/formulaire/promesse.php
Si vous désirez tester le comportement actuel directement en ligne, vous pouvez faire une promesse fictive en incluant le mot fictif dans le champ nom ou prénom : j'effacerais le cas échéant ces lignes de la base de donnée.
1-promesse.php
[code]<?php
session_start ( );
require_once ("fonctions.php");
//initialisations
$mess= "";
$nom = "";
$prenom = "";
$oui = "";
$parts="";
$somme_part = "";
$res="";
$participation= "";
$somme_tot = "";
if (isset ($_SESSION['mess']) ) $mess = $_SESSION['mess'];
if (isset ($_SESSION['nom']) ) $nom = $_SESSION['nom'];
if (isset ($_SESSION['prenom']) ) $prenom = $_SESSION['prenom'];
if (isset ($_SESSION['compte']) ) $oui = $_SESSION['compte'];
if (isset ($_SESSION['parts'])) $parts = ( $_SESSION['parts'] );
if (isset ($_SESSION['somme_part']) ) $somme_part = $_SESSION['somme_part'];
if (isset ($_SESSION['res']) ) $res = $_SESSION['res'];
if (isset ($_SESSION['participation']) ) $participation = $_SESSION['participation'];
if (isset ($_SESSION['somme_tot']) ) $somme_tot = $_SESSION['somme_tot'];
// Comptage si le visiteur est nouveau
if ( empty($oui) )
{
// ouverture de la base
$ouvert = connect_bd ();
$nombre = mysql_query( "SELECT nombre FROM compteur WHERE id='1' ;");
// recuperation du nombre de visites
if (mysql_num_rows($nombre) > 0) $result = mysql_fetch_assoc($nombre);
$nb= $result['nombre'];
// visites +1 et prise en compte de la visite
$nb ++;
$_SESSION['compte']=$nb;
// ré ecriteure du nouveau nombre de visites
$sql ="UPDATE compteur SET nombre ='$nb' WHERE id='1' ;";
if (!mysql_query($sql) ) die('Probleme au comptage des visiteurs' . mysql_error());
// fermeture de la base
mysql_close($ouvert);
} else {
$nb = $oui ;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
<title>formulaire de participation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="fr" />
<link href='css/participation.css' type='text/css' rel='stylesheet' />
</script>
</head>
<div id="corps" >
<form class="participation" action='traitement-participation.php' method='post'>
<fieldset> <legend> </legend>
<p id="question" >
<h1>Faire une promesse d'apport à la future SAS<br/> "Le Village Icaris"</h1>
<?php if (!empty($mess) ) echo " <br /><span style='color:red'>".$mess."</span> " ;?>
<?php
$date = date("d-m-Y");
$heure = date("H:i");
Print("<h2>Le $date à $heure <br/>
le capital virtuel de la SAS Le Village Icaris s'élève à<br/>
$participation euro</h2>");
?>
<br />
<b>Votre Nom :</b><br /><input type="text" name="nom" size="15"/><br />
<b>Votre Prénom :</b><br /><input type="text" name="prenom" size="15" /><br />
<b>Votre Mail :</b><br /><input type="text" name="mail" size="15" /><br />
<b>Nombre de parts à 10€ :</b><br /><input type="mediumint" name="parts" size="5" /><br />
<br /><input type="submit" name="valid" value="Envoyer"/>
</p>
</fieldset>
</form>
<div class="participation" >
<fieldset id="cadre">
<?php
if ( !empty ( $nom ) ) echo "<p>Merci pour votre promesse d'apport qui a bien été prise en compte,<em> $prenom $nom </em>.<br/>Votre promesse d'apport est de <em> $somme_part </em> euro.<br/>Vous êtes le $nb ème participant au projet Le Village Icaris ! <br/> Grâce à votre promesse d'apport, le capital virtuel de la SAS Le Village Icaris s'élève à $participation euro.</p> \n";
"<p> </p> \n"; echo ($res);
?>
</fieldset>
<p><a href="http://www.icaris.org"><h3>Aller sur la page d'accueil</h3></a></p>
<p><a href="http://www.icaris.org/dokuwiki/doku.php"><h3>Aller sur le site participatif</h3></a></p>
</div>
</body>
</html>
[/code]
2- traitement.php
[code]<?php
require_once ("fonctions.php");
$table = "participation" ; //nom de la table recevant les mails
// initialisations
session_start ( ) ;
$nom="";
$prenom="";
$mel="";
$parts="";
$somme_part="";
$somme_tot="";
$_SESSION['mess']="";
$_SESSION['prenom']="";
$_SESSION['nom']="";
$syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
// Récupération des infos
if (isset ($_POST['nom'])) $nom = htmlspecialchars( $_POST['nom'] );
if (isset ($_POST['prenom'])) $prenom = htmlspecialchars( $_POST['prenom'] );
if (isset ($_POST['mail'])) $mel = htmlspecialchars( $_POST['mail'] );
if (isset ($_POST['parts'])) $parts = ( $_POST['parts'] );
// Verification presence des infos
if ( empty($nom) ) $_SESSION['mess'] ="Le nom est manquant";
if ( empty($prenom) ) $_SESSION['mess'] ="Le prénom est manquant";
if ( empty($mel) )
{
$_SESSION['mess'] ="Le mail est manquant";
}else{
if(!preg_match($syntaxe,$mel)) $_SESSION['mess'] ="Le mail est incorrect";
}
if ( empty($parts) ) $_SESSION['mess'] ="Le nombre de parts est manquant";
// on ne traite que si les infos sont correctes
if ( empty($_SESSION['mess']) )
{
// ouverture de la base de données
$ouvert = connect_bd ();
// Vérification que l'adresse n'est pas deja saisie
$reponse = mysql_query( "SELECT mail, nom , prenom FROM ".$table." WHERE mail='".$mel."' ;");
$_SESSION['nom'] = $nom;
$_SESSION['prenom']=$prenom;
if (mysql_num_rows($reponse) > 0) $_SESSION['mess'] = "Cette adresse existe déjà dans la base";
//calcul de la somme partielle
$first_number = ( $_POST['parts'] );
$second_number = 10;
$somme_part = $second_number * $first_number;
$_SESSION['somme_part'] = $somme_part;
//somme globale
$participation = mysql_fetch_object(mysql_query('SELECT SUM(somme_part) AS somme_tot FROM participation'));
echo $participation->somme_tot;
// Ecriture des infos dans la base
if ( empty($_SESSION['mess']) )
{
$sql ="INSERT INTO ".$table." ( nom , prenom, mail , date, parts, somme_part, somme_tot ) VALUES ( '$nom' , '$prenom' , '$mel' , CURRENT_TIMESTAMP () , '$parts' , '$somme_part' , '$somme_tot')";
if (!mysql_query($sql) ) die('y a un probleme à l ecriture ' . mysql_error());
}
}
// Envoi du mail de confirmation
$destinataire = $mel;
$sujet = "Votre promesse de participation à la SAS Le Village Icaris" ;
$entete = "From:
[email protected]" ;
$nom = ($_SESSION ['nom']) ;
$prenom = ($_SESSION ['prenom']) ;
$somme_part = ($_SESSION ['somme_part']) ;
$message = 'Bonjour, '.$prenom.' '.$nom.'
Ce mail vous est envoyé automatiquement par le site www.icaris.org suite à votre promesse de participation à la SAS Le Village Icaris.
---------------
Le Village Icaris vous remercie pour votre promesse d\'apport de '.$somme_part.' euro à la future SAS qui en constituera la fondation.
Nous vous rappelons qu\'il vous sera demandé d\'honorer cette promesse lorsque la somme des promesses cumulées sera suffisamment conséquente pour engager la constitution de la SAS.
Nous vous invitons sur ce point à encourager toute personne de votre entourage à s\'engager, même pour une petite somme : les petits ruisseaux faisant les grandes rivières, un grand nombre de petites actions pourrait rapidement constituer un capital non négligeable...
Nous espérons vous retrouver bientôt sur le site participatif ( http://www.icaris.org/dokuwiki/doku.php ) pour un échange destiné à forger Le Village Icaris en son corps subtil de manière à l\'instaurer plus aisément dans la matière.
Nous ne manquerons pas par ailleurs de vous avertir de toute avancée notable dans sa réalisation.
Nous vous encourageons également à apprendre et diffuser La Marche des Artisans d\'un Monde Nouveau, Hymne à l\'Evolution, en vous inscrivant sur le site www.hymnevolution.fr
Dans l\'attente d\'un échange plus personnalisé, soyez assuré(e), cher(e) ami(e), de notre fraternelle considération.
L\'équipe de icaris.org
---------------
http://icaris.org/fraternite_3_destination_le_village_icaris.pdf
---------------
Bien que ceci soit un mail automatique, il vous est possible d\'y répondre.';
mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail
// fermeture de la base
mysql_close($ouvert);
// Retour à la page precedente
header('Location: promesse.php');
?>[/code]