Je suis ensuite redirigé vers l'index WAMP et puis après je reclick sur Test et j'ai le message d'erreur " Erreur Sql : no database selected ligne 24 "
voici mon code
connexion.php :
<?php
/*
Neoterranos & LkY
Page connexion.php
Permet de se connecter au site.
Quelques indications : (Utiliser l'outil de recherche et
rechercher les mentions données)
Liste des fonctions :
--------------------------
Aucune fonction
--------------------------
Liste des informations/erreurs :
--------------------------
Membre qui essaie de se connecter alors qu'il l'est déjà
Vous êtes bien connecté
Erreur de mot de passe
Erreur de pseudo doublon (normalement impossible)
Pseudo inconnu
--------------------------
*/
session_start();
header('Content-type: text/html; charset=utf-8');
include('../includes/config.php');
/********Actualisation de la session...**********/
include('../includes/fonctions.php');
connexionbdd();
actualiser_session();
mysql_connect("localhost", "root", ""); //connection mysql
mysql_select_db("test"); //selection de la base
/********Fin actualisation de session...**********/
if(isset($_SESSION['membre_id']))
{
$informations = Array(/*Membre qui essaie de se connecter alors qu'il l'est déjà*/
true,
'Vous êtes déjà connecté',
'Vous êtes déjà connecté avec le pseudo <span
class="pseudo">'.htmlspecialchars($_SESSION['membre_pseudo'],
ENT_QUOTES).'</span>.',
' - <a href="'.ROOTPATH.'/membres/deconnexion.php">Se
déconnecter</a>',
ROOTPATH.'/index.php',
5
);
require_once('../information.php');
exit();
}
if(isset($_POST['validate'])!= 'ok')
{
/********Entête et titre de page*********/
$titre = 'Connexion';
include('../includes/haut.php'); //contient le doctype, et head.
/**********Fin entête et titre***********/
?>
<div id="colonne_gauche">
<?php
include('../includes/colg.php');
?>
</div>
<div id="contenu">
<div id="map">
<a href="../index.php">Accueil</a> => <a
href="connexion.php">Connexion</a>
</div>
<h1>Formulaire de connexion</h1>
<p>Pour vous connecter, indiquez votre pseudo et votre mot de
passe.<br/>
Vous pouvez aussi cocher l'option "Me connecter automatiquement
à mon
prochain passage." pour laisser une trace sur votre ordinateur
pour être
connecté automatiquement.<br/>
Ce système de trace est basé sur les cookies, ce sont des
petits fichiers
contenant votre numéro d'identification ainsi qu'une version
cryptée de votre
mot de passe. Ces fichiers ne peuvent en aucun cas endommager
votre ordinateur,
ni l'affecter d'aucune façons, vous pourrez les supprimer à
tout moment dans
les options de votre navigateur.</p>
<form name="connexion" id="connexion" method="post"
action="connexion.php">
<fieldset><legend>Connexion</legend>
<label for="pseudo" class="float">Pseudo :</label> <input
type="text" name="pseudo" id="pseudo" value="<?php
if(isset($_SESSION['connexion_pseudo'])) echo
$_SESSION['connexion_pseudo']; ?>"/><br/>
<label for="mdp" class="float">Passe :</label> <input
type="password" name="mdp" id="mdp"/><br/>
<input type="hidden" name="validate" id="validate"
value="ok"/>
<input type="checkbox" name="cookie" id="cookie"/> <label
for="cookie">Me connecter automatiquement à mon prochain
passage.</label><br/>
<div class="center"><input type="submit" value="Connexion"
/></div>
</fieldset>
</form>
<h1>Options</h1>
<p><a href="inscription.php">Je ne suis pas inscrit !</a><br/>
<a href="moncompte.php?action=reset">J'ai oublié mon mot de
passe !</a>
</p>
<?php
}
else
{
$result = sqlquery("SELECT COUNT(membre_id) AS nbr, membre_id,
membre_pseudo, membre_mdp FROM membres WHERE
membre_pseudo = '".mysql_real_escape_string($_POST['pseudo'])."'
GROUP BY membre_id", 1);
if($result['nbr'] == 1)
{
if(md5($_POST['mdp']) == $result['membre_mdp'])
{
$_SESSION['membre_id'] = $result['membre_id'];
$_SESSION['membre_pseudo'] = $result['membre_pseudo'];
$_SESSION['membre_mdp'] = $result['membre_mdp'];
unset($_SESSION['connexion_pseudo']);
if(isset($_POST['cookie']) && $_POST['cookie'] == 'on')
{
setcookie('membre_id', $result['membre_id'],
time()+365*24*3600);
setcookie('membre_mdp', $result['membre_mdp'],
time()+365*24*3600);
}
$informations = Array(/*Vous êtes bien connecté*/
false,
'Connexion réussie',
'Vous êtes désormais connecté avec le pseudo <span
class="pseudo">'.htmlspecialchars($_SESSION['membre_pseudo'],
ENT_QUOTES).'</span>.',
'',
ROOTPATH.'/Test/index.php',
3
);
require_once('../information.php');
exit();
}
else
{
$_SESSION['connexion_pseudo'] = $_POST['pseudo'];
$informations = Array(/*Erreur de mot de passe*/
true,
'Mauvais mot de passe',
'Vous avez fourni un mot de passe incorrect.',
' - <a href="'.ROOTPATH.'/index.php">Index</a>',
ROOTPATH.'/Test/membres/connexion.php',
3
);
require_once('../information.php');
exit();
}
}
else if($result['nbr'] > 1)
{
$informations = Array(/*Erreur de pseudo doublon
(normalement impossible)*/
true,
'Doublon',
'Deux membres ou plus ont le même pseudo, contactez un
administrateur pour régler le problème.',
' - <a href="'.ROOTPATH.'/index.php">Index</a>',
ROOTPATH.'/contact.php',
3
);
require_once('../information.php');
exit();
}
else
{
$informations = Array(/*Pseudo inconnu*/
true,
'Pseudo inconnu',
'Le pseudo <span
class="pseudo">'.htmlspecialchars($_POST['pseudo'],
ENT_QUOTES).'</span> n\'existe pas dans notre base de données.
Vous avez probablement fait une erreur.',
' - <a href="'.ROOTPATH.'/index.php">Index</a>',
ROOTPATH.'/Test/membres/connexion.php',
5
);
require_once('../information.php');
exit();
}
}
?>
</div>
<?php
include('../includes/bas.php');
mysql_close();
?>
/Test/index.php
<?php
/*
Neoterranos & LkY
Page index.php
Index du site.
Quelques indications : (utiliser l'outil de recherche et rechercher
les mentions données)
Liste des fonctions :
--------------------------
Aucune fonction
--------------------------
Liste des informations/erreurs :
--------------------------
Aucune information/erreur
--------------------------
*/
session_start();
header('Content-type: text/html; charset=utf-8');
include('includes/config.php');
/********Actualisation de la session...**********/
include('includes/fonctions.php');
connexionbdd();
actualiser_session();
mysql_connect("localhost", "root", ""); //connection mysql
mysql_select_db("test"); //selection de la base
/********Fin actualisation de session...**********/
/********Entête et titre de page*********/
/**********Fin entête et titre***********/
?>
<a href="membres/inscription.php">Inscription</a> <a href="membres/connexion.php">Connexion</a>
<div id="colonne_gauche">
<?php
include('includes/colg.php');
?>
</div>
<div id="contenu">
<div id="map">
<a href="index.php">Accueil</a>
</div>
<h1>Bienvenue sur mon super site !</h1>
<p>Ce site parlera de ... et est ouvert à tous.
Cependant, faut payer pour <a
href="membres/inscription.php">s'inscrire</a> mouhahaha !
Le Webmaster
</p>
</div>
<?php
include('includes/bas.php');
mysql_close();
?>
fonctions.php
<?php
/*
Neoterranos & LkY
Page fonctions.php
Contient quelques fonctions globales.
Quelques indications : (utiliser l'outil de recherche et rechercher
les mentions données)
Liste des fonctions :
--------------------------
sqlquery($requete,$number)
connexionbdd()
actualiser_session()
vider_cookie()
--------------------------
Liste des informations/erreurs :
--------------------------
Mot de passe de session incorrect
Mot de passe de cookie incorrect
L'id de cookie est incorrect
--------------------------
*/
function sqlquery($requete, $number)
{
$query = mysql_query($requete) or exit('Erreur SQL : '.mysql_error().' Ligne : '. __LINE__ .'.'); //requête
queries();
/*
Deux cas possibles ici :
Soit on sait qu'on a qu'une seule entrée qui sera
retournée par SQL, donc on met $number à 1
Soit on ne sait pas combien seront retournées,
on met alors $number à 2.
*/
if($number == 1)
{
$query1 = mysql_fetch_assoc($query);
mysql_free_result($query);
/*mysql_free_result($query) libère le contenu de $query, je
le fais par principe, mais c'est pas indispensable.*/
return $query1;
}
else if($number == 2)
{
while($query1 = mysql_fetch_assoc($query))
{
$query2[] = $query1;
/*On met $query1 qui est un array dans $query2 qui
est un array. Ca fait un array d'arrays :o*/
}
mysql_free_result($query);
return $query2;
}
else //Erreur
{
exit('Argument de sqlquery non renseigné ou incorrect.');
}
}
?>
<?php
function queries($num = 1)
{
global $queries;
$queries = $queries + intval($num);
}
?>
<?php
function connexionbdd()
{
//Définition des variables de connexion à la base de données
$bd_nom_serveur='localhost';
$bd_login='root';
$bd_mot_de_passe='';
$bd_nom_bd='espace_membre';
//Connexion à la base de données
mysql_connect($bd_nom_serveur, $bd_login, $bd_mot_de_passe);
mysql_select_db($bd_nom_bd);
mysql_query("set names 'utf8'");
}
?>
<?php
function actualiser_session()
{
if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id'])
!= 0) //Vérification id
{
//utilisation de la fonction sqlquery, on sait qu'on aura qu'un résultat car l'id d'un membre est unique.
$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp
FROM membres WHERE membre_id = ".intval($_SESSION['membre_id']), 1);
//Si la requête a un résultat (c'est-à-dire si l'id existe dans la table membres)
if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] !=
'')
{
if($_SESSION['membre_mdp'] != $retour['membre_mdp'])
{
//Dehors vilain pas beau !
$informations = Array(/*Mot de passe de session incorrect*/
true,
'Session invalide',
'Le mot de passe de votre session est incorrect, vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
else
{
//Validation de la session.
$_SESSION['membre_id'] = $retour['membre_id'];
$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
$_SESSION['membre_mdp'] = $retour['membre_mdp'];
}
}
}
else //On vérifie les cookies et sinon pas de session
{
if(isset($_COOKIE['membre_id']) && isset($_COOKIE['membre_mdp']))
//S'il en manque un, pas de session.
{
if(intval($_COOKIE['membre_id']) != 0)
{
//idem qu'avec les $_SESSION
$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp
FROM membres WHERE membre_id = ".intval($_COOKIE['membre_id']), 1);
if(isset($retour['membre_pseudo']) && $retour['membre_pseudo']
!= '')
{
if($_COOKIE['membre_mdp'] != $retour['membre_mdp'])
{
//Dehors vilain tout moche !
$informations = Array(/*Mot de passe de cookie incorrect*/
true,
'Mot de passe cookie erroné',
'Le mot de passe conservé sur votre cookie est incorrect vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
else
{
//Bienvenue :D
$_SESSION['membre_id'] = $retour['membre_id'];
$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
$_SESSION['membre_mdp'] = $retour['membre_mdp'];
}
}
}
else //cookie invalide, erreur plus suppression des cookies.
{
$informations = Array(/*L'id de cookie est incorrect*/
true,
'Cookie invalide',
'Le cookie conservant votre id est corrompu, il va donc être détruit vous devez vous reconnecter.',
'',
'membres/connexion.php',
3
);
require_once('../information.php');
vider_cookie();
session_destroy();
exit();
}
}
else
{
//Fonction de suppression de toutes les variables de cookie.
if(isset($_SESSION['membre_id'])) unset($_SESSION['membre_id']);
vider_cookie();
}
}
}
function vider_cookie()
{
foreach($_COOKIE as $cle => $element)
{
setcookie($cle, '', time()-3600);
}
}
?>
<?php
function checkpseudo($pseudo)
{
if($pseudo == '') return 'empty';
else if(strlen($pseudo) < 3) return 'tooshort';
else if(strlen($pseudo) > 32) return 'toolong';
else
{
$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE
membre_pseudo = '".mysql_real_escape_string($pseudo)."'", 1);
global $queries;
$queries++;
if($result['nbr'] > 0) return 'exists';
else return 'ok';
}
}
?>
<?php
function checkmdp($mdp)
{
if($mdp == '') return 'empty';
else if(strlen($mdp) < 4) return 'tooshort';
else if(strlen($mdp) > 50) return 'toolong';
else
{
if(!preg_match('#[0-9]{1,}#', $mdp)) return 'nofigure';
else if(!preg_match('#[A-Z]{1,}#', $mdp)) return 'noupcap';
else return 'ok';
}
}
?>
<?php
function checkmdpS($mdp, $mdp2)
{
if($mdp != $mdp2 && $mdp != '' && $mdp2 != '') return
'different';
else return checkmdp($mdp);
}
?>
<?php
function checkmail($email)
{
if($email == '') return 'empty';
else if(!preg_match('#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#', $email)) return 'isnt';
else
{
$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE
membre_mail = '".mysql_real_escape_string($email)."'", 1);
global $queries;
$queries++;
if($result['nbr'] > 0) return 'exists';
else return 'ok';
}
}
?>
<?php
function checkmailS($email, $email2)
{
if($email != $email2 && $email != '' && $email2 != '') return
'different';
else return 'ok';
}
?>
<?php
function birthdate($date)
{
if($date == '') return 'empty';
else if(substr_count($date, '/') != 2) return 'format';
else
{
$DATE = explode('/', $date);
if(date('Y') - $DATE[2] <= 4) return 'tooyoung';
else if(date('Y') - $DATE[2] >= 135) return 'tooold';
else if($DATE[2]%4 == 0)
{
$maxdays = Array('31', '29', '31', '30', '31', '30', '31',
'31', '30', '31', '30', '31');
if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';
else return 'ok';
}
else
{
$maxdays = Array('31', '28', '31', '30', '31', '30', '31',
'31', '30', '31', '30', '31');
if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';
else return 'ok';
}
}
}
?>
<?php
function vidersession()
{
foreach($_SESSION as $cle => $element)
{
unset($_SESSION[$cle]);
}
}
?>
Merci de m'éclairer