1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| <?php
function genClef() //Fonction gen_reg_key()
{
$key = "";//on initialise la variable $key à "vide"
$max_length_reg_key = 50;//on définit la taille de la chaine (50 caractères)
$chars = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","9","0","@","$","£","#");//on définit le type de caractères ascii de la chaine (l'alphabet suffit amplement, mais libre a vous)
$count = count($chars) - 1;//on comptabilise le nombre total de caractères possibles (26 pour l'alphabet)
srand((double)microtime()*1000000);//on initialise la fonction rand pour le tirage aléatoire
for($i = 0; $i < $max_length_reg_key; $i++) $key .= $chars[rand(0, $count)];//on tire aléatoirement les $max_length_reg_key caracteres de la chaine
return($key);//on renvois la clé générée
}
try //test de la connexion
{
$bdd = new PDO('mysql:host=localhost;dbname=****','****','****'); //connexion
}
catch (Exception $e)
{
die('Erreur : '.$e->getMessage()); // si la connexion échoue, on renvoie un message d'erreur au lieu d'afficher le code php
}
if(isset($_POST['pseudo']) AND isset($_POST['passe']))
{
$requete = $bdd->prepare('SELECT COUNT(*) FROM membre WHERE pseudo = ?');
$requete->execute(array($_POST['pseudo']));
$nombreDeLignes = $requete->fetch(); // Récupère le résultat du calcul
if ($nombreDeLignes[0] == 0) // on teste le nombre de ligne: si il est egal à 0, le pseudo n'exite pas
{
echo 'Pseudo incorrect';
}
else
{
$requete = $bdd->prepare('SELECT passe FROM membre WHERE pseudo = ?');
$requete->execute(array($_POST['pseudo']));
$reponse = $requete->fetch();
if ($_POST['passe'] == $reponse['passe'])
{
session_start();
$clefIdentifianteUnique = genClef(); //génère une clef identifiante unique grâce à la fonction genClef
setcookie('clef',$clefIdentifianteUnique, time() + 3600, null, null, false, true);
$_COOKIE['clef'] = $clefIdentifianteUnique;
$_SESSION['clef'] = $clefIdentifianteUnique; //enregistre le code dans des variables de session
$ticketIdentifiantUnique = genClef();
setcookie('ticket',$ticketIdentifiantUnique, time() + 3600, null, null, false, true);
$_COOKIE['ticket'] = $ticketIdentifiantUnique;
$_SESSION['ticket'] = $ticketIdentifiantUnique;
$_SESSION['pseudo'] = $_POST['pseudo'];
echo '<a href="../../index.php">acceuil</a>';
/*header('Location: ../../index.php');*/
echo $_SESSION['ticket'] . '<br/>' . $_COOKIE['ticket'] . '<br/><br/>';
echo $_SESSION['clef'] . '<br/>' . $_COOKIE['clef'] . '<br/><br/>';
if($_SESSION['ticket'] == $_COOKIE['ticket'] AND $_SESSION['clef'] == $_COOKIE['clef'])
{
echo 'yes';
}
}
else
{
echo 'Mot de passe incorrect';
}
}
$requete->closeCursor();
}
else
{
echo 'ERREUR';
}
?> |
Partager