Pour chaque page de votre site, vous devez faire appel à plusieurs fonctions.
Dans un premier temps, on copie sur le FTP le contenu du répertoire Aedituus à la racine du site, donc les répertoires :
Le mieux, c'est de placer ces fonctions dans un fichier, et on appelera donc ce fichier sur toutes les pages du site.
Pour l'exemple, nous appelerons ce fichier : entete.php
Voici son contenu :
<?php define ('AEDITUUS_ROOT', './'); require_once AEDITUUS_ROOT.'commun.php'; $user = new AeUser(); $user->session_begin();
Pour une meilleur flexibilité, on pourrait aussi utiliser le chemin réel sur le serveur :
define ('AEDITUUS_ROOT', '/home/public/domaine_tld/www/');
On a tout simplement activé le système de sessions, maintenant, nous allons voir ce qui se passe sur le serveur.
On crée un fichier : index.php
Et on mets le code suivant :
<?php include_once('./entete.php'); print_r ($user);
Voici ce que l'on obtient :
AeUser Object ( [id] ⇒ -1 [logged_in:private] ⇒ 0 [pseudo] ⇒ [mdp] ⇒ [email] ⇒ [session:private] ⇒ AeSession Object ([session_logged_in:private] ⇒ 0 [session_user_id:private] ⇒ -1 [session_ip:private] ⇒ 982.350.120.67 [session_id:private] ⇒ 4ed34a97dc6eaf7246e69434ee515b5b [session_rand_id:private] ⇒ 858dfa6bde274f702aef9fef840ebc67 [session_name:private] ⇒ aedituus [session_time:private] ⇒ 7200 ) [userdata:private] ⇒)
Donc, pour récupèrer l'id, il nous suffit de faire :
<?php include ('./theme/entete.php'); if ($user->id == '-1') { echo "Hello Visiteur de la planète Mars"; } // Ajout wamania, il est préférable d'utiliser la méthode faite pour : if ( ! $user->isConnected() ) { echo "Hello Visiteur de la planète Mars"; }
Le -1 veut dire Visiteur inconnu, alors que le 0, c'est un visiteur connu (il vient de s'inscrire et en attente de formulaire, ou alors il vient de se déconnecter).
<?php include ('./entete.php'); global $user, $cfg; if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { $inputs = array('identifiant' => AeValidator::valid($cfg['validator_pseudo'], array('var'=>$_POST['identifiant'], 'min'=>$cfg['pseudo_min_size'], 'max'=>$cfg['pseudo_max_size']))); if ($inputs['identifiant'] === false) { echo "pseudo invalide"; } else { $inputs['mdp'] = AeValidator::valid($cfg['validator_mdp'], array('var'=>$_POST['mdp'], 'min'=>$cfg['mdp_min_size'], 'max'=>$cfg['mdp_max_size'])); $inputs['mdp'] = sha1( AeUserAPI::getUserGDS($inputs['identifiant']) . stripslashes($inputs['mdp']) . AeUserAPI::getUserGDS($inputs['identifiant'])); $tabUser = AeUserAPI::getUserByAuth( $inputs['identifiant'], $inputs['mdp'] ); if( $tabUser === false ) { echo "Erreur d'identification"; } else { if ($tabUser->active != '1') { echo "Compte non validé"; } else { $user->setId( $tabUser->id ); $user->connecte(); echo "connecter"; } } } } else { echo "<form action='./index.php' method='post'>"; echo "<input type='text' name='identifiant'>"; echo "<input type='password' name='mdp'>"; echo "<input type='submit'>"; echo "</form>"; }