php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2005, 13:33  
Gast
 
Beiträge: n/a
Standard TPL System - Funktionen - Einsetzen - Rechte Problem

Also, und zwar hab ich ein Templatesystem (siehe Code) mit diesem lad kann ich Templats einladen (Normal oder? ) So darunter gibts die usercp.php diese laded template_oben und _unten. Dort sind alle nötigen Configurationen gemacht. In der usercp.php befindet sich auch die Abfragen "open=login" dieses {userlogin} sollte dann ersetzt werden mit der Navigationsleiste. Aber die Navigationsleiste beinhaltet Rechte Abfrgen (1 User, 2 Moderator, 3 Administrator). Genau hier liegt mein Problem. Ich kriege die Abfrge einfach nicht zum Laufen, ich hab nun gut 2h dran gearbeitet imma was anders versucht aber es kamm nichts raus.

Vielleicht könnt ihr mir helfen, (Code Durchfliegen sollte eigentlich reichen)



Das Template System (Klasse)
PHP-Code:
<?php
class template{
   var 
$tpl=array();
   var 
$temppfad;
   var 
$gzip;
   var 
$gziplevel;
   var 
$magic_quotes_runtime;
   var 
$magic_quotes_gpc=true;

   function 
get($array)
   {
         
$this->tpl[$array]=file_get_contents($this->temppfad.'/'.$array.'.tpl') or die($this->tpl[$array]='File '.$array.'.tpl'.$this->phpex.' doesn\'t Exists');
     
#if(@file_exists($this->temppfad.'/'.$array.'.'.$this->phpex))$this->tpl[$array]=implode('',file($this->temppfad.'/'.$array.'.'.$this->phpex));
   
}


