Demande d'aide pour un formulaire d'incident

chilperikchilperik Member
décembre 2009 modifié dans Entraide
Bonjour,

J'ai utilisé le formulaire de contact present dans le wiki mais j'ai modifié beaucoup de chose pour en faire un "formulaire d'incident", j'ai copier des bouts de code de ci de là, j'ai fait ma sauce et bien evidement il ne fonctionne plus ^^'

J'ai vraiment aucune connaisance en programmation mais j'ai reussi a le mettre "visuellement en place". Cette mise en forme me plait et je ne vais plus y toucher. Pour le code derriere c'est une autre histoire...

Y'a t'il une ame charitable qui pourrait jetter un coup d'oeil au code pour le faire fonctionner ?

mini cahier des charges :

- 4 éléments obligatoire a renseigner, 2 champs texte et 2 listes déroulantes + contenu du message --> sinon le mail n'est pas envoyé.
- Vérification anti-spam valide --> sinon le mail n'est pas envoyé.
- Dans le mail que je reçois, il faudrait que les 4 éléments soit présent (comme le nom ou l'ip dans le formulaire du wiki) + bien évident le contenu du message :p

je copie ici le code de ma page :
<?php
# Page statique Pluxml : formulaire de contact par florent@pluxml.org
# revision 1.0 par Stephane: compatibilité pluxml 4.2  

if(!defined('PLX_ROOT')) exit;

# Renseignez ici votre adresse mail
$email = 'capsycom@gmx.fr';

# Notre capcha
$capcha = new plxCapcha();

# Nos variables
$erreur = '';
$succes = '';

if(!empty($_POST)) { # Formulaire valide

	if($_POST['rep2'] == md5($capcha->gds.$_POST['rep'])) { # Capcha valide
		$_POST['nom'] = trim($_POST['nom']);
		$_POST['content'] = trim($_POST['content']);
		$_POST['ip'] = plxUtils::getIp();
		# On verifie les donnees
		if(empty($_POST['nom']) OR empty($_POST['mail']) OR empty($_POST['content']))
			$erreur = 'Merci de remplir tous les champs obligatoires';
		if($erreur == '' AND !plxUtils::checkMail(trim($_POST['mail'])))
			$erreur = 'L\'adresse mail saisie n\'est pas valide';
		# On peut envoyer si pas d'erreur
		if($erreur == '') {
			$corps = 'Son nom : '.$_POST['nom']."\n";
			$corps .= 'Son mail : '.$_POST['mail']."\n";
			$corps .= 'Son adresse IP : '.$_POST['ip']."\n";
			$corps .= 'Son message : '."\n";
			$corps .= $_POST['content'];
			# On retire certains caracteres
			$corps = str_replace("\r"," ",$corps);
			# On envoi le mail
			$headers = 'From: '.$_POST['mail']."\n";
			$headers .= 'MIME-Version: 1.0'."\n";
			$headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."\n";
			$headers .= 'Content-transfer-encoding: 8bit'."\n";
			if(mail($email,'## Capsycom ## contact depuis le formulaire de declaration',$corps, $headers))
				$succes = 'Merci de nous avoir contacté, nous vous répondrons le plus rapidement possible.';
			else
				$erreur = 'Une erreur s\'est produite au cours de l\'envoi de votre message...';
		}
	} else { # Capcha non valide
		$erreur = 'la vérification anti-spam a échouée';
	}
} else {
	# Initialisation
	$erreur = 'Merci de remplir le formulaire ci-dessous, en indiquant le plus clairement possible votre problème !';
	$_POST['nom'] = '';
	$_POST['content'] = '';
	$_POST['mail'] = '';
}
?>
<div id="form">
	<p class="message_contact"><?php echo (!empty($erreur))?$erreur:$succes; ?></p>
	<?php if(!empty($erreur) OR empty($_POST)): ?>
		<form action="#form" method="post">
                      <fieldset></div>
<table width="100%" border="0" Bordercolor="#D58FFF" cellspacing="0" cellpadding="0"> 
<th>			
<p style="text-align:center"><strong>Votre message :</strong></p>

<table width="100%" border="0" Bordercolor="#678906" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td width="50%" valign="top"><label>(*) Votre nom et prénom : </label><br />
 <input name="nom" type="text" size="40" value="<?php echo plxUtils::strCheck($_POST['nom']) ?>" maxlength="40" /></td>

<td width="50%" valign="top"><strong>(*) Sélectionnez un type d'incident :   </strong><br />
<select name="type" id="input-type" class="input-ct" style="width:60%;">
<option value="incident">Votre incident...</option>
<option value="network">Incident lié au réseau (box,wifi,...)</option>
<option value="application">Incident lié à une application (word, firefox,...)</option>
<option value="system">Incident lié au système (virus, lenteur,...)</option>
<option value="hardware">Incident lié au matériel (alimentation, carte graphique,...)</option>
<option value="Autres">Autres Incidents</option></select></td>
</tr>
    <br />
<tr>
    <td width="50%" valign="top"><label>(*) Votre e-mail :</label><br />
        <input name="mail" type="text" size="40" value="<?php echo plxUtils::strCheck($_POST['mail']) ?>" />
    <td width="30%" valign="top"><strong>(*) Sélectionnez un système d'exploitation : </strong><br /> 
        <select name="system" id="input-system" class="input-ct" style="width:60%;">
<option value="">Votre système...</option>
<option value="windows-xp">Windows XP</option>
<option value="windows-vista">Windows Vista</option>
<option value="windows-seven">Windows 7</option>
<option value="linux">GNU/Linux</option>
<option value="mac-os">Mac OSX</option>
<option value="others">Autres systèmes </option>
</select>   
</tr>
</table>
<table width="99%" border="0" Bordercolor="#678906"cellspacing="0" cellpadding="0"> 
  <tr> 
<p style="text-align:middle">     
<img src="data/images/fleche.png" alt="arrows" style="vertical-align:middle" width="100" height="102"/>
    <strong>Objet :</strong>
    <input type="text" name="objet" value="Déclaration d'un incident" id="input-objet" style="width:60%" />
      <textarea name="msg" id="input-msg" rows="15" style="width:99%" >Bonjour,</textarea></p>
  </tr> 
</table>
	<label><br /><strong>Vérification anti-spam</strong> :</label>
	<p><?php echo $capcha->q(); ?> : <input name="rep" type="text" size="10" /></p>
		<input name="rep2" type="hidden" value="<?php echo $capcha->r(); ?>" />
        	<p><input type="submit" value="Envoyer" /> </p>
		</fieldset>
		</form>
	<?php endif; # Fin du if si mail envoye ?>
</div><br />
<br />

<p align="left" >N.B. Les éléments précédés d'une étoile (*) sont à renseigner obligatoirement.</p> 
</th>
</table>
<br />
La page en question (pour avoir une idée du rendu) : http://capsycom.toile-libre.org/?static3/formulaire-de-demande

D'avance merci a celui qui pourra m'aider !
Bonne fin d'année :)
Connectez-vous ou Inscrivez-vous pour répondre.