Formulaire d'inscription

Fermé
fishes - 17 juin 2010 à 11:04
 fishes - 18 juin 2010 à 11:31
Bonjour,

Je tente de développer un formulaire d'inscription (cf script ci-dessous), et je suis face à deux problèmes:

1/ Le champ obligatoire "J'ai lu et j'accepte les conditions générales"est accompagné du message d'erreur (dans le cas où la case - checkbox - n'est pas cochée) suivant : "Vous devez avoir lu et accepter les conditions générales d'utilisation". En effet, lorsque la case n'est pas cochée, le message d'erreur apparait. Mais lorsque la case est cochée, le message d'erreur apparait également, ce qui n'est pas normal! Je n'ai pas réussi à déceler l'erreur....C'est à en devenir fou.....


2/ Je souhaite que certaines informations soient enregistrées sur une BDD, notamment:
- le nom
- le prénom
- l'adresse email
- l'adresse IP si possible (bien que celle ci ne soit pas demandée dans mon formulaire).

J'ai effectué les opération nécessaires (suivant les différents tuto dénichés)....mais plus grand chose ne fonctionne !

Une âme charitable pourrait m'apporter un peu d'aide ???

Je vous glisse le script actuel (register.php) ci-dessous, dans son intégralité (c'est un peu indigeste, veuillez m'en excuser).


A voir également:

3 réponses

Script register.php




<?php

// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}

// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {


//On commence une session pour enregistrer les variables du formulaire...

session_start();

$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['champ2'] = $_POST['champ2'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];
$_SESSION['zone_email2'] = $_POST['zone_email2'];

//Enregistrement des paramètres de la case 1...
$_SESSION['case1_'][0] = "";
if (isset($_POST['case1_'][0])) {
$_SESSION['case1_'][0] = $_POST['case1_'][0];
} // Fin du if...


//Enregistrement des paramètres de la case 2...
$_SESSION['case2_'][0] = "";
if (isset($_POST['case2_'][0])) {
$_SESSION['case2_'][0] = $_POST['case2_'][0];
} // Fin du if...

$_SESSION['case2_'][1] = "";
if (isset($_POST['case2_'][1])) {
$_SESSION['case2_'][1] = $_POST['case2_'][1];
} // Fin du if...

//Enregistrement des paramètres de la case 3...
$_SESSION['case3_'][0] = "";
if (isset($_POST['case3_'][0])) {
$_SESSION['case3_'][0] = $_POST['case3_'][0];
} // Fin du if...

$_SESSION['case3_'][1] = "";
if (isset($_POST['case3_'][1])) {
$_SESSION['case3_'][1] = $_POST['case3_'][1];
} // Fin du if...

// Définir l\'icone apparaissant en cas d\'erreur...


// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;

// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}

// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {

// Addresse de réception du formulaire
$email_dest = "xxxxxxxx@hotmail.fr";
$sujet = "Nouvelle boutique";
$entetes ="MIME-Version: 1.0 \n";
$entetes .="From: xxxxxxxx.fr<xxxxxxxx@xxxxxxxx.fr>\n";
$entetes .="Return-Path: xxxxxxxx.fr<xxxxxxxx@xxxxxxxx.fr>\n";
$entetes .="Reply-To: xxxxxxxx.fr<xxxxxxxx@xxxxxxxx.fr>\n";
$entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
$partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";


//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre prénom = " . $_SESSION['champ2'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Votre adresse email = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Adresse email de votre parrain (facultatif) (1) = " . $_SESSION['zone_email2'] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">J\'ai lu et j\'accepte les conditions générales d\'utilisation (2)</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 1 = " . $_SESSION['case1_'][0] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Je souhaite recevoir la newsletter</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 1 = " . $_SESSION['case2_'][0] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 2 = " . $_SESSION['case2_'][1] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Je souhjaite recevoir les offres de la part des partenaires</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 1 = " . $_SESSION['case3_'][0] . "</font><br>\n";
$partie_cases .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Case 2 = " . $_SESSION['case3_'][1] . "</font><br>\n";


// Fin du message HTML
$fin = "</body></html>\n\n";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;


// Send the e-mail
if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
echo("Envoi du formulaire impossible");
exit();
} else {

// Rediriger vers la page de remerciement
header("Location:http://www.xxxxxxxx.fr/remerciement-inscription.html");
exit();
} // Fin else
} // Fin du if ($flag_erreur == 0) {
} // Fin de if POST
?>
<html>

<head>
<title>Formulaire</title><script language="JavaScript">


function verifSelection() {


if (document.mail_form.champ1.value == "") {
alert("Veuillez préciser votre nom")
return false
}

if (document.mail_form.champ2.value == "") {
alert("Veuillez préciser votre prénom")
return false
}

if (document.mail_form.zone_email1.value == "") {
alert("Veuillez préciser votre adresse email")
return false
}

invalidChars = " /:,;'"

for (i=0; i < invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}

atPos = document.mail_form.zone_email1.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos)

if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

if (periodPos+3 > document.mail_form.zone_email1.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}

nbrecases1 = document.mail_form.case1_.length

flag = 0

for (i = 0; i < nbrecases1 ; i++) {

if (document.mail_form.case1_[i].checked) {

flag = 1

}

}


if (flag == 0) {

alert("Vous devez avoir lu et accepter les conditions générales d\'utilisation")
return false;
}


} // Fin de la fonction
</script>
</head>

<body>

