Actions
Page type (programmation old_style)¶
<?php
/**
*
* exemple de page GEPI pour montrer les fonctionnalités disponibles et les précautions à prendre. (protections contre les attaques classiques)
* @version $Id: prototype_page_gepi.php $
*
* Copyright 2001, 2010 LesNomsDesDeveloppeurs
*
* This file is part of GEPI.
*
* GEPI is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* GEPI is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GEPI; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
// ********************************************************************************************
//
// TITRE DE LA PAGE
//
// ********************************************************************************************
$titre_page = "Le titre qui apparaitra en haut de la page";
// ********************************************************************************************
//
// Si $affiche_connexion est définie, on voit apparaitre la dernière connexion dans l'entête
//
// ********************************************************************************************
$affiche_connexion = 'yes';
// ********************************************************************************************
//
// Position du script dans l'arborescence GEPI : (indispensable)
// à la racine -> $niveau_arbo = 0
// dans un sous-dossier -> $niveau_arbo = 1
// dans un sous-sous-dossier -> $niveau_arbo = 2
// dans un sous-sous-sous-dossier -> $niveau_arbo = 3 (valeur maxi)
//
// ********************************************************************************************
$niveau_arbo = 1;
// ********************************************************************************************
//
// Initialisations files
//
// ********************************************************************************************
// initialisations (indispensables)
//
// 1. Filtrage de $_GET, $_POST, $_SERVER, $COOKIE contre injections SQL
// 2. Filtrage de $_GET et $_POST contre injections XSS
// 3. Filtrage de $_FILES pour interdire certaines extensions
// on peut définir la liste des fichiers autorisés au téléchargement - filtrage de $_FILES (optionnel)
$AllowedFilesExtensions = array("txt", "png");
require_once("../lib/initialisations.inc.php");
// initialisation pour pouvoir utiliser Propel (optionnel)
include("../lib/initialisationsPropel.inc.php");
// ********************************************************************************************
//
// inclusions personnelles (optionnel)
//
// ********************************************************************************************
require_once("./mesfonctions.php");
// ********************************************************************************************
//
// Vérification de l'authentification - (indispensable)
//
// ********************************************************************************************
$resultat_session = $session_gepi->security_check();
if ($resultat_session == 'c') {
header("Location:utilisateurs/mon_compte.php?change_mdp=yes&retour=accueil#changemdp");
die();
} else if ($resultat_session == '0') {
header("Location: ../logout.php?auto=1");
die();
}
// ********************************************************************************************
//
// Sécurité - (indispensable)
// ajout d'une ligne du style suivant dans 'sql/data_gepi.sql' et 'utilitaires/updates/access_rights.inc.php'
// INSERT INTO droits VALUES ('/edt_organisation/verifier_edt.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'vérifier la table edt_cours', '');
//
// ********************************************************************************************
if (!checkAccess()) {
header("Location: ../logout.php?auto=2");
die();
}
// ********************************************************************************************
//
// Initialisation des variables
//
// ********************************************************************************************
// Toutes les variables $_GET et $_POST sont traitées par InputFilter ou HTMLPurifier (permet de se prémunir des injections XSS)
// Le choix du filtre se fait par l'intermédiaire du champ 'filtrage_html' dans la table 'setting' - à ajouter ou modifier directement dans la table pour le personnaliser
// valeurs prises par 'filtrage_html' : 'input_filter', 'htmlpurifier' ou 'pas_de_filtrage_html'.
// par défaut, on utilise le filtre 'htmlpurifier'
$MyLogin = isset($_GET["MyLogin"]) ? $_GET["MyLogin"] : (isset($_POST["MyLogin"]) ? $_POST["MyLogin"] : NULL);
$MyMessage = "";
$MyMessage2 = "";
// ********************************************************************************************
//
// Traitement des données - mise en forme
//
// ********************************************************************************************
// Exemple d'une requête SQL traditionnelle
$sql = "SELECT nom FROM utilisateurs WHERE login='".$MyLogin."' ";
$req = mysql_query($sql);
if ($req) {
$rep = mysql_fetch_array($req);
if ($rep) {
$MyMessage = "<p>Hello ".$rep['nom']."</p>\n";
}
else {
$MyMessage = "<p>Mais qui êtes-vous ?</p>\n";
}
}
else {
$MyMessage = "<p>Une erreur SQL est survenue</p>\n";
}
// Exemple d'une requête Propel
$req = New Criteria();
$req->add(UtilisateurProfessionnelPeer::LOGIN, $MyLogin);
$user = UtilisateurProfessionnelPeer::doSelectOne($req);
if ($user) {
$MyMessage2 = "<p>Hello ".$user->getNom()."</p>\n";
}
else {
$MyMessage2 = "<p>Mais qui êtes-vous ?</p>\n";
}
// ********************************************************************************************
//
// CSS et js particulier (chargés par le header)
//
// ********************************************************************************************
$javascript_specifique[0] = "path/filename_js_1";
$javascript_specifique[1] = "path/filename_js_2";
$style_specifique[0] = "path/filename_css_1";
$style_specifique[1] = "path/filename_css_2";
// ======================= Pour utiliser 'scriptaculous' (basé sur prototype)
$utilisation_scriptaculous = 'ok';
$scriptaculous_effet = 'effects,dragdrop';
// ======================= Pour utiliser 'prototype window' (basé sur prototype)
$utilisation_win = 'oui';
// ********************************************************************************************
//
// Affichage de la page
//
// ********************************************************************************************
// inclusion du header
require_once("../lib/header.inc");
// le corps de la page ici
echo $MyMessage;
echo $MyMessage2;
// inclusion du footer
require("../lib/footer.inc.php");
?>
Mis à jour par Pascal Fautrero il y a presque 15 ans · 1 révisions