Ajouter un commentaire

Niroken

Hello,

C'est Noel, alors voici ma modeste contribution.

Tout d'abord sur le répertoire www de ton serveur web crée un ensemble de répertoires pour avoir l'arborescence :
www/chatconcoursinscriptions/html
www/chatconcoursinscriptions/php/bean
www/chatconcoursinscriptions/php/helper
www/chatconcoursinscriptions/css

Dans le dossier html, placer un fichier inscription.html :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="../php/chat_inscrire.php" method="POST">
<table class="MsoNormalTable" border="0" cellpadding="0" width="100%" style="width: 100.0%" id="table19">
	<tr>
		<td width="26%" style="width:26.0%;padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal"><span style="color: #812778"><b><font size="2">Couleur</font></b></span><b><span style="color:#812778"><font size="2">:</font></span></b></td>
		<td style="padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal"><b>
		<font size="3" face="Times New Roman" color="#812778"><input TYPE="text" SIZE="40" NAME="couleur"></font></b></td>
	</tr>
	<tr>
		<td width="26%" style="width:26.0%;padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal"><span style="color: #812778"><b><font size="2">Race</font></b></span><b><span style="color:#812778"><font size="2">:</font></span></b></td>
		<td style="padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal"><b>
		<font size="3" face="Times New Roman" color="#812778"><input TYPE="text" SIZE="40" NAME="race"></font></b></td>
	</tr>
	<tr>
		<td colspan="2" style="padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal" align="center" style="text-align:center"><b>
		<span style="font-family:"Palatino Linotype"">
		<font color="#812778" face="Times New Roman">
		<input TYPE="submit" VALUE="Poster la Requête" NAME="Submit"><input TYPE="reset" VALUE="Recommencer" NAME="Submit2"></font></span></b></td>
	</tr>
</table>
</form>
</body>
</html>

Ici je n'ai mis qu'un sous ensemble de ton formulaire complet, il faudra que tu récupères le tien.

Dans le dossier php/bean, placer un fichier chat_inscription.php :

<?php
class chat_inscription {
	
	private $nom_complet;
	private $race;
	private $poil;
	private $couleur;
	private $sexe;
	private $nom_exposant;
                //A compléter
	
	public function __set($name, $value) {
		$this->$name = $value;
	}
	
	public function __get($name) {
		return $this->$name;
	}
	
}
?>

Ici je n'ai pas mis toutes le svariables, il faudra que tu complètes également

Dans le dossier php/helper placer un fichier mail_helper.php :

<?php

class mail_helper {
	
	private $envoyeur_nom;
	private $envoyeur_mail;
	private $receveur_nom;
	private $receveur_mail;
	private $sujet;
		
	static public function init_smtp_serveur($smtp_server) {
		ini_set("SMTP", $smtp_server); 
	}
	
	public function send_html_mail($html_content) {
		$entete = "MIME-Version: 1.0\r\n";
		$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
		$entete .= "To: $this->receveur_nom <$this->receveur_mail>\r\n";
		$entete .= "From: $this->envoyeur_nom <$this->envoyeur_mail>\r\n";
		if(!mail($this->receveur_mail, $this->sujet, $html_content, $entete)){
			echo "L'email n'a pu être envoyé !";
		} else {
		 	echo "Email a bien été evoyé !";
		}
	}
	
	public function __set($name, $value) {
		$this->$name = $value;
	}
	
	public function __get($name) {
		return $this->$name;
	}
	
}

?>

Dans le dossier php/helper encore placer un fichier chat_inscription_helper.php

<?php
class  chat_inscription_helper {
	
	private $chat_inscription;
	
	static private $ligne_chat_inscription_html = '
	<tr>
		<td width="26%" style="width:26.0%;padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal"><span style="color: #812778"><b><font size="2">[LIBELLE]</font></b></span><b><span style="color:#812778"><font size="2">:</font></span></b></td>
		<td style="padding:.75pt .75pt .75pt .75pt">
		<p class="MsoNormal"><b>
		<font size="3" face="Times New Roman" color="#812778">[DATA]</font></b></td>
	</tr>
	';
	
	public function create_chat_inscription_from_form_datas($array_datas) {
		$this->chat_inscription = new chat_inscription();
		$this->chat_inscription->__set('couleur', $array_datas['couleur']); 
		$this->chat_inscription->__set('race', $array_datas['race']); 
	}
	
	public function chat_inscription_to_html() {
		if (!is_null($this->chat_inscription)) {
			$chat_inscription_html = '
			<table>
			' .
			$this->replace_ligne_chat_inscription_html("couleur") .
			$this->replace_ligne_chat_inscription_html("race") .
			'
			</table>
			';
			return $chat_inscription_html;
		}
		
		return null;
	}
	
	private function replace_ligne_chat_inscription_html($data) {
		$tokens = array("[LIBELLE]", "[DATA]");
		$datas = array($data, $this->chat_inscription->__get($data)); 
		return str_replace($tokens, $datas, chat_inscription_helper::$ligne_chat_inscription_html);
	}
	
	public function __get($name) {
		return $this->$name;
	}
	
}
?>

Ici, pareil que dans chat_inscription, il faut compléter les données à renseigner à ajouter pour le chat_inscription

Enfin pour finir dans le dossier php placer un fichier chat_inscrire.php

<?php
include_once './bean/chat_inscription.php';
include_once './helper/chat_inscription_helper.php';
include_once './helper/mail_helper.php';

$chat_inscription_helper = new chat_inscription_helper();
$chat_inscription_helper->create_chat_inscription_from_form_datas($_POST);

// Attention ici il faut bien configurer le serveur smtp du FAI concerné
mail_helper::init_smtp_serveur("smtp.orange.fr");
$mail_helper = new mail_helper();
$mail_helper->__set('envoyeur_mail', 'fly_zefyr@hotmail.com');
$mail_helper->__set('receveur_mail', 'fly_zefyr@hotmail.com');
$mail_helper->__set('sujet', 'un mail de test');

$mail_helper->send_html_mail($chat_inscription_helper->chat_inscription_to_html());
?>

Du coup, ici le code de ton action "chat_iinscrire" reste lisible, et tu pourras facilement maintenir ce code(j espère).

A garder à l'esprit, la chose suivante dans ce code :
Il doit y avoir un mapping entre l'attribut "name" de tes inputs du formulaire et les attributs de ta classe chat_inscription.

Je m'explique :
Si l'attribut "name" de l'input vaut couleur, alors il faut créer une variable private $couleur dans la classe chat_inscription, tu y accèdes de la facon suivante : __get('couleur') pour voir sa valeur, et __set('couleur', 'blanc') pour mettre la valeur blanc à couleur.

J'espère avoir été clair, si tu as des question, n'hésites pas.

Bonne chance,
Niroken

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
  CCC  X   X   CCC   AA   W     W 
C X X C A A W W
C X C AAAA W W W
C X X C A A W W W
CCC X X CCC A A W W