Aide pour la mise en forme d'un script "Recommandation&
Posté : 24 juin 2007, 17:52
Bonjour,
Souhaitant mettre en place un formulaire de recommandation de site avec l'envoi d'un mail, l'enregistrement des données dans une base de données et le réaffichage du formulaire après l'envoi, je rencontre deux petits problèmes :
1°) L'envoi du mail et l'enregistrement des données s'effectuent même si les champs sont incorrects après la vérification.
2°) Si tous les champs sont corrects dès la première fois, les données sont enregistrées sans la prise en compte de la modification des majuscules/minuscules des champs 'noms' & 'prenoms'.
J'ai un doute sur la bonne mise en forme du script. C'est pourquoi je sollicite votre aide...
Merci
Souhaitant mettre en place un formulaire de recommandation de site avec l'envoi d'un mail, l'enregistrement des données dans une base de données et le réaffichage du formulaire après l'envoi, je rencontre deux petits problèmes :
1°) L'envoi du mail et l'enregistrement des données s'effectuent même si les champs sont incorrects après la vérification.
2°) Si tous les champs sont corrects dès la première fois, les données sont enregistrées sans la prise en compte de la modification des majuscules/minuscules des champs 'noms' & 'prenoms'.
J'ai un doute sur la bonne mise en forme du script. C'est pourquoi je sollicite votre aide...
Merci
<?php
require_once('Connections/connectionscript.php');
mysql_select_db($database_connectionscript, $connectionscript);
$query_rs = "SELECT count(*) as RecordCount FROM recommandation";
$rs = mysql_query($query_rs, $connectionscript) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$totalRows_rs = mysql_num_rows($rs);
mysql_free_result($rs);
// On récupère les champs du formulaire s'ils ont été envoyés, et on arrange leur mise en forme
$nomexpe = (isset($_POST["nomexpe"])) ? trim(stripslashes($_POST["nomexpe"])) : "";
$prenomexpe = (isset($_POST["prenomexpe"])) ? trim(stripslashes($_POST["prenomexpe"])) : "";
$emailexpe = (isset($_POST["emailexpe"])) ? trim(stripslashes($_POST["emailexpe"])) : "";
$emailami = (isset($_POST["emailami"])) ? trim(stripslashes($_POST["emailami"])) : "";
$prenomexpe = str_replace(" ", "-", $prenomexpe);
function myUcfirst2($capture) { return $capture[1].ucfirst($capture[2]); }
$prenomexpe = preg_replace_callback("#(^|['~-])(\w+)#", "myUcfirst2", $prenomexpe);
function majusculesnom2($nomexpe) {$nomexpe = strtoupper($nomexpe); $nomexpe = strtr($nomexpe, "äâàáåãéèëêòóôõöøìíîïùúûüýñçþÿæœðø","AAAAAAEEEEOOOOOØIIIIUUUUYÑÇÞYÆŒÐØ"); return $nomexpe; }
$nomexpe = majusculesnom2($nomexpe);
/* On vérifie si le formulaire a été envoyé */
if (isset($_POST["Envoyer"])) // Si le formulaire a été soumis
{
$etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
/* Après la mise en forme, on vérifie la validité des champs */
if (empty($nomexpe)||!ereg("^[^-][[:alpha:]'~-]+[^-]$", $nomexpe)) { // L'utilisateur n'a pas rempli le champ nom
$erreur2.="Votre nom n'a pas été indiqué ou n'est pas correctement formulé.<br>"; // On met dans erreur le message qui sera affiché
}
if (empty($prenomexpe)||!ereg("^[^-][[:alpha:]'~-]+[^-]$", $prenomexpe)) { // L'utilisateur n'a pas rempli le champ prénom
$erreur2.="Votre prénom n'a pas été indiqué ou n'est pas correctement formulé.<br>"; // On met dans erreur le message qui sera affiché
}
if (empty($emailexpe)||!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$emailexpe)) { // L'utilisateur n'a pas rempli le champ email
$erreur2.="Votre adresse e-mail n'a pas été indiquée ou comporte des caractères non autorisés.<br>";
}
if (empty($emailami)||!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$emailami)) { // L'utilisateur n'a pas rempli le champ email ami
$erreur2.="L'adresse e-mail de votre ami n'a pas été indiquée ou comporte des caractères non autorisés.<br>";
}
# Check For Duplicate Signatures -------------- >
mysql_select_db($database_connectionscript, $connectionscript);
$query_emailami = mysql_query("SELECT * FROM `recommandation` WHERE (`emailami` LIKE '$emailami')");
if (mysql_numrows($query_emailami) > 0 ) {
$erreur2.="Votre ami a déjà reçu une recommandation pour le site.";
}
else { // Si tous les champs sont valides, on change l'état à ok
//Get External Resources
require_once('Connections/connectionscript.php');
require("phpmailer/class.phpmailer.php");
//GET config Record Set
mysql_select_db($database_connectionscript, $connectionscript);
$query_config = "SELECT * FROM config";
$config = mysql_query($query_config, $connectionscript) or die(mysql_error());
$row_config = mysql_fetch_assoc($config);
$totalRows_config = mysql_num_rows($config);
# Switch Type Function
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$$text = str_replace("\n.", "\n..", $text);
$mail = new PHPMailer(); //Create PHPmailer class
$mail->From = $row_config['FromEmail']; //Sender address
$mail->FromName = $row_config['FromName']; //The name that you'll see as Sender
$mail->Host = $row_config['EmailServer']; //Your SMTP mail server
$mail->Mailer = "smtp"; //Protocol to use
$mail->AddAddress($_POST['emailami']); //The address you are sending mail to
$mail->Subject = "ICI SUJET E-MAIL"; //Subject of the mail
$mail->Body = "ICI TEXTE E-MAIL";
if($row_config['SMTPAuth']==1)
{
$mail->SMTPAuth = "true";
$mail->Username = $row_config['Username'];
$mail->Password = $row_config['Password'];
}
elseif($row_config['SMTPAuth']==0)
{
$mail->SMTPAuth = "false";
}
if($mail->Send()){ //Check for result of sending mail
echo "La recommandation a bien été envoyée."; }
else { echo ""; }
//CLEAR CLEAN UP DB CONNECTION AND RS BEFORE WRITING
mysql_free_result($config);
// Record The Signature ------------------>
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
$insertSQL = sprintf("INSERT INTO recommandation (nomexpe, prenomexpe, emailexpe, emailami,`RCDate`, IPexpe) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nomexpe'], "text"),
GetSQLValueString($_POST['prenomexpe'], "text"),
GetSQLValueString($_POST['emailexpe'], "text"),
GetSQLValueString($_POST['emailami'], "text"),
GetSQLValueString($_POST['Date'], "date"),
GetSQLValueString($_POST['IPexpe'], "text"));
mysql_select_db($database_connectionscript, $connectionscript);
$Result1 = mysql_query($insertSQL, $connectionscript) or die(mysql_error());
}
}}
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>#formulaire" method="post" name="form2">
<?PHP
if ($etat=="erreur")
{ // Cas où le formulaire a été soumis mais il y a des erreurs
echo "<span style=color:red;>". $erreur2 ."</span><br />\n"; // On affiche le message correspondant à l'erreur
}
?>
<div class="bodyletter"><font size="-1">(<font color="#FF0000">*</font>) <em>Champs obligatoires.</em></font><br></div>
<table>
<tr valign="baseline">
<td width="144" align="right" nowrap>Votre nom <font color="#FF0000" size="-1">*</font></td>
<td width="160"><input type="text" size="28" name="nomexpe" value="<?php echo htmlspecialchars($nomexpe, ENT_QUOTES); ?>"></td>
</tr>
</table>
<table>
<tr valign="baseline">
<td width="144" align="center" valign="middle"><div align="right">Votre prénom <font color="#FF0000" size="-1">*</font> </div></td>
<td width="160" align="right" ><input type="text" size="28" name="prenomexpe" value="<?php echo htmlspecialchars($prenomexpe, ENT_QUOTES); ?>"></td>
</tr>
</table>
<table>
<tr valign="baseline">
<td width="144" align="center" valign="middle"><div align="right">Votre e-mail <font color="#FF0000" size="-1">*</font> </div></td>
<td width="160" align="left"><input type="text" size="28" name="emailexpe" value="<?php echo htmlspecialchars($emailexpe, ENT_QUOTES); ?>"></td>
</tr>
</table>
<table>
<tr valign="baseline">
<td width="144" align="center" valign="middle"><div align="right">E-mail de votre ami <font color="#FF0000" size="-1">*</font> </div></td>
<td width="160" align="left"><input type="text" size="28" name="emailami" value="<?php echo htmlspecialchars($emailami, ENT_QUOTES); ?>"></td>
</tr>
</table>
<table>
<tr valign="baseline">
<td width="144" align="center" valign="middle"></td>
<td width="160" align="left"><input type="submit" name="Envoyer" value="Envoyer"></td>
</tr>
</table>
<input type="hidden" name="IPexpe" value="<?php Echo $_SERVER['REMOTE_ADDR'] ?>" size="32">
<input type="hidden" name="Date" value="<?php Echo date('Y-m-d H:i:s') ?>" size="32">
<input type="hidden" name="MM_insert" value="form2">
</form>