Bonjour à tous,

<mode rassurant>ça va mieux depuis hier, je vous ai peut-être fais peur mais je suis beaucoup plus en forme, donc plus d'hallucinations au programme(pour ceux qui ne savent pas de quoi je parle, qu'ils aillent lire le sujet "problème sur le forum" dans le bar)</mode rassurant>

Alors voilà, j'attaque. En fait, je dois faire un formulaire d'inscription pour une école. C'est très bien, sauf quand on y connaît que dalle en php/MySQL, donc, je me suis tourné vers les scripts tout faits dans lesquels y a plus qu'à remplir ses propres données.

Le seul script réellement adapté à mes besoins est EasyForm(voir à cette adresse), j'ai réussi à l'installer, le faire fonctionner sans trop de problème et même à l'adapter en partie en ajoutant des champs d'insertion, les données sont envoyées vers une boîte mail.
Je dis que c'est le seul qui est adapté, mais peut-être qu'il y en a d'autres, en tout cas, si jamais c'est le cas, ils sont bien cachés car, j'ai fouillé pas mal et j'ai trouvé beaucoup de script pour des formulaires de contact, mais peut-être deux ou trois pour les inscriptions.

Par contre(et c'est ce qui me rebute par rapport à cet outil), c'est que de un, apparement, une partie de celui-ci est en tableaux, et de deux, je ne sais pas paramétrer le design comme je veux pour faire en sorte qu'il soit en adéquation avec la charte graphique, d'autant plus les textes correspondants aux champs d'insertions sont trop grands pour ceux-ci et rend la chose pas très lisible.

voici le code de l'outil :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml">
	<head>
<title>spdesign - home page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="icon" type="image/gif" href="icone-logo.gif" />

<style type="text/css">
<!--

body {
	margin-left:207px;
	}

-->
</style>
</head>
<body>


<?PHP
/*
*************************************************************************************
*                                                                         EasyForm 1.0.4                                                                   *
*************************************************************************************
*       Auteur :  AMOUZOU Amen Wenceslas alias amen0phis, amen.africa-web.org                             *
*       Copyright : Cette application est gratuit;                                                                                           *
*                           envoyez moi juste un mail à easyform@gmail.com                                                        *
*************************************************************************************
* Nom du fichier formMoteur.php                                                                                                              *
* Date de création : 18 Février 2005                                                                                                         *
* Date de modification : 01 MARS 2006                                                                                                   *
************************************************************************************/

//=========================DEBUT CONFIGURATION======================================

$nb_chp_imput            = 8; // Le nombre de champ INPUT (champ de texte)
$nb_chp_textarea         = 1; //Le nombre de zone de texte
//Liste des étiquettes des champs dans cet ordre! Echappez d'éventuels griffes <<">> avec <<\>> dans les libellés
$tb_etiquette            = array(
								"Nom de l'enfant",
								"Prénom",
								"Date de naissance",
								"Nom de la personne responsable",
								"Prénom",
								"Adresse",
								"Téléphone",
								"Date d'envoi",
								"Message"); 
								
$site_url                = "du formulaire d'inscription immersion anglais"; //adresse du site
$email_dest              = "monemail@yahoo.fr"; //adresse email où les données collectées iront
$email_dest_CC           = "";//autres adresses mails pour Copies conformes; juste séparer les adresses par des VIRGULES
$email_dest_CCI          = "";//autres adresses mails pour Copies conformes Invisibles; juste séparer les adresses par des VIRGULES
$email_objet             = "immersion anglais - inscription provisoire"; //L'ojbet du message
$couleur1                = "#EbEbEb"; //Couleur d'alternance 1 des lignes dans le tableau
$couleur2                = "#EbEbEb"; //Couleur d'alternance 2 des lignes dans le tableau
$tab_bordure             = 0; // La bordure du tableau
$tab_width               = "150px";
$copyright               = false; //Voulez vous mettre le nom du script et de l'auteur pour que d'autres le découvrent ? mettre à false sinon

//===========================FIN CONFIGURATION================================//



if($nb_chp_imput==0){
	echo("<center>Pour utiliser EasyForm, spécifiez au moins un champ input dans le fichier formMoteur.php; changer  la valeur 0 de la variable $nb_chp_imput</center>");
	exit;
}

$form_out_put  = "\n<BR/><BR/><form name='form1' action='".$_SERVER['PHP_SELF']."' method = 'POST'>\n";
$form_out_put .= "<table align='center' width='30%'>\n";
$cpt           = 1; 

for ($i=0; $i<$nb_chp_imput+$nb_chp_textarea; $i++) {
	$couleur       = ($cpt%2)? $couleur1 : $couleur2;
	$form_out_put .=  "<tr bgcolor='$couleur'><td width='30%' valign='top' align='right' >";
	
	if (!isset($tb_etiquette[$i])) $tb_etiquette[$i] = "ETIQUETTE NON DEFINIE";
	
	$form_out_put .= " $tb_etiquette[$i] : </td><td>";
	
	if ($i<$nb_chp_imput) {
		$form_out_put     .= "<input name='field[]' type='text' size='32'  ";
        if(isset($field)) $form_out_put .= "value='$field[$i]' />";
        
        $form_out_put     .= "</td></tr>\n";
       
	}
	else{
		if ($i<$nb_chp_textarea+$nb_chp_imput)  {
			$form_out_put .= "<TEXTAREA name='field[]' rows='7'  cols='28' >";
			if(isset($field)) $form_out_put .= $field[$i];
			$form_out_put .= "</TEXTAREA></td></tr>\n";

		}
	}
	
	$cpt++;
	}

$form_out_put .= "<tr><td align='right'><input type=submit value=Envoyer /></td><td><input type=reset value='Tout effacer' /></td></tr>";
if($copyright){
$form_out_put .= "";
}
$form_out_put .= "</table>\n";
$form_out_put .= "<input type=hidden name=envoi value=1/>";
$form_out_put .= "</form>";


$message = NULL;
$headers = NULL;


if (!isset($_POST["envoi"])) {
	//eventuel message
}
else{
    $champ = $_POST["field"];
	if (in_array("", $champ)){
		$text_put_alert = "<center><span class='alert'>Tous les champs sont obligatoires \n<br></span></center>";	
	}
	else{
		//Traitement si tout est bon
		//Les valeurs sont contenues dans le tableau $champ
		//Pour atteindre une valeur, $champ[x] , xétant l'index de l'élément dans la définition des étiquettes
	    $message .= "Ce mail provient du formulaire d'envoi du site <b>$site_url</b>";
	    $message .= "<hr>";
	    while(list($index,$valeur) = each($champ)) $message .= "\n<br>- $tb_etiquette[$index] : <b>$valeur</b> ";
	    $message .= "<HR>EasyForm est écrit par <a href=mailto:easyform@gmail.com>Amen AMOUZOU</a>\n<BR>";
	    $message .= "In Form, We Trust!";
	    $headers .= "From: EasyForm \n";
	    $headers .= "X-Mailer: PHP\n";
	    $headers .= "X-Priority: 0\n";
	    $headers .= "To: ".$email_dest_CC."\r\n";
	    $headers .= "Bcc:".$email_dest_CCI."\r\n";
	    $headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";
		$envoi_mail = @mail($email_dest, $email_objet, $message, $headers);
	    if($envoi_mail ==true){
			$text_put_confirm = "<center><span class='confirm'>Votre envoi a abouti avec succès \n<br></span></center>";	
	    }
		else{
			$text_put_alert = "<center><span class='alert'>Désolé! Le mail n'a pas pu être envoyé \n<br/>Le moteur SMTP est down  \n<br></span></center>";	
	    }

	}
}

if(isset($text_put_alert)) echo $text_put_alert;
if(isset($text_put_confirm)) echo $text_put_confirm;
echo $form_out_put;

?>
</body>
</html>


Je sais que je prends peut-être le problème par le mauvais côté car logiquement, je devrais apprendre le php pour chipoter avec des formulaires correctement mais bon, mon client m'a pris au dépourvu, donc, je suis obligé de bricoler(rassurez vous, j'essayerai d'apprendre les bases du php pour éviter ce genre de truc à l'avenir.

Voilà, si y a quelqu'un qui peut m'aider et me donner des pistes pour améliorer tout ça, il est le bienvenu et je lui en serais très reconnaissant Smiley smile
Modifié par touvert (14 Jun 2007 - 18:02)
Bonjour Touvert,

J'ai un formulaire de contact à moi, programmé en PHP assez simple qui gère l'envoi des info par mail, qui n'a pas de tableaux, juste des élements "relookables" en CSS et qui t'affiche des codes d'erreurs tant que c'est pas rempli correctement.

Tout le script va dans la même page....qui s'appelle elle-même pour contrôler si tout est juste et qui finit par envoyer le courriel une fois que tout est OK...

Il faudra par contre que tu tripatouilles un peu le PHP mais rien de bien compliqué ....

Si intéressé , envoi MP....je ne mettrais pas le code à dispo sur le forum....
Modifié par RoseGrenouille (12 Mar 2007 - 15:12)
Rebonjour à tous,

voilà, je viens de répondre favorablement en MP à RoseGrenouille mais en attendant de pouvoir arriver à mes fins(on ne sait jamais que je serais tellement nul en php pour que je n'arrive pas à en sortir avec la solution de RoseGrenouille), je laisse la question ouverte et je ne mets pas encore le titre de sujet comme étant [Résolu].

<edit>le script donné par RoseGrenouille fonctionne bien, je mets donc le sujet comme étant résolu. Smiley cligne </edit>
Modifié par touvert (14 Jun 2007 - 18:01)