Corto64
Messages postés22Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention30 juin 2011
-
Modifié par Corto64 le 15/12/2010 à 18:51
Corto64
Messages postés22Date d'inscriptiondimanche 25 avril 2010StatutMembreDernière intervention30 juin 2011
-
15 déc. 2010 à 18:51
Bonjour,
J'ai un formulaire pour inscription dans une base MySQL qui me pose les problèmes suivants:
-1- ne me renvoie pas d'information(s) de défaut(s)
-2- n'inscrit rien dans la base
Mon fichier connect.inc.php est bien présent et complet dans le sous dossier cible....
Cela fait des heures que je le regarde sous toutes les coutures, je ne vois pas où est le problème.
Si vous pouviez jeter un oeil dessus pour me conseiller, ce serait sympa!
D'avance merci.
Le code ci-après (placé avant le <!DOCTYPE>:
<?php
include ('includes/connect.inc.php');
include ('includes/creat_pass.php'); //Génération automatique du mot de passe qui sera crypé dans la base - md5
?>
<?php
$DebugResultat = 0; // Affichage résultat : Mettre 0 quand les tests sont terminés
$NePasVerifier = array(); // Le nom des champs à exclure du test champs vides ( Ex : $NePasVerifier = array('tel','cp'); )
#################### Fonctions
function VerifForm ( $DonneesForm, $NePasVerifier )
{
#################### Préparation
// Dans ce tableau on stockera les messages d'erreurs
$Erreurs = array();
// On construit un tableau : Clé = nom du champ, valeur = valeur du champ
$formulaire = array();
foreach( $DonneesForm as $cle => $valeur )
{
$formulaire[$cle] = $valeur;
}
#################### Vérification du formulaire
// On recherche les valeurs NULL( champs vides )
$NbChampsVides = 0;
foreach ( $formulaire as $cle => $valeur )
{
if ( !in_array( $cle, $NePasVerifier ) )
{
if ( $valeur == NULL )
{
$NbChampsVides ++;
}
}
}
if ( $NbChampsVides != 0 )
{
$Erreurs[1] = $NbChampsVides.' champ(s) obligatoire(s) non rempli(s)';
}
// On vérifie que le code postal soit bien une chaîne numérique et qu'il comporte 5 chiffres
if ( ( isset( $formulaire['cp'] ) ) && ( !is_numeric( $formulaire['cp'] ) || strlen( $formulaire['cp'] ) != 5 ) )
{
$Erreurs[2] = 'Le code postal doit être composé de 5 chiffres !';
}
// On vérifie que le téléphone soit bien une chaîne numérique et qu'il comporte 10 chiffres
if ( ( isset( $formulaire['telephone'] ) ) && ( !is_numeric( $formulaire['telephone'] ) || strlen( $formulaire['telephone'] ) != 10 ) )
{
$Erreurs[3] = 'Le numéro de téléphone doit être composé de 10 chiffres !';
}
// On vérifie la structure de l'email
if ( ( isset( $formulaire['email'] ) ) && ( !ereg( '.+(@.+)(\.[[:alpha:]]{2}([[:alpha:]]?))$', $formulaire['email'] ) ) )
{
$Erreurs[4] = 'Le format de l\'adresse email ne semble pas valide !';
}
#################### Fin
// On construit la liste des erreurs s'il y en a
if ( $Erreurs != NULL )
{
$ErreursForm = '<ul class="erreurs">';
foreach( $Erreurs as $cle => $valeur )
{
$ErreursForm .= '<li>'.$valeur.'</li>';
}
$ErreursForm .= '</ul>';
}
else {
$ErreursForm = NULL;
}
// On retourne le tableau $formulaire et la liste des erreurs
return array( $formulaire, $ErreursForm ) ;
}
#################### Traitement
$ErreursForm = NULL;
$formulaire = NULL;
$resultat = NULL;
if ( isset( $_POST['nom'] ) )
{
// Appel de la fonction de vérification
list( $formulaire, $ErreursForm ) = VerifForm( $_POST, $NePasVerifier );
// Si la fonction ne retourne pas d'erreurs, on envoi les données
if ( $ErreursForm == NULL )
{
// Debugage : résultat
if ( $DebugResultat == 1 )
{
$resultat = '<ul>';
foreach( $formulaire as $cle => $valeur )
{
$resultat .= '<li>'.$cle.' : '.$valeur.'</li>';
}
$resultat .= '</ul>';
}
//définition de variables
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$adresse = $_POST['adresse'];
$ville = $_POST['ville'];
$cp= $_POST['cp'];
$telephone = $_POST['telephone'];
$pays = $_POST['pays'];
$email = $_POST['email'];
$mdp = $motdepasse;
$mdp_mess = $mdp;
$mdp = md5($_POST['mdp']);
$dpt = substr($cp, 0, 2);
if(!get_magic_quotes_gpc())
{
$prenom = addslashes($prenom);
$nom = addslashes($nom);
$adresse= addslashes($adresse);
$ville = addslashes($ville);
}
//verification si le client n'est pas déjà inscrit
$sql = 'SELECT * FROM clients WHERE nom="'.mysql_real_escape_string($_POST['nom']).'" AND prenom="'.mysql_real_escape_string($_POST['prenom']).'" AND email = "'.mysql_escape_string($_POST['email']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
if ($data[0] == 0) {
// on enregistre les données dans la bdd, dans la table
$sql = "INSERT INTO clients (idclient, date, nom, prenom, email, adresse, cp, ville, dpt, pays, telephone, mdp) VALUES ('', NOW(), '" .$nom. "', '" .$prenom. "', '" .$email. "', '" .$adresse. "', '" .$cp. "', '" .$ville. "', '" .$dpt. "', '" .$pays. "', '" .$telephone. "', '" .$mdp. "') ";
//signalement si pb lors de l'insertion
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
//récupération de l'id client
$id = mysql_insert_id();
include ('code_boutik/mail_inscript.php');
session_start();
$_SESSION['idclient'] = $id;
$_SESSION['nom'] = $nom;
$_SESSION['prenom'] = $prenom;
$_SESSION['email'] = $email;
$_SESSION['mdp'] = $mdp;
header('Location: cpte_client.php');
exit();
// Fin de l'action
mysql_close();
}
else{
$erreur = " <b>$prenom $nom</b> est déjà inscrit dans notre base. Si vous avez perdu votre mort de passe, contactez le webmaster. Merci, et à bientôt.
<br />
<a href=\"acc_boutik.php\">Cliquez ici pour revenir à l'accueil de la boutique</a>, ou <a href=\"identif.php\">ici pour vous identifier</a>."; }
}
}
?>