Accueil > Forum > > > > mdp PHP
mdp PHP
mardi 21 décembre 2010 à 23:23:37 |
mdp PHP

bibidu69
|
Bonjour, j'ai un problème de mot de passe dans mon code PHP le voici :
Code PHP : <script type="text/javascript"><?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('localhost', 'user', 'mdp');
mysql_select_db ('membre', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.html');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème <img src="./images/smilies/icon_smile.gif" alt=":)" title="Smile" />
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
</script>
je voudrait sécuriser mes info : Code PHP : $base = mysql_connect ('localhost', 'user', 'mdp'); pour que mes visiteur un peu curieux ne puiss pas voir mon mdp ...
merci de m'aider
|
|
mercredi 22 décembre 2010 à 00:04:52 |
Re : mdp PHP

cod57
|
bonsoir
//avant
$sql = 'SELECT count(*) FROM membre
WHERE login="'.mysql_escape_string($_POST['login']).'"
AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"'
;
//aprés
//fait des variables intermediares ça evitera d'injecter direct dans la requete
//injection sql
//strip_tags pour le xss
$login=mysql_real_escape_string(strip_tags($_POST['login']));
$pass=mysql_real_escape_string(strip_tags($_POST['pass']));
$pass=md5($pass);
$sql = 'SELECT count(*) FROM membre
WHERE login="'.$login.'"
AND pass_md5="'.$pass.'"'
limit 1; /* le premier trouvé est c'est tout */
|
|
mercredi 22 décembre 2010 à 00:07:51 |
Re : mdp PHP

cod57
|
mais des exit; ou die();
voir header('Location:http://????');exit; si le test est négatif
n'affiche pas les erreurs ...
|
|
mercredi 22 décembre 2010 à 01:42:26 |
Re : mdp PHP

phpAnonyme
|
Je comprends pas :
Cod57 a écritfait des variables intermediares ça evitera d'injecter direct dans la requete
En quoi :
$login=mysql_real_escape_string($_POST['login']);
SELECT count(*) FROM membre WHERE login='".$login."'
est différent de :
SELECT count(*) FROM membre WHERE login='".mysql_real_escape_string($_POST['login')."'
??
______________________________________________________________________
|
|
mercredi 22 décembre 2010 à 09:48:47 |
Re : mdp PHP

Lyle56
|
Bonjour;
Premier cas : tu range $_POST['login'] dans une variable $login "nettoyée" que tu peut réutilisé tel que dans tes requêtes.
Deuxième cas : Tu devras utilisé le code à chaque fois que tu voudras passer ta variable $_POST['login'] dans une requête.
Ensuite pour "sécurisé" tes mots de passe etc
Créer un fichier config.php qui contient ceci
DEFINE('SRV_NAME','localhost');
DEFINE('SRV_USER','user');
DEFINE('SRV_PASS','mdp');
DEFINE('BSE_WORK','membre');
en début de fichier tu ajoute require_once('config.php');
Tu remplace alors
$base = mysql_connect ('localhost', 'user', 'mdp');
mysql_select_db ('membre', $base);
par
$base = mysql_connect (SRV_NAME, SRV_USER,SRV_PASS);
mysql_select_db (BSE_WORK, $base);
Avantage, si tu change ton mot de passe de base de données; tu n'auras à le modifié que dans config.php; cela sera pris en compte ensuite dans tout les scripts qui utilise la connexion.
Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
|
|
mercredi 22 décembre 2010 à 17:40:24 |
Re : mdp PHP

bibidu69
|
Code PHP : Premier cas : tu range $_POST['login'] dans une variable $login "nettoyée" que tu peut réutilisé tel que dans tes requêtes.
Deuxième cas : Tu devras utilisé le code à chaque fois que tu voudras passer ta variable $_POST['login'] dans une requête.
c'est a dire que je doit faire comment ?
|
|
jeudi 23 décembre 2010 à 15:59:56 |
Re : mdp PHP

Lyle56
|
Bonjour,
Tout dépend de la longueur de ton code ... et du nombre de requête ...
L'idéal reste encore de faire,
Code PHP :
$login=mysql_real_escape_string($_POST['login']);
SELECT count(*) FROM membre WHERE login='".$login."'
Pour prendre de bonne habitude.
Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
|
|
jeudi 23 décembre 2010 à 21:23:21 |
Re : mdp PHP
|
jeudi 23 décembre 2010 à 21:25:20 |
Re : mdp PHP

bibidu69
|
j'ai aussi un autre problème avec le script :
Code PHP : <?php
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
$base = mysql_connect ('localhost', 'name', 'mdp');
mysql_select_db ('membre', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location: membre.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}
?>
sur ma page quand je m'identifie (j'ai fait mon compte admin) et bien sa me marque sa :
Warning: session_start() [function.session-start]: open(/mnt/169/sdd/f/2/thenavy/sessions/sess_0819b82c099ad34c2b0b1977ae68ebb3, O_RDWR) failed: No such file or directory (2) in /mnt/169/sdd/f/2/thenavy/index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/169/sdd/f/2/thenavy/index.php:19) in /mnt/169/sdd/f/2/thenavy/index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/169/sdd/f/2/thenavy/index.php:19) in /mnt/169/sdd/f/2/thenavy/index.php on line 19
Warning: Cannot modify header information - headers already sent by (output started at /mnt/169/sdd/f/2/thenavy/index.php:19) in /mnt/169/sdd/f/2/thenavy/index.php on line 21
Warning: Unknown(): open(/mnt/169/sdd/f/2/thenavy/sessions/sess_0819b82c099ad34c2b0b1977ae68ebb3, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/169/sdd/f/2/thenavy/sessions) in Unknown on line 0
Merci de m'aider
|
|
vendredi 24 décembre 2010 à 09:36:30 |
Re : mdp PHP