<form name="mail_form" method="post" action="<?=$_SERVER['../../../../wamp/www/PHP_SELF']?>" onSubmit="return verifSelection()">
<div align="center"></div>
<font size="-1" face="Arial, Helvetica, sans-serif"><br>
</font>
<table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="16"><div align="center">
<font color="#CC0000" size="-1" face="Arial, Helvetica, sans-serif"><strong>




<?
require("conf.php");

switch($action) {
/*-----------------------------------------------------------------*/
/* AJOUT DANS MySQL */
/*-----------------------------------------------------------------*/

case "add";

// CONNEXION A LA BASE DE DONNEE
$db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}




// ON VERIFIE SI CE PSEUDO EXISTE DEJA
$requete=mysql_db_query($sql_bdd,"select * from membre where pseudo=\"$zone_email1\"",$db_link) or die(mysql_error());
$num=mysql_num_rows($requete);
if($num!=0)
{
echo "Cette adresse email existe déjà, veuillez contacter notre support technique <br><br><a href=\"javascript:window.history.back()\">Retour</a>";
}


else
{

// ON RECHERCHE L'ID MAXIMUM DE LA TABLE
$requete=mysql_db_query($sql_bdd,"select max(id_membre) from membre",$db_link) or die(mysql_error());
$idmax=mysql_result($requete,0,"max(id_membre)");



// INSERTION DANS LA TABLE
$idnew=$idmax+1;
$requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\")",$db_link) or die(mysql_error());
// CHAMPS SUPLEMENTAIRES, complétez la requête précédente en ajoutant les variables et en respectant l'ordre des colonnes de la table. Exemple :
// insert into membre values ($idnew,\"$id\",\"$champ1\",\"$champ2\",\"$zone_email1\")

}



<?php
if ($erreur_champ1) {
echo(stripslashes($erreur_champ1));
} else {
if ($erreur_champ2) {
echo(stripslashes($erreur_champ2));
} else {
if ($erreur_email1) {
echo(stripslashes($erreur_email1));
} else {
if ($erreur_email2) {
echo(stripslashes($erreur_email2));
} else {
if ($erreur_case1) {
echo(stripslashes($erreur_case1));
} else {
if ($erreur_case2) {
echo(stripslashes($erreur_case2));
} else {
if ($erreur_case3) {
echo(stripslashes($erreur_case3));
} else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
</strong></font>
</div></td>
</tr>
</table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">Votre nom </font>*</div></td>
<td align="center" valign="middle" width="30">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_champ1) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>">
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">Votre prénom</font> *</div></td>
<td align="center" valign="middle" width="30">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_champ2) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="champ2" type="text" value="<?=stripslashes($_SESSION['champ2']);?>">
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">Votre adresse email</font> *</div></td>
<td width="30" align="center" valign="middle">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_email1) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>">
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">Adresse email de votre parrain (1)</font></div></td>
<td width="30" align="center" valign="middle">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_email2) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="zone_email2" type="text" value="<?=stripslashes($_SESSION['zone_email2']);?>">
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">J'ai lu et j'accepte les conditions générales d'utilisation (2)</font> * </div></td>
<td width="30" align="center" valign="middle">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_case1) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input type="checkbox" name="case1_[0]" id="case1_" value="oui"<?php
if ($_SESSION['case1_'][0] == "oui") {
echo(" checked");
}
?>>
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">Je souhaite recevoir la newsletter</font></div></td>
<td width="30" align="center" valign="middle">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_case2) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="case2_[0]" type="checkbox" id="case2_" value="oui" checked checked<?php
if ($_SESSION['case2_'][0] == "oui") {
echo(" checked");
}
?>>
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td width="240"><div align="left"><font face="Arial, Helvetica, sans-serif" size="3">Je souhaite recevoir les offres des partenaires</font></div></td>
<td width="30" align="center" valign="middle">
<font size="-1" face="Arial, Helvetica, sans-serif">
<?php
if ($erreur_case3) {
echo($icone);
}
?>
</font></td>
<td><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="case3_[0]" type="checkbox" id="case3_" value="oui" checked checked<?php
if ($_SESSION['case3_'][0] == "oui") {
echo(" checked");
}
?>>
</font></td>
</tr></table><table width="566" border="0" align="center"><tr>
<td valign="top"><div align="center">
<p> </p>
<p><font size="-1" face="Arial, Helvetica, sans-serif">
<input type="submit" name="envoi" value="Envoyer le formulaire d'inscription">
</font></p>
</div></td></tr></table><div align="center"><font size="-1" face="Arial, Helvetica, sans-serif">
<input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value="">
</font></div></form>
</body></html>
0
Et voici enfin le fichier conf.php quie accompagne le register.php (nécessaire BDD):


<?
/*-----------------------------------------------------------------*/
/* VARIABLES A MODIFIER */
/*-----------------------------------------------------------------*/

// SERVEUR SQL
$sql_serveur="localhost";

// LOGIN SQL
$sql_user="";

// MOT DE PASSE SQL
$sql_passwd="";

// NOM DE LA BASE DE DONNEES
$sql_bdd="test";

// REDIRECTION VERS UNE PAGE ERREUR AU CAS OU LE LOGIN ET MOT DE PASSE SONT INVALIDES
$url_erreur="erreur.htm";

?>
0
Personne pour m'aider ?
S'il vous plaît, une âme charitable....Je ne m'en sors pas !
Merci beaucoup par avance
Fishes
0