niveau pour acceder au fichier
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
Et ensuite tout simplement générer l'Autorisation dans cette nouvelle page si il est pas inscris erreur si non et bien tu continue donc tu le renvoie vers l'url du fichier en question, l'Adresse est celle-ci: ../download/count.php?id={download.IDURL}
Cela siginifie que tu dois aussi assigner la varable download.IDURL. Je suis aps sur si il faut autre chose aussi, je vais faire quelque test et te revenir la dessus.
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
[code=php]<?php
//Chargement de l'environnement de PHPBoost
include_once('../includes/begin.php');
//Définition du titre de la page (correspond au contenu des balises <title> </title>

define('TITLE', 'Titre de la page');
//Chargement de l'environnement graphique
include_once('../includes/header_no_display.php');
if( !$session->check_auth($session->data, 0) )
{
$errorh->error_handler('e_auth', E_USER_REDIRECT);
exit;
}
?>[/code]
Contenu de la page : code HTML
[code=php]<?php
//Fermeture de l'environnement
include_once('../includes/footer_no_display.php');
?>[/code]
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
Je récapitule: Ne pas appliquer.
Tout les changements ont été effectués sur la version 2.0 de base.
dans ./download/templates/download.tpl
Ligne: 149
Tu remplace ce code:
Code HTML :
[url=../download/count.php?id={download.IDURL}][img]{download.MODULE_DATA_PATH}/images/{download.LANG}/bouton_dl.gif[/img][/url]Par celui ci:
Code HTML :
Et voilà c'est fini pour ce fichier.
Ensuite tu enregistre un fichier dans ./download/
que tu nomme: download_redirect.php
Dans ce fichier tu viens coller ceci:
Code PHP :
<?php include_once('../includes/begin.php'); define('TITLE', Redirection); //Chargement de l'environnement graphique include_once('../includes/header_no_display.php'); if( !$session->check_auth($session->data, 0) ) { $errorh->error_handler('e_auth', E_USER_REDIRECT); exit; } //Fermeture de l'environnement include_once('../includes/footer_no_display.php'); ?>
Je vais continuer j'ai un petit problème pour transmettre le "ID" du fichier pour pouvoir le télécharger.
Édité par magikverse Le 14/04/2008 à 03h26
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
Ouvrir le fichier ./download/count.php
Effacer tout le contenu de la page et copier/coller ceci:
[code=php]<?php
/*##################################################
* count.php
* -------------------
* begin : July 27, 2005
* copyright : (C) 2005 Viarre Régis
* email : crowkait@phpboost.com
*
*
###################################################
*
* This program 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.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
include_once('../includes/begin.php');
//Chargement de l'environnement graphique
include_once('../includes/header_no_display.php');
$idurl = !empty($_GET['id']) ? numeric($_GET['id']) : 0;
if( !empty($idurl) )
$sql->query_inject("UPDATE ".PREFIX."download SET compt = compt + 1 WHERE id = '" . $idurl . "'", __LINE__, __FILE__); //MAJ du compteur.
$file_path = $sql->query("SELECT url FROM ".PREFIX."download WHERE id = '" . $idurl . "'", __LINE__, __FILE__);
//Redirection vers le fichier demandé!
if( !$session->check_auth($session->data, 0) )
{
$errorh->error_handler('e_auth', E_USER_REDIRECT);
exit;
}
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
$filesize = @filesize($file_path);
if( $filesize !== false )
header("Content-Length: " . $filesize);
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . substr(strrchr($file_path, '/'), 1) . '"');
if( @readfile($file_path) === false )
{
header('location:' . $file_path, true);
exit;
}
?>[/code]
On enregistre et voila, si c'est un visiteur il est diriger vers la page d'erreur: vous n'avez pas le niveau requis. Si il est connecter c'est comme c'étais avant.
P.S. Il serais intéressant de pouvoir gérer cette autorisation dynamiquement selon le fichier. Dans la version 2.1? :P
Édité par magikverse Le 14/04/2008 à 04h02
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
ce que je peux changer cette page
pour la remplace par cette page

merci
Édité par lou98 Le 14/04/2008 à 10h51
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
Car la page d'erreur que tu me montre ce n'est pas le résultat que tu es supposer avoir...
Édité par magikverse Le 14/04/2008 à 14h30
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
merci
Édité par lou98 Le 14/04/2008 à 18h16
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
remplace ce code:
[code=php]header($this->redirect . '/member/error' . transid('.php?e=' . $errstr, '', '&'));[/code]
par celui ci:
[code=php]header('location: URL');[/code]
Tu peux le mettre en relatif exemple pour à la racine: ../nom_choisi.php
Dans le fichier tu peux de nouveau charger l'environment de PHPBoost comme ceci:
[code=php]<?php
//Chargement de l'environnement de PHPBoost
include_once('../includes/begin.php');
//Définition du titre de la page (correspond au contenu des balises <title> </title>

define('TITLE', 'Titre de la page');
//Chargement de l'environnement graphique
include_once('../includes/header_no_display.php');
Inscris toi<br />
Le contenu HTML voila.
//Fermeture de l'environnement
include_once('../includes/footer_no_display.php');
?>[/code]
a+
Édité par magikverse Le 14/04/2008 à 18h48
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
Sinon télécharge le pack sur le site et va le chercher.
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
comme tu as dis j ai supprime cette ligne
header($this->redirect . '/member/error' . transid('.php?e=' . $errstr, '', '&'));
et je le remplace par cela
header('http://apu.mabul.org/up/apu/2008/04/14/img-2128346wn0e.jpg');
mais sa marche pas
comment faire pour que sa marche
merci
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
header('location: http://www.3qcrp.com/member/register.php');
cela mène sur la page d'inscription de mon site.
lou98 Membre non connecté
Booster Roquette
-
Booster Roquette
- Voir le profil du membre lou98
- Inscrit le : 06/11/2007
- Site internet
regarde la page j ai bien modifie mais je ne sais pas pourquoi sa marche pas
[code=php]<?php
/*##################################################
* errors.class.php
* -------------------
* begin : April 12, 2007
* copyright : (C) 2007 Viarre Régis
* email : crowkait@phpboost.com
*
*
###################################################
*
* This program 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.
*
* This program 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 this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
###################################################*/
//Niveau de rapport d'erreurs.
@error_reporting(ERROR_REPORTING);
//Constantes de base.
define('ARCHIVE_ALL_ERRORS', true); //Archivage de toutes les erreurs, quel que soit le type.
define('ARCHIVE_ERROR', true); //Archivage de l'erreur courante, quel que soit le type.
define('NO_ARCHIVE_ERROR', false); //N'archive pas l'erreur courante, quel que soit le type.
define('NO_LINE_ERROR', ''); //N'affiche pas la ligne de l'erreur courante.
define('NO_FILE_ERROR', ''); //N'affiche pas le fichier de l'erreur courante.
class Errors
{
var $archive_all; //Enregistrement des logs d'erreurs, pour tout les types d'erreurs.
var $redirect;
//Constructeur
function Errors($archive_all = false)
{
$this->archive_all = $archive_all;
//Récupération de l'adresse de redirection => constantes non initialisées.
$this->redirect = 'Location: http://' . $_SERVER['HTTP_HOST'] . preg_replace('`(/(.*))?/(.*)/(.*).php`', '$1', $_SERVER['PHP_SELF']);
}
//Gestionnaire d'erreurs controlées par le développeur.
function error_handler($errstr, $errno, $errline = '', $errfile = '', $tpl_block = '', $archive = false)
{
global $LANG, $template;
//Parsage du bloc seulement si une erreur à afficher.
if( !empty($errstr) )
{
switch($errno)
{
//Message d'erreur demandant une redirection.
case E_USER_REDIRECT:
$this->error_log($errfile, $errline, $errno, $errstr, $archive);
header('http://asfaloutinghir.free.fr/member/register.php');
exit;
break;
//Message de succès, étrange pour une classe d'erreur non?
case E_USER_SUCCESS:
$errstr = sprintf($LANG['error_success'], $errstr, '', '');
$template->assign_block_vars($tpl_block . 'error_handler', array(
'IMG' => 'success',
'CLASS' => 'error_success',
'L_ERROR' => $errstr
));
break;
//Notice utilisateur.
case E_USER_NOTICE:
case E_NOTICE:
$errstr = sprintf($LANG['error_notice'], $errstr, '', '');
$template->assign_block_vars($tpl_block . 'error_handler', array(
'IMG' => 'notice',
'CLASS' => 'error_notice',
'L_ERROR' => $errstr
));
break;
//Warning utilisateur.
case E_USER_WARNING:
case E_WARNING:
$errstr = sprintf($LANG['error_warning'], $errstr, '', '');
$template->assign_block_vars($tpl_block . 'error_handler', array(
'IMG' => 'important',
'CLASS' => 'error_warning',
'L_ERROR' => $errstr
));
break;
//Erreur fatale.
case E_USER_ERROR:
case E_ERROR:
//Enregistrement de l'erreur fatale dans tout les cas.
$error_id = $this->error_log($errfile, $errline, $errno, $errstr, true);
header($this->redirect . '/member/fatal' . transid('.php?error=' . $error_id, '', '&'));
exit;
}
//Enregistrement de l'erreur si demandé.
if( $archive )
return $this->error_log($errfile, $errline, $errno, $errstr, $archive);
return true;
}
return false;
}
//Enregistre l'erreur dans le fichier de log.
function error_log($errfile, $errline, $errno, $errstr, $archive)
{
if( $archive || $this->archive_all )
{
if( !file_exists('../cache/error.log') )
{
$handle = @fopen($file_path, 'w+'); //On crée le fichier avec droit d'écriture et lecture.
@fwrite($handle, "");
@fclose($handle);
}
//Nettoyage de la chaîne avant enregistrement.
$errstr = $this->clean_errstr($errstr);
$error = date('Y-m-d H:i
') . "n";$error .= $errno . "n";
$error .= $errstr . "n";
$error .= basename($errfile) . "n";
$error .= $errline . "n";
if( @error_log($error, 3, '../cache/error.log') )
return true;
}
return false;
}
//Nettoie la chaine d'erreur pour compresser le fichier.
function clean_errstr($errstr)
{
$errstr = preg_replace("`r|n|t`", "n", $errstr);
$errstr = preg_replace("`(n){1,}`", '<br />', $errstr);
return $errstr;
}
//Récupération des informations de la dernière erreur.
function get_last_error_log()
{
$errinfo = '';
$handle = @fopen('../cache/error.log', 'r');
if( $handle )
{
$i = 1;
while( !feof($handle) )
{
$buffer = fgets($handle, 4096);
if( $i == 2 )
$errinfo['errno'] = $buffer;
if( $i == 3 )
$errinfo['errstr'] = $buffer;
if( $i == 4 )
$errinfo['errfile'] = $buffer;
if( $i == 5 )
{
$errinfo['errline'] = $buffer;
$i = 0;
}
$i++;
}
@fclose($handle);
}
return $errinfo;
}
//Récupération du type de l'erreur.
function get_errno_class($errno)
{
switch($errno)
{
//Redirection utilisateur.
case E_USER_REDIRECT:
$class = 'error_fatal';
break;
//Notice utilisateur.
case E_USER_NOTICE:
case E_NOTICE:
$class = 'error_notice';
break;
//Warning utilisateur.
case E_USER_WARNING:
case E_WARNING:
$class = 'error_warning';
break;
//Erreur fatale.
case E_USER_ERROR:
case E_ERROR:
$class = 'error_fatal';
break;
//Erreur inconnue.
default:
$class = 'error_unknow';
}
return $class;
}
}
?>[/code]
Editer par Horn :
Quand on met un code, on utilise la balise CODE et pas citation
magikverse Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre magikverse
- Inscrit le : 08/01/2008
- Site internet
header('location: http://asfaloutinghir.free.fr/member/register.php');
Édité par magikverse Le 15/04/2008 à 19h01
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie