Mysql_fetch_array()
Résolu/Fermé
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
-
20 juin 2009 à 02:47
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 20 juin 2009 à 16:30
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 20 juin 2009 à 16:30
12 réponses
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 104
20 juin 2009 à 02:49
20 juin 2009 à 02:49
c'est laquelle la ligne 25 ?
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 12:36
20 juin 2009 à 12:36
Bonjour, je reviens avec mon soucis espérant avoir une solution ce matin.
Merci
Merci
Templier Nocturne
Messages postés
7734
Date d'inscription
jeudi 22 janvier 2009
Statut
Membre
Dernière intervention
21 mai 2016
1 104
20 juin 2009 à 14:06
20 juin 2009 à 14:06
:/ je m'y connais pas assez pour t'aider, désolé...
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 14:10
20 juin 2009 à 14:10
Ok merci bien d'avoir essayé
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 14:16
20 juin 2009 à 14:16
salut,
à tous les coups c'est que ta variable est pas encadrée d'apostrophes.
vire les parenthèse autour de la définition de la requête et ajoute un dump_var() pour savoir à quoi ressemble ta requête et copie/colle nous le résultat, stp :
PS : drôle d'idée de nommer ta variable $result alors que c'est une requête SQL.
tu ferais mieux de la nommer $sql.
à tous les coups c'est que ta variable est pas encadrée d'apostrophes.
vire les parenthèse autour de la définition de la requête et ajoute un dump_var() pour savoir à quoi ressemble ta requête et copie/colle nous le résultat, stp :
$result ="SELECT * FROM Comptes_Utilisateurs WHERE Clef_Activation = $id_user;"; $resultat = mysql_query($result); var_dump($result); $row = mysql_fetch_array($resultat) or die ("Erreur de connexion");
PS : drôle d'idée de nommer ta variable $result alors que c'est une requête SQL.
tu ferais mieux de la nommer $sql.
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 14:30
20 juin 2009 à 14:30
Ok, je vous envoi le resultat de suite. Merci, je renomme $result par $sql, C'est une bonne remarque
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 14:34
20 juin 2009 à 14:34
bool(false)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/content/p/g/a/pgaliba/html/TOUTAOUAGA/emploi/Copie de inscription/mon-cv.php on line 21
Erreur de connexion
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/content/p/g/a/pgaliba/html/TOUTAOUAGA/emploi/Copie de inscription/mon-cv.php on line 21
Erreur de connexion
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 14:40
20 juin 2009 à 14:40
heu doit y avoir une c***lle dans le potage…
il peut pas te retourner false sur une chaîne !
tu as bien :
il peut pas te retourner false sur une chaîne !
tu as bien :
$sql ="SELECT * FROM Comptes_Utilisateurs WHERE Clef_Activation = $id_user;"; var_dump($sql); $resultat = mysql_query($sql); $row = mysql_fetch_array($resultat) or die ("Erreur de connexion");
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 15:04
20 juin 2009 à 15:04
voici le post qui parlais d'abord du cryptage avec MD5
http://www.commentcamarche.net/forum/affich 12963423 crypter id dans base de donnee avec md5?#2
http://www.commentcamarche.net/forum/affich 12963423 crypter id dans base de donnee avec md5?#2
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
>
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
20 juin 2009 à 15:15
20 juin 2009 à 15:15
je vois pas l'intérêt de crypter l'identifiant.
tu mets le champ du mot de passe en "PASSWORD", le reste t'as pas besoin de le crypter.
tu mets le champ du mot de passe en "PASSWORD", le reste t'as pas besoin de le crypter.
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 14:49
20 juin 2009 à 14:49
non
J'avai oublié quelque chose:
Voici l'erreur
string(62) "SELECT * FROM Comptes_Utilisateurs WHERE Clef_Activation = 19;" Erreur de connexion
J'avai oublié quelque chose:
Voici l'erreur
string(62) "SELECT * FROM Comptes_Utilisateurs WHERE Clef_Activation = 19;" Erreur de connexion
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 14:50
20 juin 2009 à 14:50
fais un copier/coller de cette requête dans PHPMyAdmin et vois si il l'exécute sans problème.
SELECT * FROM Comptes_Utilisateurs WHERE Clef_Activation = 19;
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
>
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
20 juin 2009 à 15:00
20 juin 2009 à 15:00
Non, meme message : string(62) "SELECT * FROM Comptes_Utilisateurs WHERE Clef_Activation = 19;" Erreur de connexion
Au fait, la requete marche quand je n'utilise pas Clef_Activation. En utilisant ID_Utilisateur, j'ai aucun probleme a part que je veux pas qu'on voit l'ID de la base. J'ai voulu la cryper avec MD5 mais j(y suis pas arrivé, c'est ce qui m'a améné a utilisé Clef_Activation
Au fait, la requete marche quand je n'utilise pas Clef_Activation. En utilisant ID_Utilisateur, j'ai aucun probleme a part que je veux pas qu'on voit l'ID de la base. J'ai voulu la cryper avec MD5 mais j(y suis pas arrivé, c'est ce qui m'a améné a utilisé Clef_Activation
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 15:09
20 juin 2009 à 15:09
le type du champ "Clef_Activation" ce serait pas "string" par hasard ?
essaie :
si ça ne fonctionne pas, explique-nous ton histoire d'identifiant de md5() et compagnie, ça me parait pas clair !
essaie :
$sql ="SELECT * FROM `Comptes_Utilisateurs` WHERE `Clef_Activation` = '$id_user';";
si ça ne fonctionne pas, explique-nous ton histoire d'identifiant de md5() et compagnie, ça me parait pas clair !
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 15:27
20 juin 2009 à 15:27
ok, ca me met erreur de connexion
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
>
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
20 juin 2009 à 15:32
20 juin 2009 à 15:32
bon on arrête tout et on reprend le problème depuis le début, on avance à l'aveuglette, ça rime à rien !
en premier faut savoir ce que tu veux faire et pourquoi tu veux as besoin de ce champ "clé d'activation".
en premier faut savoir ce que tu veux faire et pourquoi tu veux as besoin de ce champ "clé d'activation".
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
>
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
20 juin 2009 à 15:44
20 juin 2009 à 15:44
Ok, je veux crypter mon ID dans la base en utilisant ceci:
<?
if(isset($_COOKIE['ID_UTILISATEUR']))
{
$id_user = md5($_COOKIE['ID_UTILISATEUR']);
// Connexion à la base de données
mysql_connect("xxxxxxx", "xxxxx", "xxxxxx");
mysql_select_db("xxxxxxx");
// Sélection de l'utilisateur concerné
$sql =("
SELECT *
FROM Comptes_Utilisateurs
WHERE ID_Utilisateur =$id_user;
");
$sql ="SELECT * FROM `Comptes_Utilisateurs` WHERE `Clef_Activation` = '$id_user';";
$resultat = mysql_query($sql);
$row = mysql_fetch_array($resultat) or die ("Erreur de connexion");
// Fermeture de la connexion à la base de données
mysql_close();
?>
Es-ce possible?
<?
if(isset($_COOKIE['ID_UTILISATEUR']))
{
$id_user = md5($_COOKIE['ID_UTILISATEUR']);
// Connexion à la base de données
mysql_connect("xxxxxxx", "xxxxx", "xxxxxx");
mysql_select_db("xxxxxxx");
// Sélection de l'utilisateur concerné
$sql =("
SELECT *
FROM Comptes_Utilisateurs
WHERE ID_Utilisateur =$id_user;
");
$sql ="SELECT * FROM `Comptes_Utilisateurs` WHERE `Clef_Activation` = '$id_user';";
$resultat = mysql_query($sql);
$row = mysql_fetch_array($resultat) or die ("Erreur de connexion");
// Fermeture de la connexion à la base de données
mysql_close();
?>
Es-ce possible?
legranddamas
Messages postés
3
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
20 juin 2009
20 juin 2009 à 15:21
20 juin 2009 à 15:21
je pense ke le site du zero peu être la solution a tn problème.
www.siteduzero.com
www.siteduzero.com
legranddamas
Messages postés
3
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
20 juin 2009
20 juin 2009 à 15:40
20 juin 2009 à 15:40
bon si vous ne voulez pas allé sur le siteduzero exécuté ces codes
<?php
//connection a la base de donnée
mysql_connect("localhost","root","");
//selection de la base de donnée
mysql_select_db("le_de_le_base_de_donnée");
//tu peux effectuer les différentes requêtes now
?>
<?php
//connection a la base de donnée
mysql_connect("localhost","root","");
//selection de la base de donnée
mysql_select_db("le_de_le_base_de_donnée");
//tu peux effectuer les différentes requêtes now
?>
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 15:42
20 juin 2009 à 15:42
il le fait déjà, le problème ne vient pas de là…
lire la discussion avant de répondre, ça peut aider à comprendre le problème.
lire la discussion avant de répondre, ça peut aider à comprendre le problème.
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
>
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
20 juin 2009 à 15:48
20 juin 2009 à 15:48
Justement, mon problème ne reside pas à la connexion de la base.
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 15:55
20 juin 2009 à 15:55
on reprend en bas.
oui c'est possible en théorie mais la première question c'est pourquoi coder cet identifiant (à priori ça ne sert à rien).
(désolé d'insister mais mieux vaut se simplifier la vie pour éviter les bugs…)
en plus si tu veux faire une requête en utilisant un identifiant crypté, faut qu'il soit déjà crypté dans la BDD, est-ce le cas ?
oui c'est possible en théorie mais la première question c'est pourquoi coder cet identifiant (à priori ça ne sert à rien).
(désolé d'insister mais mieux vaut se simplifier la vie pour éviter les bugs…)
en plus si tu veux faire une requête en utilisant un identifiant crypté, faut qu'il soit déjà crypté dans la BDD, est-ce le cas ?
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 16:01
20 juin 2009 à 16:01
Non il n'es pas crypté dans ma base. Au fait, j'ai constaté une grande faille et je voulais la corrigé en passant pas le cryptage.
Exple: http://www.xxxxxxxx/xxxxxx/xxxxxxxxx/mon-cv.php?ID_Utilisateur=Y
En remplacant Y par une valeur, on arrive a accéder aux données de l'utilisateur dont l'ID es Y.
Dc je voulais y remedié en cryptant les ID_Utilistateur depuis la base si possible.
Merci
Exple: http://www.xxxxxxxx/xxxxxx/xxxxxxxxx/mon-cv.php?ID_Utilisateur=Y
En remplacant Y par une valeur, on arrive a accéder aux données de l'utilisateur dont l'ID es Y.
Dc je voulais y remedié en cryptant les ID_Utilistateur depuis la base si possible.
Merci
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 16:15
20 juin 2009 à 16:15
on arrive a accéder aux données de l'utilisateur dont l'ID es Y.
c'est ça qu'il faut corriger !
revois ta gestion des sessions et empeche l'affichage des infos si le visiteur n'est pas authentifié ou si l'ID du visiteur authentifié est différent de l'ID demandé.
c'est ça qu'il faut corriger !
revois ta gestion des sessions et empeche l'affichage des infos si le visiteur n'est pas authentifié ou si l'ID du visiteur authentifié est différent de l'ID demandé.
djimson
Messages postés
211
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
13 février 2015
3
20 juin 2009 à 16:22
20 juin 2009 à 16:22
ok, je viens de corrigé ca.
Maintenant, je veux savoir comment crypter le champs ID_Utilisateur dans ma base pendant l'insertion de l'utilisateur ou directement dans la base(chose impossible parait-il avec mysql).
Voila comment se passe l'inscription :
Es-ce depuis la je peux crypté l'ID_Utilisateur comme on a crypté le mot de passe?
Je précise que le scrypt ne vient pas de moi. J'essaye de l'adapter pour mon site
<?
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE['ID_UTILISATEUR']))
{
$id_user = $_COOKIE['ID_UTILISATEUR'];
// Redirection de l'utilisateur
header("Location: index.php");
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 4 caractères";
}
elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
{
$message = "Votre mot de passe n'a pas été correctement confirmé";
}
elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$_POST["TB_Adresse_Email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("xxxxxxxxx", "xxxxxxxxxxxxxxxx", "xxxxxxxxxxxx");
mysql_select_db("xxxxxxxxxxxxxxxxxx");
// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT Nom_Utilisateur
, Adresse_Email
FROM Comptes_Utilisateurs
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
OR Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Utilisateur"] == $row["Nom_Utilisateur"])
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
$message .= "est déjà utilisé";
}
elseif($_POST["TB_Adresse_Email"] == $row["Adresse_Email"])
{
$message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
$message .= "est déjà utilisée";
}
}
}
else
{
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte utilisateur
$result = mysql_query("
INSERT INTO Comptes_Utilisateurs(
Nom_Utilisateur
, Mot_de_Passe
, Adresse_Email
, Date_Inscription
, Clef_Activation
, civilite
, nom
, prenoms
, journaiss
, moisnaiss
, annaiss
, matrimoniale
, enfant
, nationalite
, telfix
, telport
, adrpostale
, secteur
, nivetude
, formation
, specialite
, experience
, divers
)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
, '" . $_POST["civilite"] . "'
, '" . $_POST["nom"] . "'
, '" . $_POST["prenoms"] . "'
, '" . $_POST["journaiss"] . "'
, '" . $_POST["moisnaiss"] . "'
, '" . $_POST["annaiss"] . "'
, '" . $_POST["matrimoniale"] . "'
, '" . $_POST["enfant"] . "'
, '" . $_POST["nationalite"] . "'
, '" . $_POST["telfix"] . "'
, '" . $_POST["telport"] . "'
, '" . $_POST["adrpostale"] . "'
, '" . $_POST["secteur"] . "'
, '" . $_POST["nivetude"] . "'
, '" . $_POST["formation"] . "'
, '" . $_POST["specialite"] . "'
, '" . $_POST["experience"] . "'
, '" . $_POST["divers"] . "'
)
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$message = "Pour valider votre inscription, afin de pouvoir vous connectez \n, merci de cliquer sur le lien suivant :\n";
$message .= "http://" . $_SERVER["SERVER_NAME"];
$message .= "/emploi/inscription/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;
// Si une erreur survient
if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{
// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
$message .= " Afin de pouvoir vous connecter sur notre cvthèque et dèy modifier votre CV, n'oubliez \n surtout pas de cliquer sur le lien d'activation qui vous a été envoyer. Merci pour \n votre fidélisation à TOUTAOUAGA";
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
?>
Vraiment merci Dalida pour votre disponibilité.
Maintenant, je veux savoir comment crypter le champs ID_Utilisateur dans ma base pendant l'insertion de l'utilisateur ou directement dans la base(chose impossible parait-il avec mysql).
Voila comment se passe l'inscription :
Es-ce depuis la je peux crypté l'ID_Utilisateur comme on a crypté le mot de passe?
Je précise que le scrypt ne vient pas de moi. J'essaye de l'adapter pour mon site
<?
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE['ID_UTILISATEUR']))
{
$id_user = $_COOKIE['ID_UTILISATEUR'];
// Redirection de l'utilisateur
header("Location: index.php");
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{4,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 4 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{4,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 4 caractères";
}
elseif($_POST["TB_Mot_de_Passe"] != $_POST["TB_Confirmation_Mot_de_Passe"])
{
$message = "Votre mot de passe n'a pas été correctement confirmé";
}
elseif(!ereg("^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$",
$_POST["TB_Adresse_Email"]))
{
$message = "Votre adresse e-mail n'est pas valide";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("xxxxxxxxx", "xxxxxxxxxxxxxxxx", "xxxxxxxxxxxx");
mysql_select_db("xxxxxxxxxxxxxxxxxx");
// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT Nom_Utilisateur
, Adresse_Email
FROM Comptes_Utilisateurs
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
OR Adresse_Email = '" . $_POST["TB_Adresse_Email"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["TB_Nom_Utilisateur"] == $row["Nom_Utilisateur"])
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"];
$message .= "est déjà utilisé";
}
elseif($_POST["TB_Adresse_Email"] == $row["Adresse_Email"])
{
$message = "L'adresse e-mail " . $_POST["TB_Adresse_Email"];
$message .= "est déjà utilisée";
}
}
}
else
{
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte utilisateur
$result = mysql_query("
INSERT INTO Comptes_Utilisateurs(
Nom_Utilisateur
, Mot_de_Passe
, Adresse_Email
, Date_Inscription
, Clef_Activation
, civilite
, nom
, prenoms
, journaiss
, moisnaiss
, annaiss
, matrimoniale
, enfant
, nationalite
, telfix
, telport
, adrpostale
, secteur
, nivetude
, formation
, specialite
, experience
, divers
)
VALUES(
'" . $_POST["TB_Nom_Utilisateur"] . "'
, '" . md5($_POST["TB_Mot_de_Passe"]) . "'
, '" . $_POST["TB_Adresse_Email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
, '" . $_POST["civilite"] . "'
, '" . $_POST["nom"] . "'
, '" . $_POST["prenoms"] . "'
, '" . $_POST["journaiss"] . "'
, '" . $_POST["moisnaiss"] . "'
, '" . $_POST["annaiss"] . "'
, '" . $_POST["matrimoniale"] . "'
, '" . $_POST["enfant"] . "'
, '" . $_POST["nationalite"] . "'
, '" . $_POST["telfix"] . "'
, '" . $_POST["telport"] . "'
, '" . $_POST["adrpostale"] . "'
, '" . $_POST["secteur"] . "'
, '" . $_POST["nivetude"] . "'
, '" . $_POST["formation"] . "'
, '" . $_POST["specialite"] . "'
, '" . $_POST["experience"] . "'
, '" . $_POST["divers"] . "'
)
");
// Si une erreur survient
if(!$result)
{
$message = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$message = "Pour valider votre inscription, afin de pouvoir vous connectez \n, merci de cliquer sur le lien suivant :\n";
$message .= "http://" . $_SERVER["SERVER_NAME"];
$message .= "/emploi/inscription/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$message .= "&clef=" . $clef_activation;
// Si une erreur survient
if(!@mail($_POST["TB_Adresse_Email"], $sujet, $message))
{
$message = "Une erreur est survenue lors de l'envoi du mail d'activation<br />\n";
$message .= "Veuillez contacter l'administrateur afin d'activer votre compte";
}
else
{
// Message de confirmation
$message = "Votre compte utilisateur a correctement été créer<br />\n";
$message .= "Un email vient de vous être envoyer afin de l'activer";
$message .= " Afin de pouvoir vous connecter sur notre cvthèque et dèy modifier votre CV, n'oubliez \n surtout pas de cliquer sur le lien d'activation qui vous a été envoyer. Merci pour \n votre fidélisation à TOUTAOUAGA";
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
?>
Vraiment merci Dalida pour votre disponibilité.
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
922
20 juin 2009 à 16:30
20 juin 2009 à 16:30
si tu as corrigé ta faille de sécurité ça ne sert plus à rien de hacher l'identifiant !
il faut le faire pour le mot de passe (dont tu définis le champ comme "PASSWORD" dans la BDD et que tu insères avec une requête qui utilises simple la fonction PASSWORD de SQL) mais pour l'identifiant ça ne sert strictement à rien.
il faut le faire pour le mot de passe (dont tu définis le champ comme "PASSWORD" dans la BDD et que tu insères avec une requête qui utilises simple la fonction PASSWORD de SQL) mais pour l'identifiant ça ne sert strictement à rien.
20 juin 2009 à 02:51
Merci pour votre reponse
20 juin 2009 à 02:56
<?
// Redirige l'utilisateur s'il est déjà identifié
if(isset($_COOKIE['CLE_ACTIVATION']))
{
$id_user = $_COOKIE['CLE_ACTIVATION'];
// Redirection de l'utilisateur
header("Location: mon-cv.php?Clef_Activation=$id_user");
}
else
{
// Formulaire visible par défaut
$masquer_formulaire = false;
// Une fois le formulaire envoyé
if(isset($_POST["BT_Envoyer"]))
{
// Vérification de la validité des champs
if(!ereg("^[A-Za-z0-9_]{2,20}$", $_POST["TB_Nom_Utilisateur"]))
{
$message = "Votre nom d'utilisateur doit comporter entre 2 et 20 caractères<br />\n";
$message .= "L'utilisation de l'underscore est autorisée";
}
elseif(!ereg("^[A-Za-z0-9]{6,}$", $_POST["TB_Mot_de_Passe"]))
{
$message = "Votre mot de passe doit comporter au moins 6 caractères";
}
else
{
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("xxxxxxxxx", "xxxxxx", "xxxxxxx");
mysql_select_db("xxxxxxxx");
// Sélection de l'utilisateur concerné
$result = mysql_query("
SELECT ID_Utilisateur, Nom_Utilisateur, Mot_de_Passe, Compte_Active, Clef_Activation
FROM Comptes_Utilisateurs
WHERE Nom_Utilisateur = '" . $_POST["TB_Nom_Utilisateur"] . "'
");
// Si une erreur survient
if(!$result)
{
$message = "Une erreur est survenue lors de la tentative de connexion";
}
else
{
// Si aucun utilisateur n'a été trouvé
if(mysql_num_rows($result) == 0)
{
$message = "Le nom d'utilisateur " . $_POST["TB_Nom_Utilisateur"] . " n'existe pas";
}
else
{
// Récupération des données
$row = mysql_fetch_array($result);
// Si le compte n'a pas été activé
if($row["Compte_Active"] == 0)
{
$message = "Votre compte utilisateur n'a pas été activé";
}
else
{
// Vérification du mot de passe
if(md5($_POST["TB_Mot_de_Passe"]) != $row["Mot_de_Passe"])
{
$message = "Votre mot de passe est incorrect";
}
else
{
// Définition du temps d'expiration des cookies
$expiration =
empty($_POST["CB_Connexion_Automatique"]) ? 0 : time() + 90 * 24 * 60 * 60;
// Création des cookies
setcookie("ID_UTILISATEUR", $row["ID_Utilisateur"], $expiration, "/");
setcookie("NOM_UTILISATEUR", $row["Nom_Utilisateur"], $expiration,"/"); setcookie("CLE_ACTIVATION", $row["Clef_Activation"], $expiration, "/");
// Redirection de l'utilisateur
// Fermeture de la connexion à la base de données
mysql_close();
header("Location: mon-cv.php?Clef_Activation=$id_user");
// Redirection de l'utilisateur
// header("Location: mon-cv.php?ID_Utilisateur=$id_user");
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
}
?>