Eléphanteau du PHP |
29 Messages
19 juil. 2009, 14:56
Ok merci . Bon du coup j'ai inséré le code de
stopher dans ma page de code ( je rappelle qu'à la base j 'ai une page en html avec mon formulaire et une autre page qui permet de traiter l'envoi dans la BDD, et c'est cette dernière page dont je parle ici ) et ça ne marche pas pour autant . Quant à la "function mysql_escape_string();" elle apparaît également dans mon code ...
Et finalement je ne comprends pas d'où vient mon erreur, malgrè le fait que j'ai à peu près compris tout ce que tu t'acharnes à m'expliquer depuis tout à l'heure
Voici mon code PHP, pourrais-tu y jeter un coup d'oeil s'il te plaît ?
<?php
if(isset($_POST['nom'])) { // Si on envoie le formulaire
// Connexion à la base de données "externalisation"
mysql_connect("localhost", "root");
mysql_select_db("externalisation");
// On récupère les $_POST et on en fait des variables
$_POST = array_map('mysql_real_escape_string', $_POST); // on applique mysql_real_escape_string sur tout le tableau $_POST
$nom = $_POST['nom'];
$mot_de_passe = $_POST['mot_de_passe'];
$email = $_POST['email'];
$datetime = date('Y-m-d') .' '. date('H:i:s');
//Vérification de l'email
$retour = filter_var('[email protected]', FILTER_VALIDATE_EMAIL);
if($retour){
echo "Adresse Valide ! ";
}
// On crypte le mot de passe
define('PREFIXE_SHA1', 'p8%B;Qdf78');
$mdp_sha1 = $_POST['mot_de_passe'];
$mdp_sha1 = sha1(PREFIXE_SHA1.$mdp_sha1);
// On part du principe que le nom d'utilisateur est unique, on doit vérifier qu'il n'existe pas déjà ans la table
$requete = "SELECT COUNT(*) AS nb FROM formulaire WHERE utilisateur = '". $nom ."'"; // On crée la requête
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // On exécute la requête
$donnees = mysql_fetch_array($resultat); // On crée un tableau pour récupérer la valeur que renvoie la requête
$nombre = $donnees['nb']; // On crée une variable qui contiendra le nombre de résultats renvoyé par la requête
if($nombre == 0) { // Si la variable renvoie 0 c'est que le nom d'utilisateur n'existe pas dans la table donc on peut l'enregistrer
$requete = "INSERT INTO formulaire VALUES('". $nom ."', '". $mdp_sha1 ."', 1, '". $datetime ."', '". $email ."')";
$resultat = mysql_query($requete) or die('ERREUR SQL : '. $requete . mysql_error()); // on exécute la requête
echo 'Enregistrement effectué. Vous êtes maintenant inscrit. Merci !<br />';
// On crée le message email
$msg1 = 'Merci pour votre inscription et bienvenue sur le site ! Votre identifiant est '. $nom .' et votre mot de passe est '. $mot_de_passe; //Message pour le nouveau membre
$msg2 = 'Un nouveau membre s\'est inscrit: '. $nom; //Message pour le webmaster
$recipient = '[email protected]'; //Adresse mail du webmaster
ini_set("sendmail_from",$recipient);
$subject = 'Formulaire d\'inscription'; //On met le sujet du mail
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$header .= "From: ". $email ."";
$mail1 = mail($recipient, $subject, $msg2, $header); //Mail envoyé au webmaster
$mail2 = mail($email, $subject, $msg1, $header); //Mail envoyé au nouveau membre
if($mail1 && $mail2 == true) {
echo 'Vous allez recevoir un mail avec vos informations.';
} else {
echo 'Erreur dans l\'envoi du mail .';
}
} else { // Sinon ce nom existe déjà, on insert aucune donnée
echo 'L\'utilisateur '. $nom .' existe déjà. Veuillez vous réinscrire sous un autre nom d\' utilisateur.';
}
mysql_close(); // On ferme la connexion
}
?>