Forum : Lws & Hebergeur-discount

Hébergement web, nom de domaine et serveur dédié.

script mot de passe

Ici, parlez de développement Asp, Php, Asp.net, Mysql / Access, / sql serveur, de bases de données et de développement.
afibase
Débutant
Débutant
Messages : 7

jeu. janv. 24, 2013 3:59 pm  

bonjour,
Voici mon script d'identification avec 2 champs, 1 champ utilisateur et 1 champ mot de passe. Malheureusement que le mot de passe soit bon ou pas il autorise l'accès au site??. Je n'arrive pas à y remédier !!! pourriez vous m'aider en restant basique. Merci
voici le script:
<?php
$mdp=$_POST['mdp'];
if (isset($_POST['submit']))
{
if (isset($_POST['utilisateur']) && $_POST['utilisateur'] == "")
{
echo "Remplir le champ utilisateur<BR>\n";
}
elseif (isset($_POST['mdp']) && $_POST['mdp'] == "")
{
echo "Remplir le champ mot de passe<BR>\n";
}
else{
require ("Connect.php");
$connexion = mysql_pconnect (SERVEUR, NOM, PASSE);
mysql_select_db (BASE,$connexion);
$sql = "SELECT mdp FROM user WHERE mdp='$_POST[mdp]'";
if (isset($_POST['mdp']) && $_POST['mdp'] == "$mdp")
{
echo"<a href=accueil.html><h1>Autorisé</h1></a>" ;
}
}
}
?>

Avatar de l’utilisateur
Julien - LWS
Modérateur
Modérateur
Messages : 17

jeu. janv. 24, 2013 5:36 pm  

Bonsoir,

Tout d'abord votre code php ne peut pas fonctionner ainsi, en effet comment voulez-vous que la variable $mdp et $_POST['mdp'] soit différente ?
Ensuite vous n'utilisez pas de protection du $_POST : cela laisse donc lieu à des injections SQL pour rentrer sur votre site web et vous n'utilisiez aucun cryptage sur le mot de passe.

Dans le sens où vous semblé débuter dans la programmation, je vous inviterais à utilisé plutôt L'extension PHP Data Objects ( PDO ) qui vous offre des requêtes préparées ainsi que des paramètres liées.
Ainsi il vous sera plus facile de créer votre script d'authentification.

Voici ce à quoi devrait ressembler un script php d'authentification enfin en partie du moins :

<?php require_once('connexion.php'); ?>
<?php

session_start(); // début de session
if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
$login = addslashes($_POST['login']); // mise en variable du nom d'utilisateur
$pass = addslashes(md5($_POST['pass'])); // mise en variable du mot de passe chiffré à l'aide de md5
// requete sur la table administrateurs (on récupère les infos de la personne)
mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
if ($utilisateur) { // On test s'il y a un utilisateur correspondant
session_register("authentification"); // enregistrement de la session
// déclaration des variables de session
$_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
$_SESSION['nom'] = $row_verif['nom']; // Son nom
$_SESSION['prenom'] = $row_verif['prenom']; // Son Prénom
$_SESSION['login'] = $row_verif['login']; // Son Login
$_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)
header("Location:accueil.php"); // redirection si OK
}
else {
header("Location:index.php?erreur=login"); // redirection si utilisateur non reconnu
}
}
// Gestion de la déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un contexte de déconnexion
$prenom = $_SESSION['prenom']; // On garde le prénom en variable pour la déconnexion
session_unset("authentification");
header("Location:index.php?erreur=delog&prenom=$prenom");
}
?>

et un fichier connexion.php pour accéder à votre base de donnée :

<?php
// Paramètres de connexion
$hostname_dbprotect = "localhost"; // nom ou ip de votre serveur
$database_dbprotect = "dbprotect"; // nom de votre base de données
$username_dbprotect = "root"; // nom d'utilisateur (root par défaut) !!! ATTENTION, en utilisant root, vos visiteurs on tout les droits sur la base
$password_dbprotect = ""; // mot de passe (aucun par défaut mais il est fortement recommandé d'en mettre un ... sinon, à quoi bon la sécurité ?)
$dbprotect = mysql_pconnect($hostname_dbprotect, $username_dbprotect, $password_dbprotect) or trigger_error(mysql_error(),E_USER_ERROR);
?>
Julien-LWS
Division Commerciale
Twitter : https://twitter.com/lwshosting

  •   Information
  • Qui est en ligne ?

    Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 19 invités