par
Grepher76380 » 19 juil. 2012, 19:14
Bonjour,
Après avoir résolut le problèmes pour les renvoi de mot de passe perdu voila mon soucis, j'ai modifier mon fichier et ma base de donnée pour ajoutée des champs (Nom, Prénom, Age, Ville) dans ma base de donnée et sur la page inscription j'ai modifier pour que a l'inscription sa l'inscrit dans la basse de donnée et tous fonctionne, mais j'ai pas encore bien comprit le systèmes des "UPDATE" donc voila après plusieurs test (sans réussite) je me retourne vers vous pour que vous puissiez m'aider à faire fonctionné mon code (est oui encore moi désolé)
Voici le code de ma page edit_membre :
Code : Tout sélectionner
<?php require('include.php');
protect();
$erm = array();
if(isset($_POST['sendmail'])){
$pseudo = $db->prepare("SELECT `id` FROM `users` WHERE `mail` = :mail ;");
$pseudo->execute(array("mail"=>$_POST['mail']));
if($pseudo->rowCount()){
$erm[] = "L'e-mail \"".htmlspecialchars($_POST['mail'])."\" est déjà utilisé.";
}
if(!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
$erm[] = "L'e-mail entré est invalide.";
}
if(empty($erm)){
$mail_edit = $db->prepare("UPDATE `users` SET `mail`= :mail WHERE `id`= :id LIMIT 1;");
$mail_edit->execute(array(
"mail" => $_POST['mail'],
"id" => $_SESSION['users']->id
));
redirect("empty_jeton.php?logout");
}
}
if(isset($_POST['sendmdp'])){
if($_POST['mdp']!=$_POST['mdp2']){
$erm[] = "Les deux mots de passes ne sont pas identique.";
}
if(strlen($_POST['mdp'])<6){
$erm[] = "Le mot de passe doit faire au moins 6 caractères";
}
if($_POST['mdp']==$_SESSION['users']->pseudo){
$erm[] = "Le mot de passe doit être différent du pseudo";
}
if(empty($erm)){
$mdp_edit = $db->prepare("UPDATE `users` SET `mdp`= :mdp WHERE `id`= :id LIMIT 1;");
$mdp_edit->execute(array(
"mdp" => base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), $_POST['mdp'], MCRYPT_MODE_CBC, md5(md5(key_encrypt)))),
"id" => $_SESSION['users']->id
));
$empty = $db->prepare("DELETE FROM `jetons` WHERE `id_users`= :id;");
$empty->execute(array(
"id" => $_SESSION['users']->id
));
redirect("empty_jeton.php?logout");
}
}
if(isset($_POST['sendip'])){
$ip_edit = $db->prepare("UPDATE `users` SET `ip`= :ip WHERE `id`= :id LIMIT 1;");
$ip_edit->execute(array(
"ip" => $_SERVER['REMOTE_ADDR'],
"id" => $_SESSION['users']->id
));
redirect("empty_jeton.php?logout");
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Modifier le profil</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="content" >
<?php
if(!empty($erm) and isset($erm)){
?>
<div class="error" >
<?php
foreach($erm as $a=>$b){ echo "- ".$b."<br>";
}
?>
</div>
<?php
}
?>
<h2>Modifier le profil</h2>
<form action="edit_users.php" method="post" dir="ltr" lang="fr">
<p>
<label>Adresse mail:<br>
<input name="mail" type="mail" value="<?php echo $_SESSION['users']->mail; ?>" dir="ltr" lang="fr">
</label>
</p>
<p>
<input name="sendmail" type="submit" value="Modifer">
</p>
</form>
<hr>
<form action="edit_users.php" method="post" dir="ltr" lang="fr">
<p>
<label>Mot de passe:<br>
<input name="mdp" type="password" dir="ltr" lang="fr">
</label>
</p>
<p>
<label>Mot de passe:<br>
<input name="mdp2" type="password" dir="ltr" lang="fr">
</label>
</p>
<p>
<input name="sendmdp" type="submit" value="Modifer">
</p>
</form>
<hr>
<form action="edit_users.php" method="post" dir="ltr" lang="fr">
<p>
<?php
if($_SESSION['users']->ip==$_SERVER['REMOTE_ADDR']){
echo '<div class="succes">Cet ordinateur est utilisé par défaut</div>';
}else{
echo '<div class="error" >Cet ordinateur n\'est pas utilisé par défaut</div>';
}
?>
</p>
<p>
<input name="sendip" type="submit" value="Définir cet ordinateur par défaut">
</p>
</form>
<p><a href="index.php">Retour à l'acceuil</a></p>
</div>
</body>
</html>
Voici mon dossier Inscription.php :
Code : Tout sélectionner
<?php require('include.php'); ?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Inscription</title>
<link rel="stylesheet" href="style/style.css">
</head>
<body>
<div class="content">
<h2>Inscription</h2>
<?php
if(isset($_POST['send'])){
$erm = array();
$pseudo = $db->prepare("SELECT `id` FROM `users` WHERE `pseudo` = :pseudo ;");
$pseudo->execute(array("pseudo"=>$_POST['pseudo']));
if($pseudo->rowCount()){
$erm[] = "Le pseudo \"".htmlspecialchars($_POST['pseudo'])."\" est déjà utilisé.";
}
if(strlen($_POST['pseudo'])<4){
$erm[] = "Le pseudo doit faire au moins 4 caractères";
}
$pseudo = $db->prepare("SELECT `id` FROM `users` WHERE `mail` = :mail ;");
$pseudo->execute(array("mail"=>$_POST['mail']));
if($pseudo->rowCount()){
$erm[] = "L'e-mail \"".htmlspecialchars($_POST['mail'])."\" est déjà utilisé.";
}
if(!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
$erm[] = "L'e-mail entré est invalide.";
}
if($_POST['mdp']!=$_POST['mdp2']){
$erm[] = "Les deux mots de passes ne sont pas identique.";
}
if(strlen($_POST['mdp'])<6){
$erm[] = "Le mot de passe doit faire au moins 6 caractères";
}
if($_POST['mdp']==$_POST['pseudo']){
$erm[] = "Le mot de passe doit être différent du pseudo";
}
$nom = $db->prepare("SELECT `id` FROM `users` WHERE `nom` = :nom ;");
$nom->execute(array("nom"=>$_POST['nom']));
if($nom->rowCount()){
$erm[] = "Merci de remplir le champ Nom";
}
$prenom = $db->prepare("SELECT `id` FROM `users` WHERE `prenom` = :prenom ;");
$prenom->execute(array("nom"=>$_POST['prenom']));
if($prenom->rowCount()){
$erm[] = "Merci de remplir le champ Prénom";
}
$age = $db->prepare("SELECT `id` FROM `users` WHERE `age` = :age ;");
$age->execute(array("nom"=>$_POST['age']));
if($age->rowCount()){
$erm[] = "Merci de remplir le champ Age";
}
$ville = $db->prepare("SELECT `id` FROM `users` WHERE `ville` = :ville ;");
$ville->execute(array("nom"=>$_POST['ville']));
if($ville->rowCount()){
$erm[] = "Merci de remplir le champ Ville";
}
if(empty($erm)){
$_POST['mdp'] = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), $_POST['mdp'], MCRYPT_MODE_CBC, md5(md5(key_encrypt))));
$signup = $db->prepare("INSERT INTO `users` (`pseudo`, `mail`, `mdp`, `ip`, `nom`, `prenom`, `age`, `ville`) VALUES ( :pseudo , :mail , :mdp , :ip , :nom , :prenom , :age , :ville );");
$signup->execute(array(
"pseudo" => $_POST['pseudo'],
"mail" => $_POST['mail'],
"mdp" => $_POST['mdp'],
"ip" => $_SERVER['REMOTE_ADDR'],
"nom" => $_POST['nom'],
"prenom" => $_POST['prenom'],
"age" => $_POST['age'],
"ville" => $_POST['ville']
));
$idc = $db->prepare("SELECT `id` FROM `users` WHERE `pseudo` = :pseudo LIMIT 1;");
$idc->execute(array("pseudo" => $_POST['pseudo']));
$id = $idc->fetch();
$active_link = dirname("http://".$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"])."/active.php?key=".($id['id']).'_'.uniqid(time());
$message = "Bienvenue sur l'espace membre de .: Miki-HeberG :.<br>";
$message = "Vous êtes prié de conserver cet e-mail dans vos archives. Voici les informations concernant votre compte:<br>";
$message = "----------------------------<br>";
$message = "Votre Speudo: .$speudo<br>";
$message = "Votre mot de Passe: .$mdp<br>";
$message = "----------------------------<br>";
$message = "Visitez le lien suivant afin d'activer votre compte: <a href=\"$active_link\">$active_link</a><br>";
$message = "Votre mot de passe a été stocké de manière sécurisée dans notre base de données. Dans le cas où vous l'auriez oublié, vous pourrez le retrouvez en utilisant l'adresse e-mail associée à votre compte.<br>";
$message = "Merci de vous être enregistré.<br>";
$headers = "From: ".company_name."<".company_mail.">\n";
$headers .= "Reply-To: ".company_mail."\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
mail($_POST['mail'],"Activation de votre compte [".company_name."]",$message,$headers);
echo "<div class=\"succes\">Vous avez bien été inscrit.<br><small>Un mail de confirmation vient de vous être envoyé.</small></div>";
}
}
if(!empty($erm) and isset($erm)){
?>
<div class="error" >
<?php
foreach($erm as $a=>$b){ echo "- ".$b."<br>";
}
?>
</div>
<?php
}
?>
<form action="sign_up.php" method="post" dir="ltr" lang="fr">
<p>
<label>Speudo:<br><input name="pseudo" type="text" required="required"></label>
</p>
<p>
<label>Mot de passe:<br><input name="mdp" type="password" required="required"></label>
</p>
<p>
<label>Mot de passe:<br><input name="mdp2" type="password" required="required"></label>
</p>
<p>
<label>E-mail:<br><input name="mail" type="email" required="required"></label>
</p>
<p>
<label>Nom:<br><input name="nom" type="text" required="required"></label>
</p>
<p>
<label>Prénom:<br><input name="prenom" type="text" required="required"></label>
</p>
<p>
<label>Age:<br><input name="age" type="text" required="required"></label>
</p>
<p>
<label>Ville:<br><input name="ville" type="text" required="required"></label>
</p>
<p>
<input name="send" type="submit" value="Inscription">
</p>
</form>
</body>
</html>
Et voici un petit "Topo" de se que je voudrait (évidemment si vous acceptez toujours de m'aider):
- Un champs Nom (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Nom")
- Un champs Prénom (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Prénom")
- Un champs Age (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Age")
- Un champs Ville (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Ville")
EDIT: Fichier à modifier (Edit_user)
Bonjour,
Après avoir résolut le problèmes pour les renvoi de mot de passe perdu voila mon soucis, j'ai modifier mon fichier et ma base de donnée pour ajoutée des champs (Nom, Prénom, Age, Ville) dans ma base de donnée et sur la page inscription j'ai modifier pour que a l'inscription sa l'inscrit dans la basse de donnée et tous fonctionne, mais j'ai pas encore bien comprit le systèmes des "UPDATE" donc voila après plusieurs test (sans réussite) je me retourne vers vous pour que vous puissiez m'aider à faire fonctionné mon code (est oui encore moi désolé)
Voici le code de ma page edit_membre :
[code]<?php require('include.php');
protect();
$erm = array();
if(isset($_POST['sendmail'])){
$pseudo = $db->prepare("SELECT `id` FROM `users` WHERE `mail` = :mail ;");
$pseudo->execute(array("mail"=>$_POST['mail']));
if($pseudo->rowCount()){
$erm[] = "L'e-mail \"".htmlspecialchars($_POST['mail'])."\" est déjà utilisé.";
}
if(!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
$erm[] = "L'e-mail entré est invalide.";
}
if(empty($erm)){
$mail_edit = $db->prepare("UPDATE `users` SET `mail`= :mail WHERE `id`= :id LIMIT 1;");
$mail_edit->execute(array(
"mail" => $_POST['mail'],
"id" => $_SESSION['users']->id
));
redirect("empty_jeton.php?logout");
}
}
if(isset($_POST['sendmdp'])){
if($_POST['mdp']!=$_POST['mdp2']){
$erm[] = "Les deux mots de passes ne sont pas identique.";
}
if(strlen($_POST['mdp'])<6){
$erm[] = "Le mot de passe doit faire au moins 6 caractères";
}
if($_POST['mdp']==$_SESSION['users']->pseudo){
$erm[] = "Le mot de passe doit être différent du pseudo";
}
if(empty($erm)){
$mdp_edit = $db->prepare("UPDATE `users` SET `mdp`= :mdp WHERE `id`= :id LIMIT 1;");
$mdp_edit->execute(array(
"mdp" => base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), $_POST['mdp'], MCRYPT_MODE_CBC, md5(md5(key_encrypt)))),
"id" => $_SESSION['users']->id
));
$empty = $db->prepare("DELETE FROM `jetons` WHERE `id_users`= :id;");
$empty->execute(array(
"id" => $_SESSION['users']->id
));
redirect("empty_jeton.php?logout");
}
}
if(isset($_POST['sendip'])){
$ip_edit = $db->prepare("UPDATE `users` SET `ip`= :ip WHERE `id`= :id LIMIT 1;");
$ip_edit->execute(array(
"ip" => $_SERVER['REMOTE_ADDR'],
"id" => $_SESSION['users']->id
));
redirect("empty_jeton.php?logout");
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Modifier le profil</title>
<link href="style/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="content" >
<?php
if(!empty($erm) and isset($erm)){
?>
<div class="error" >
<?php
foreach($erm as $a=>$b){ echo "- ".$b."<br>";
}
?>
</div>
<?php
}
?>
<h2>Modifier le profil</h2>
<form action="edit_users.php" method="post" dir="ltr" lang="fr">
<p>
<label>Adresse mail:<br>
<input name="mail" type="mail" value="<?php echo $_SESSION['users']->mail; ?>" dir="ltr" lang="fr">
</label>
</p>
<p>
<input name="sendmail" type="submit" value="Modifer">
</p>
</form>
<hr>
<form action="edit_users.php" method="post" dir="ltr" lang="fr">
<p>
<label>Mot de passe:<br>
<input name="mdp" type="password" dir="ltr" lang="fr">
</label>
</p>
<p>
<label>Mot de passe:<br>
<input name="mdp2" type="password" dir="ltr" lang="fr">
</label>
</p>
<p>
<input name="sendmdp" type="submit" value="Modifer">
</p>
</form>
<hr>
<form action="edit_users.php" method="post" dir="ltr" lang="fr">
<p>
<?php
if($_SESSION['users']->ip==$_SERVER['REMOTE_ADDR']){
echo '<div class="succes">Cet ordinateur est utilisé par défaut</div>';
}else{
echo '<div class="error" >Cet ordinateur n\'est pas utilisé par défaut</div>';
}
?>
</p>
<p>
<input name="sendip" type="submit" value="Définir cet ordinateur par défaut">
</p>
</form>
<p><a href="index.php">Retour à l'acceuil</a></p>
</div>
</body>
</html>[/code]
Voici mon dossier Inscription.php :
[code]<?php require('include.php'); ?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Inscription</title>
<link rel="stylesheet" href="style/style.css">
</head>
<body>
<div class="content">
<h2>Inscription</h2>
<?php
if(isset($_POST['send'])){
$erm = array();
$pseudo = $db->prepare("SELECT `id` FROM `users` WHERE `pseudo` = :pseudo ;");
$pseudo->execute(array("pseudo"=>$_POST['pseudo']));
if($pseudo->rowCount()){
$erm[] = "Le pseudo \"".htmlspecialchars($_POST['pseudo'])."\" est déjà utilisé.";
}
if(strlen($_POST['pseudo'])<4){
$erm[] = "Le pseudo doit faire au moins 4 caractères";
}
$pseudo = $db->prepare("SELECT `id` FROM `users` WHERE `mail` = :mail ;");
$pseudo->execute(array("mail"=>$_POST['mail']));
if($pseudo->rowCount()){
$erm[] = "L'e-mail \"".htmlspecialchars($_POST['mail'])."\" est déjà utilisé.";
}
if(!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)){
$erm[] = "L'e-mail entré est invalide.";
}
if($_POST['mdp']!=$_POST['mdp2']){
$erm[] = "Les deux mots de passes ne sont pas identique.";
}
if(strlen($_POST['mdp'])<6){
$erm[] = "Le mot de passe doit faire au moins 6 caractères";
}
if($_POST['mdp']==$_POST['pseudo']){
$erm[] = "Le mot de passe doit être différent du pseudo";
}
$nom = $db->prepare("SELECT `id` FROM `users` WHERE `nom` = :nom ;");
$nom->execute(array("nom"=>$_POST['nom']));
if($nom->rowCount()){
$erm[] = "Merci de remplir le champ Nom";
}
$prenom = $db->prepare("SELECT `id` FROM `users` WHERE `prenom` = :prenom ;");
$prenom->execute(array("nom"=>$_POST['prenom']));
if($prenom->rowCount()){
$erm[] = "Merci de remplir le champ Prénom";
}
$age = $db->prepare("SELECT `id` FROM `users` WHERE `age` = :age ;");
$age->execute(array("nom"=>$_POST['age']));
if($age->rowCount()){
$erm[] = "Merci de remplir le champ Age";
}
$ville = $db->prepare("SELECT `id` FROM `users` WHERE `ville` = :ville ;");
$ville->execute(array("nom"=>$_POST['ville']));
if($ville->rowCount()){
$erm[] = "Merci de remplir le champ Ville";
}
if(empty($erm)){
$_POST['mdp'] = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(key_encrypt), $_POST['mdp'], MCRYPT_MODE_CBC, md5(md5(key_encrypt))));
$signup = $db->prepare("INSERT INTO `users` (`pseudo`, `mail`, `mdp`, `ip`, `nom`, `prenom`, `age`, `ville`) VALUES ( :pseudo , :mail , :mdp , :ip , :nom , :prenom , :age , :ville );");
$signup->execute(array(
"pseudo" => $_POST['pseudo'],
"mail" => $_POST['mail'],
"mdp" => $_POST['mdp'],
"ip" => $_SERVER['REMOTE_ADDR'],
"nom" => $_POST['nom'],
"prenom" => $_POST['prenom'],
"age" => $_POST['age'],
"ville" => $_POST['ville']
));
$idc = $db->prepare("SELECT `id` FROM `users` WHERE `pseudo` = :pseudo LIMIT 1;");
$idc->execute(array("pseudo" => $_POST['pseudo']));
$id = $idc->fetch();
$active_link = dirname("http://".$_SERVER['HTTP_HOST'].$_SERVER["PHP_SELF"])."/active.php?key=".($id['id']).'_'.uniqid(time());
$message = "Bienvenue sur l'espace membre de .: Miki-HeberG :.<br>";
$message = "Vous êtes prié de conserver cet e-mail dans vos archives. Voici les informations concernant votre compte:<br>";
$message = "----------------------------<br>";
$message = "Votre Speudo: .$speudo<br>";
$message = "Votre mot de Passe: .$mdp<br>";
$message = "----------------------------<br>";
$message = "Visitez le lien suivant afin d'activer votre compte: <a href=\"$active_link\">$active_link</a><br>";
$message = "Votre mot de passe a été stocké de manière sécurisée dans notre base de données. Dans le cas où vous l'auriez oublié, vous pourrez le retrouvez en utilisant l'adresse e-mail associée à votre compte.<br>";
$message = "Merci de vous être enregistré.<br>";
$headers = "From: ".company_name."<".company_mail.">\n";
$headers .= "Reply-To: ".company_mail."\n";
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
mail($_POST['mail'],"Activation de votre compte [".company_name."]",$message,$headers);
echo "<div class=\"succes\">Vous avez bien été inscrit.<br><small>Un mail de confirmation vient de vous être envoyé.</small></div>";
}
}
if(!empty($erm) and isset($erm)){
?>
<div class="error" >
<?php
foreach($erm as $a=>$b){ echo "- ".$b."<br>";
}
?>
</div>
<?php
}
?>
<form action="sign_up.php" method="post" dir="ltr" lang="fr">
<p>
<label>Speudo:<br><input name="pseudo" type="text" required="required"></label>
</p>
<p>
<label>Mot de passe:<br><input name="mdp" type="password" required="required"></label>
</p>
<p>
<label>Mot de passe:<br><input name="mdp2" type="password" required="required"></label>
</p>
<p>
<label>E-mail:<br><input name="mail" type="email" required="required"></label>
</p>
<p>
<label>Nom:<br><input name="nom" type="text" required="required"></label>
</p>
<p>
<label>Prénom:<br><input name="prenom" type="text" required="required"></label>
</p>
<p>
<label>Age:<br><input name="age" type="text" required="required"></label>
</p>
<p>
<label>Ville:<br><input name="ville" type="text" required="required"></label>
</p>
<p>
<input name="send" type="submit" value="Inscription">
</p>
</form>
</body>
</html>[/code]
Et voici un petit "Topo" de se que je voudrait (évidemment si vous acceptez toujours de m'aider):
- Un champs Nom (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Nom")
- Un champs Prénom (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Prénom")
- Un champs Age (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Age")
- Un champs Ville (avec un update pour la base de donnée, un message d'erreur "Merci de remplir le champ Ville")
[color=#FF0000][size=150]EDIT: Fichier à modifier (Edit_user)[/size][/color]