Première création php et mysql. Connexion utilisateur et accès.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Première création php et mysql. Connexion utilisateur et accès.

par AB » 25 avr. 2009, 21:37

Sur le principe de l'authentification il y a ce tuto
Ensuite comme dit geoffroy il est préférable de hasher ou de crypter les mots de passe. Préfère le sha1 au md5 pour le hashage.

par geoffroy » 25 avr. 2009, 21:00

Il faut que tu rajoutes un champ mot de passe (balise input de type password) à ton formulaire dans form.php.
Ensuite tu récupères cette variable POST comme les autres. Tu vas devoir modifier ta requête SQL dans la partie traitement de ta page "form.php", pour qu'elle enregistre aussi le mot de passe.
Donc il faut aussi modifier ta table utilisateur de base de données et lui rajouter un champ mot de passe.

Pour des raisons de sécurité, il ne faut pas enregistrer le mot de passe en clair dans ta base de données.
Tu vas donc le crypter, puis lorsque l'utilisateur voudra se connecter tu crypteras son mot de passe pour le comparer avec celui dans la base de données.

Une méthode de cryptage basique est la fonction md5 de php (voir mcrypt dans le manuel php pour plus de sécurité).
exemple :
$mot_de_passe = md5( $_POST['mot_de_passe'];
Ensuite pour la page perso, il te suffit de créer un autre formulaire avec deux champs login et mot de passe.
Ce formulaire enverra ses données vers une autre page, "connexion.php" par exemple.
Dans cette page, il faut récupérer les données POST de ton formulaire, puis vérifier dans la base de données si les identifiants sont corrects.

Pour cela, il suffit d'écrire une requête qui sélectionne dans la base de données une entrée utilisateur dont le pseudo et le mot de passe (une fois crypté) sont les mêmes que ceux entrés par l'utilisateur dans ton formulaire.

Si cette requête renvoie un résultat, l'utilisateur a rentré de bons identifiant, et tu peux donc afficher se page personnalisée.

Première création php et mysql. Connexion utilisateur et acc

par enjoy » 24 avr. 2009, 16:52

Bonjour à tous,

Voici mes début en php :

les fichiers : 1- form.php ---> Formulaire de saisie utilisateur "pseudo, garçon ou fille, age, et date d'inscription.
2- fonctions.php ---> Connexion a mysql

Quand je rentre les données dans le formulaire et que je valide ça va dans ma table "utilisateur de mysql" jusqu'à la tout va bien,
a savoir que dans ma table j'ai rajouté ID. Mes deux questions sont les suivantes,

1/J'aimerais maintenant rajouter un mot de passe a chaque utilisateur dans
le formulaire et donc bien-sur je pense sur dans la base de donné, comment faire ?

2/Deuxieme et dernière question ensuite j'aimerais faire une fenêtre de connexion pour que
l'utilisateur rentre pseudo et mot de passe pour aller ensuite sur une page privée qui lui appartiendra, comment faire ?

J'espère avoir été le plus clair possible si vous avez des questions
ou que vous ne comprenez pas je suis tout le temps connecté.

Merci Romain (qui commence à aimer le php)

Les deux codes :

form.php
 


<?php
include("fonctions.php");
?>
<html>
<head><title>Formulaire de saisie utilisateur </title></head>
<body>
<h1>Inscrivez-vous !</h1>
<h2>Entrez les données demandées :</h2>

<form name="inscription" method="post" action="form.php">
Entrez votre pseudo : <input type="text" name="pseudo"/> <br/>
Garçon ou fille ?
<input type="radio" name="sexe" value="G"/>Garçon<input type="radio" name="sexe" value="F"/>Fille<br/>
Entrez votre age : <input type="text" name="age"/><br/>
<input type="submit" name="valider" value="OK"/>
</form>
<?php

if (isset ($_POST['valider'])){
//On récupère les valeurs entrées par l'utilisateur :
$pseudo=$_POST['pseudo'];
$age=$_POST['age'];
$sexe=$_POST['sexe'];
//On construit la date d'aujourd'hui
//strictement comme sql la construit
$today = date("y-m-d");
//On se connecte
connectMaBase();
//On prépare la commande sql d'insertion
$sql = 'INSERT INTO Utilisateur VALUES("","'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")';
/*on lance la commande (mysql_query) et au cas où,
on rédige un petit message d'erreur si la requête ne passe pas (or die)
(Message qui intègrera les causes d'erreur sql)*/
mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion
mysql_close();
}
?>
</body>
</html>




fonctions.php


<?php
function connectmabase(){
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('mabase', $base) ;
}
?>

-------------------------------------------------------------------------------------------------------------------
Merci Romain