Scarf3ss3 | kalex a écrit :
Il te manque une condition là. Comment veux-tu afficher, ou ne pas afficher, un texte, sans faire de test pour vérifier que l'utilisateur est bien connecté ?
|
je sais tu peux pas savoir ce qu'il se cache derriere ma fonction ControleAccess alors tant pis pour toi je balance tout
Code :
- <?php
- require_once ("util/classFormulaire.php" );
- // Recherche d'une session
- function ChercheSession ($idSession, $bd)
- {
- $requete = "SELECT * FROM session WHERE idSession = '$idSession' " ;
- $resultat = $bd->execRequete ($requete);
- return $bd->objetSuivant ($resultat);
- }
- // Vérification qu'une session est valide
- function SessionValide ($session, $bd)
- {
- // Vérifions que le temps limite n'est pas dépassé
- $maintenant = date ("U" );
- if ($session->tempsLimite < $maintenant)
- {
- // Destruction de la session
- session_destroy();
- $requete = "DELETE FROM session "
- . "WHERE idSession='$session->idSession'";
- $resultat = $bd->execRequete ($requete);
- return FALSE;
- }
- else // C'est bon !
- return TRUE;
- }
- // Tentative de création d'une session
- function CreerSession ($bd, $email, $mdp, $idSession)
- {
- $contact = ChercheInternaute ($email, $bd);
- // L'internaute existe-t-il ?
- if (is_object($contact))
- {
- // Vérification du mot de passe
- if ($contact->mdp == md5($mdp))
- {
- // On insère dans la table Session, pour 1 heure
- $maintenant = date ("U" );
- $tempsLimite = $maintenant + 3600;
- $insSession = "INSERT INTO session (idSession, email, pseudo, "
- . "tempsLimite) VALUES ('$idSession', "
- . "'$email','$contact->pseudo',"
- . "'$tempsLimite')";
- $resultat = $bd->execRequete ($insSession);
- return TRUE;
- }
- echo "<B>Mot de passe incorrect ! <P></B>\n";
- return FALSE;
- }
- else
- {
- echo "<B>L'utilisateur $email est inconnu !</B><P>\n";
- return FALSE;
- }
- }
- function FormIdentification($nomScript, $emailDefaut="" )
- {
- // Demande d'identification
- $form = new Formulaire ("POST", "$nomScript" );
- $form->debutTable();
- $form->champTexte("Votre email", "email", "$emailDefaut", 30);
- $form->champMotDePasse ("Mot de passe", "mdp", "", 30);
- $form->champValider ("Identification", "ident" );
- $form->fin(TRUE);
- }
- // Fonction de contrôle d'accès
- function ControleAcces ($nomScript, $infoLogin, $idSession)
- {
- $bd = new BD (NOM, PASSE, BASE, SERVEUR);
- $sessionCourante = ChercheSession ($idSession, $bd);
- // Cas 1: Vérification de la session courante
- if (is_object($sessionCourante))
- {
- // La session existe. Est-elle valide ?
- if (SessionValide ($sessionCourante, $bd))
- {
- // On renvoie l'objet session
- return $sessionCourante;
- }
- else
- echo "<B>Votre session n'est pas (ou plus) valide.<P></B>\n";
- }
- // Cas 2.a: pas de session mais email et mot de passe
- if (isSet($infoLogin['email']))
- {
- // Une paire email/mot de passe existe. Est-elle correcte ?
- if (CreerSession ($bd, $infoLogin['email'],
- $infoLogin['mdp'], $idSession))
- {
- echo "Identification correcte<p>\n";
-
- // On renvoie l'objet session
- return ChercheSession ($idSession, $bd);
- }
- else
- echo "<CENTER><B>Votre identification a échoué.</B></CENTER>\n";
- }
- // Cas 2.b : il faut afficher le formulaire, en proposant
- // l'email comme valeur par défaut.
- if (isSet($infoLogin['email']))
- $email = $infoLogin['email'];
- else
- $email = "";
- FormIdentification($nomScript, $email);
- }
- ?>
|
edit: ne chercher pas à comprendre la fonction FormIdentification je fais appel à une class formulaire pour de la mise en forme html automatique.
Le premier qui trouve mon probleme je l'épouseeee.........
Sinon je pensais ça ne peut pas venir de mon php.ini ?
Message édité par Scarf3ss3 le 30-09-2004 à 03:13:13
|