Bonsoir, (je poste au bon endroit?)

Je débute en PHP et je fais quelques tests en local dans le but de me faire un petit script de connexion pour mon site. Voici le code:

Formulaire de connexion:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
session_start();
?>
//ici j'ai mis la fonction genClef qui permet de générer aléatoirement une très grande chaîne de caractères
<?php
 
try //test de la connexion
{
	$bdd = new PDO('mysql:host=localhost;dbname=test','root',''); //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'])
		{
 
			$clefIdentifianteUnique = genClef(); //génère une clef identifiante unique grâce à la fonction genClef
			echo $clefIdentifianteUnique;
 
			$requete = $bdd->prepare('INSERT INTO clefIdentifianteUnique (clefIdentifianteUnique) Values(?)'); //enregistre la clef dans la bdd
			$requete->execute(array($clefIdentifianteUnique));
 
			$requete = $bdd->prepare('SELECT id FROM clefIdentifianteUnique WHERE clefIdentifianteUnique = ?'); //récupère l'id de la clef
			$requete->execute(array($clefIdentifianteUnique));
			$reponse = $requete->fetch();
 
			$pseudoId = $_POST['pseudo'] . $reponse['id']; //crée une variable composée du pseudo et de l'id de la clef
			echo $pseudoId;
 
			$requete = $bdd->prepare('UPDATE clefIdentifianteUnique SET pseudoId = ? WHERE clefIdentifianteUnique = ?'); //enregistre la variable dans la bdd
			$requete->execute(array($pseudoId, $clefIdentifianteUnique));
 
			$_SESSION['clefIdentifianteUnique'] = $clefIdentifianteUnique; //enregistre le code et le pseudo dans des variables de session
			$_SESSION['pseudo'] = $_POST['pseudo'];
			$_SESSION['pseudoId'] = $pseudoId;
 
			echo '<a href="espaceMembre.php">Espace membre</a>';
 
			echo 'Bonne navigation<br/>';
			echo $_POST['pseudo'];
		}
		else
		{
			echo 'Mot de passe incorrect';
		}
    }
 
	$requete->closeCursor();
}
else
{
	echo 'ERREUR';
}
?>
 
<form method="post" action="index.php">
<input name="pseudo" type="text" value="Pseudo"><br/>
<input name="passe" type="password" value="Mot de passe"><br/>
<input type="submit" value="Valider"/><br/>
</form>
Et l'espace membre (qui est destiné à se remplir):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
if(!isset($_SESSION))
{
	session_start();
 
 
	try //test de la connexion
	{
		$bdd = new PDO('mysql:host=localhost;dbname=test','root',''); //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
	}
 
	$requete = $bdd->prepare('SELECT clefIdentifianteUnique FROM clefIdentifianteUnique WHERE pseudoId = ?');
	$requete->execute(array($_SESSION['pseudoId']));
 
	$reponse = $requete->fetch();
 
	if ($reponse['clefIdentifianteUnique'] == $_SESSION['clefIdentifianteUnique'])
	{
		echo $_SESSION['clefIdentifianteUnique'];
		echo $_SESSION['pseudo'];
	}
	else
	{
		echo 'Accès refusé';
	}
}	
else
{
	echo 'ARGG';
}
	?>
Seulement lorsque j'essaie d'accéder à mon espace membre sans passer par le formulaire, au lieu d'avoir le messages d'erreur j'ai:
Notice: Undefined index: pseudoId in*E:\Program Files\wamp\www\test\espaceMembre.php*on line*17

Notice: Undefined index: clefIdentifianteUnique in*E:\Program Files\wamp\www\test\espaceMembre.php*on line*21

Notice: Undefined index: clefIdentifianteUnique in*E:\Program Files\wamp\www\test\espaceMembre.php*on line*23

Notice: Undefined index: pseudo in*E:\Program Files\wamp\www\test\espaceMembre.php*on line*24
Ce qui veut dire que PHP lit le code même avec le if. Donc je sais pas si j'ai loupé quelque chose ou si j'utilise mas les sessions, mais je ne trouve pas de solution.

Sinon que pensez-vous de ce script? Est-ce assez sécurisé? (j'ai du mal à me rendre compte du niveau de sécurité qu'offrent les sessions).

Merci pour votre aide!