Je suis en train de mettre en place un site participatif (http://www.icaris.org )et je voudrais avant un départ imminent pour plusieurs mois terminer la mise en place d'un formulaire ; je n'ai plus le temps de de m'initier au langage php afin de comprendre des scripts qui me sont présentement totalement illisibles.. .quelqu'un aurait il la gentillesse de vouloir m'aider à corriger et compléter le script de ce formulaire ?
Je cherche désespérément à afficher la valeur de la base de donnée somme_part, mais je n'arrive pas à récupérer cette valeur qui semble ne pas être déclarée.
Je voudrais également faire apparaître quelque part sur la page la somme totale somme_tot mais je n'ai aucune idée de comment procéder, ni pour l'inscrire dans la base de données, ni pour la récupérer et la faire apparaître sur la page...
Une autre difficulté que je rencontre est celle d'inclure les noms et prénoms dans le mail automatique...
Le compteur ne semble pas très bien fonctionner non plus...
Je n'ai malheureusement plus le temps de chercher... alors si cela ne représente pas une difficulté pour vous et que vous vouliez bien participer à l'élaboration de ce site, je vous en serais très sincèrement reconnaissant !
Voici le code des deux pages de script dont je dispose pour ce formulaire, ainsi que des images de la structure de la base de donnée :
1-
Code : Tout sélectionner
<?php
session_start ( );
require_once ("fonctions.php");
//initialisations
$mess= "";
$nom = "";
$prenom = "";
$oui = "";
$parts="";
$somme_part = "";
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'];
// 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());
// recuperation de la somme partielle
if (mysql_num_rows($somme_part) > 0) $resultat = mysql_fetch_assoc($somme_part);
$somme_part= $resultat['somme_part'];
// 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> " ;?>
<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 $somme_part euro.<br/>Vous êtes le $nb ème participant au projet Le Village Icaris ! </p> \n";
"<p> </p> \n";
?>
</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>
2-
Code : Tout sélectionner
<?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;
// 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]" ;
$message = 'Bonjour,
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 à 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 formation 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');
?>


Un grand merci si vous avez pris le temps de lire jusqu'au bout ce code sans doute un peu indigeste pour vous qui connaissez le langage php... et un immense merci si vous voulez bien prendre encore celui de le corriger !
Vous seriez ainsi la seconde personne à apporter concrètement votre pierre à l'édification du Village Icaris qui a bien besoin de vous et qui vous remercie vivement pour votre participation !
Bien cordialement.
Troubadour Olivier d'Icarie
ps : je ne sais pourquoi le lien vers les images ne fonctionnent pas, aussi, voilà les adresses :
http://icaris.org/formulaire/capture_1.jpg
http://icaris.org/formulaire/capture_2.jpg
http://icaris.org/formulaire/capture_3.jpg