   function 
get_now($array)
   {
         
$this->get($array);
         return 
$this->tpl[$array];
   }
    function 
out(&$out_tpl){
        global 
$_SERVER,$starttime,$db;
        if(
$this->gzip){
            
$compress=1;
            if(
strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'x-gzip')!==false) @header('Content-Encoding: x-gzip');
            elseif(
strpos($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')!==false) @header('Content-Encoding: gzip');
            else 
$compress=0;
            if(
$compress==1$out_tpl="\x1f\x8b\x08\x00\x00\x00\x00\x00".substr(gzcompress($out_tpl,$this->gziplevel),0,-4).pack('V',strlen($out_tpl));
        }
        @
header('Expires: Fri, 31 Jan 1986 05:00:00 GMT');
        @
header('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
        @
header('Content-length: '.strlen($out_tpl));
        @
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
        @
header('Cache-Control: no-store, no-cache, must-revalidate');
        @
header('Pragma: no-cache');
        echo 
$out_tpl.round(microtime()-$starttime5).'Querys:'.$db->query;
        
flush();
        
clearstatcache();
    }

   function 
get_tpl_array($array)
   {
 if(
is_array($array))foreach($array AS $key=>$tplname)$this->get($tplname);
 else 
$this->get($array);
   }
}
?>

So nun Die Datei (usercp):
PHP-Code:
<?php
require_once("templates/template_oben.php");
$tpl->get('index');
if(isset(
$_REQUEST['open']))
{
  
$replace str_replace('{CONTENT}',$tpl->get_now('usersystem/start'),$tpl->tpl['index']);
  
$replace str_replace('{CONTENT_NAME}'"Du bist nicht Berechtig diese Seite zu betreten!"$replace);
}
#################################################
if($_REQUEST['open'] == "login")
{
$sql "SELECT Id, Nickname, Nachname, Vorname, icq, msn, skype, yim, rechte, wohnort, land, homepage, pc, motto, signatur, email, u_alter FROM benutzerdaten WHERE Nickname like '".$_REQUEST["name"]."' AND Kennwort = '".md5 ($_REQUEST["pwd"])."'" or die (mysql_error());
$result mysql_query ($sql);

if (
mysql_num_rows ($result) > 0)
{
  
// Benutzerdaten in ein Array auslesen.
  
$data mysql_fetch_array ($result);
    
      
// Sessionvariablen erstellen und registrieren
  
$_SESSION["user_id"] = $data["Id"];
  
$_SESSION["user_rechte"] = $data["rechte"];
  
$_SESSION["user_nickname"] = $data["Nickname"];
  
$_SESSION["user_nachname"] = $data["Nachname"];
  
$_SESSION["user_vorname"] = $data["Vorname"];
  
$_SESSION["user_profil_icq"] = $data["icq"];
  
$_SESSION["user_profil_msn"] = $data["msn"];
  
$_SESSION["user_profil_yim"] = $data["yim"];
  
$_SESSION["user_profil_skype"] = $data["skype"];
  
$_SESSION["user_profil_alter"] = $data["u_alter"];
  
$_SESSION["user_profil_wohnort"] = $data["wohnort"];
  
$_SESSION["user_profil_land"] = $data["land"];
  
$_SESSION["user_profil_email"] = $data["email"];
  
$_SESSION["user_profil_homepage"] = $data["homepage"];
  
$_SESSION["user_profil_motto"] = $data["motto"];
  
$_SESSION["user_profil_signatur"] = $data["signatur"];
  
$_SESSION["user_profil_pc"] = $data["pc"];
    }
  
$replace str_replace('{CONTENT}',$tpl->get_now('usersystem/start'),$tpl->tpl['index']);
  
$replace str_replace('{username}',  $_SESSION["user_nickname"], $replace);
  
$replace str_replace('{BLAETTERN}'''$replace);
  
$replace str_replace('{PAGE_START}'''$replace);
  
$replace str_replace('{PAGE_BACK}'''$replace);
  
$replace str_replace('{PAGE_NUMBERS}'''$replace);
  
$replace str_replace('{PAGE_FORWARD}'''$replace);
  
$replace str_replace('{PAGE_END}'''$replace);
}
############################
######### Logout ###########
############################
if($_REQUEST['open'] == "logout")
{
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.
ob_start ();

session_start ();
session_unset ();
session_destroy ();

header ("Location: index.php");
ob_end_flush ();
}
#############################
require_once("templates/template_unten.php");
?>
Su und non die Funktion "check_rechte":
PHP-Code:
<?php
############################################
function check_rechte()
    {
#########################
        
if($_SESSION['user_rechte'] == '1')
        {
            
$ausgabe_rechte_user = array('[url="index.php?section=user_cp"]User CP[/url]
'
,
                      
'[url="index.php?section=user_guthaben"]Guthaben[/url]
'
,
                    
'[url="usercp.php?open=logout"]Ausloggen[/url]');
            
$replace str_replace('{userlogin}'"
                    "
.$ausgabe_rechte_user[0]."
                    "
.$ausgabe_rechte_user[1]."
                    "
.$ausgabe_rechte_user[2]."
                    "
,$replace);
        }
#########################
        
if($_SESSION['user_rechte'] == '2')
        {
            
$ausgabe_rechte_mod = array('[url="index.php?section=user_cp"]User CP2[/url]
'
,
                      
'[url="index.php?section=user_guthaben"]Guthaben2[/url]
'
,
                    
'[url="usercp.php?open=logout"]Ausloggen2[/url]');
            
$replace str_replace('{userlogin}'"
                    "
.$ausgabe_rechte[0]."
                    "
.$ausgabe_rechte[1]."
                    "
.$ausgabe_rechte[2]."
                    "
,$replace);
        }
#########################
        
if($_SESSION['user_rechte'] == '3')
        {
        
$ausgabe_rechte_admin = array('[url="index.php?section=user_cp"]User CP3[/url]
'
,
                      
'[url="index.php?section=user_guthaben"]Guthaben3[/url]
'
,
                    
'[url="usercp.php?open=logout"]Ausloggen3[/url]');
        
$replace str_replace('{userlogin}'"
                    "
.$ausgabe_rechte_admin[0]."
                    "
.$ausgabe_rechte_admin[1]."
                    "
.$ausgabe_rechte_admin[2]."
                    "
,$replace);
        }
#########################
    
}
?>

Wie ihr sehen könnt benutzen alle die $replace Variable. Bloss diese ist ja festgesetzt diese kann ich nicht ümändern, sonst ersetzt er es ja nichtmehr. Hat jemand eine Idee wie ich es sonst noch realsieren könnte?


Thx s1x
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2005, 13:59  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

error-reporting
Zum testen von Scripts setzt man normalerweise am anfang des scripts (oder direkt in einer config-datei die immer Includet wird)
PHP-Code:
error_reporting(E_ALL); 
damit werden dann alle Fehler ausgegeben.

ich würde sagen du hast irgendwo was nicht global gesetzt, weil in der funktion check_rechte(); wird weder irgendwo $replace ein wert zugewißen, noch wird es global gesetzt.

und bitte das mit dem errorreporting beherzigen, weil das einem eigentlich immer hilft und man sollte es beim entwickeln von scripten immer aktivieren.

mfg
robo47
robo47 ist offline  
Alt 26.03.2005, 14:46  
Gast
 
Beiträge: n/a
Standard

So ein kleines ding namens global hat wirklich geholfen Thx

Nun anderes seehrr komisches Problem, wenn ich mich einlogge oder von der index.php irgendeine seite aufruf dann will der das ich die download, nachm aktualsieren gehts dann aber. Anyone a idear?! thx.
 
Alt 26.03.2005, 14:50  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

hmm glaub das problem hatt ich schonmal im zusammenhang mit der Ausgabekompression, aber mehr ideen hab ich dazu auch nicht.,

mfg
robo47
robo47 ist offline  
Alt 26.03.2005, 15:17  
Gast
 
Beiträge: n/a
Standard

Hm hat jemand eine Idee dazu ?!
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem mit geschickter Auswertung von Datenbankeinträgen Dominik PHP Tipps 2008 13 21.06.2008 22:33
Funktionen aus externer Datei includen - Problem Darson PHP Tipps 2008 7 18.01.2008 16:27
Problem mit meinem Login System DJ Nuno PHP Tipps 2008 9 16.10.2007 16:44
Rechte Verwaltungs Problem Komandar PHP Tipps 2007 1 12.08.2007 14:38
Problem mit Global Scope von Funktionen WickedImp PHP-Fortgeschrittene 13 16.05.2006 00:30
PN System Problem gollum1990 PHP Tipps 2006 4 09.05.2006 21:52
problem beim auslesen der rechte eines verzeichnisses sysop PHP Tipps 2005-2 2 10.07.2005 23:11
Problem mit postaci E-Mail System PHP Tipps 2005 5 06.05.2005 13:17
Suspekter Fehler: Keine Rechte auf der Datenbank Datenbanken 5 20.04.2005 06:31
bbcode/news system problem Das Devil PHP Tipps 2005 2 06.03.2005 13:59
Problem mit mehreren Funktionen des gleichen Types PHP Tipps 2005 10 05.01.2005 14:06
Problem beim Einsetzen von array_unique PHP Tipps 2004-2 1 06.12.2004 09:07
Problem mit Funktionen PHP Tipps 2004-2 6 04.12.2004 14:11
[Erledigt] problem mit ftp funktionen und chmod PHP-Fortgeschrittene 7 19.08.2004 16:59
Ordner per Skript erstellen --> Rechte Problem PHP Tipps 2004 2 06.07.2004 14:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
tpl systemes, php systemfunktionen, url /system/warten.php, if im tpl system, .tpl funktionen, content system mit tpl dateien, $_session[\'url section\'], tpl system erstellen, rechte fehler /var, assigned template variables, tpl array, tpl->get, tpl->get hilfe, php system funktioniert nicht, php system not working, php array .tpl, php tpl funktionen, php system, .tpl system coden, php website with tpl not working

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.