Lyle56
|
Bonjour,
La fonction session_start() doit être au tout début de ton script.
comme ceci :
Code PHP : <?php
session_start();
// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
|
|
Cette discussion est classée dans : code, php, mysql, data, mdp
Répondre à ce message
Sujets en rapport avec ce message
Mysql et Php [ par Game69 ]
Game69 vous salutJe débute en php en me servant d'un bouquin et je me heurte à un problème de syntaxe qui est un exemple donné dans ce livre.Voici le
champ Text BDD Mysql et execution code PHP [ par cecelecyborg ]
Bonjour à tous, Je cherche à executer du code php contenu dans un champ Text d'une base de données MySQL. Est-ce que cela est faisable, et si oui, u
indentification et connexion grâce à un formulaire [ par auremy ]
Bonjour,J'ai crée un formulaire html qui permet à l'utilisateur de saisir son login et son mot de passe. La validation envoye ses informations à une p
erreur qui reste introuvable pour moi! [ par CaBBaLe ]
Slt,Merci beaucoup à tous ceux qui poste des sources et des tutos, cela m'aide enormement car c'est avec ca que j'apprend.Mais là je vais vous demande
probleme entre php et javscript [ par nico606 ]
Slt voila mon script qui a du mal a marcher bref il ne fonctionne pas voila les sources: j'ai creer un service permetant d'ecouter la radio sur son si
Comment récuperer le résultat d'une requete dans une variable en php? [ par neilero ]
SalutJe n'arrive pas à récuperer le résultat d'une requete dans une variable en php.je ne vois pas ce qu'il ne va pas://requete permettant de recupere
deux pb dans mon code php!! [ par dev10 ]
voilà mon prbolème, si squelqu'un peut m'aiderWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\....doc.php on l
Le filtre ne fonctionne pas [ par Joleroy ]
Salut a tous!J ai cree une page appelé Kits.php qu j appelle par Kit.php?tipekit=type_du_kitVoici son code:$type=$_GET['typekit'];$connect = mysql_con
Problème de formulaire dynamique [ par labouse ]
Bonjour,Bon je vais essayer d'être clair: j'ai une table mysql avec nom prénom et un code service je fais une requete pour afficher tout le monde pour
changer la valeur de input avec XMLHTTP...... [ par LaTatadu91 ]
Bonjour a tous, voila je cherche a changer les valeurs de plusieurs input situés ds un tableau sans recharger la page sur un onchange de balise :
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|