SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.11.2007, 00:06:52
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
Rechtesystem

Abend!
Ich beschäftige mich gerade mit dem häufig aufkommenden Thema einer Benutzerverwaltung und dem damit zusammenhängenden Rechtesystem. Für das Rechtesystem soll eine ähnliche Methode, wie bei dem bekannten Datei_Rechtesystem (chmod) verwendet werden. Also werden hier statt:
  • read = 1
  • write = 2
  • run= 4
sowas wie:
  • benutzer anlegen = 1
  • artikel schreiben = 2
  • benutzer hinzufügen = 4
  • navigation bearbeiten = 8
stehen. So hätte der absolute Administrator die Summe aller Rechte (15), sowie eine Gruppe im Dateisystem(7). Nun meine Frage wie kann ich eine Zahl nun in Binominale Werte zerlegen, wobei jeweils von jeder sorte nur ein Wert vorkommt. Also für 13 zum Beispiel: 2^3 + 2^2 + 2^0 = 8 + 4 + 1 = 13
Wäre euch für eure Hilfe dankbar.
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com
Mit Zitat antworten
  #2  
Alt 26.11.2007, 00:25:57
rambi
Guest
 
Beiträge: n/a
AW: Rechtesystem

Ich übe gerade hiermit: http://framework.zend.com/manual/de/zend.acl.html
Mit Zitat antworten
  #3  
Alt 26.11.2007, 00:37:57
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Rechtesystem

Morgen!
Ich werde mir das alles auf jeden Fall mal anschauen, jedoch wäre ich trotz allem an einer Lösung interessiert.
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com
Mit Zitat antworten
  #4  
Alt 26.11.2007, 08:40:18
defabricator defabricator ist offline
Senior Member
 
Registriert seit: Sep 2007
Ort: Potsdam
Alter: 55
Beiträge: 1.020
AW: Rechtesystem

Du hast Dir zend_acl noch garnicht angesehen, weißt aber, dass es keine Lösung ist?
__________________
Wat der Bauer nich kennt, dit frisster nich.
Mit Zitat antworten
  #5  
Alt 26.11.2007, 09:48:02
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Rechtesystem

Was sind denn "Binomiale Werte" und wie genau willst Du eine Zahl zerlegen?

Zitat:
wobei jeweils von jeder sorte nur ein Wert vorkommt. Also für 13 zum Beispiel: 2^3 + 2^2 + 2^0 = 8 + 4 + 1 = 13
Von der "Sorte" 2^1 kommt aber kein Wert in Deinem Beispiel vor...?

Geändert von feuervogel (26.11.2007 um 09:48:25 Uhr)
Mit Zitat antworten
  #6  
Alt 26.11.2007, 19:16:32
Benutzerbild von Socrates
Socrates Socrates ist offline
Member
 
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
AW: Rechtesystem

Abend!
Also zu feuervogel. Entschuldigung für den falschen Ausdruck "Binomial". Ich meinte eigentlich das Dualsystem. Es gibt im Dualsystem für jede beliebige Zahl a nur eine Möglichkeit im Dualsystem dargestelt zu werden. So bedeutet 1001 nicht tausendundeins sondern 1*2^0 0*2^1 + 0*2^2 + 1*2^3 = 1*1 + 0*2 + 0*4 + 1*8 = 1+ 8 = 9
Das schöne Einsen und Nullen System, dass wir uns vorstellen, wenn wir an die Informatik denken. Dieses Beispiel erklärt auch warum keine 2^1 in meinem vorherigen Beispiel drankam. Gibt es für dass umrechnen einer Zahl a aus dem Dezimalsystem (Beispiel: 9) ins Dualsystem (Beispiel: 1001) eine Funktion, die uns PHP zur verfügung stellt? Und wenn nicht kennt jemand einen guten Lösungsweg?
MfG, Andy
__________________
BSc. Applied Computer Science
http://www.bornageek.com
Mit Zitat antworten
  #7  
Alt 26.11.2007, 20:35:01
rambi
Guest
 
Beiträge: n/a
AW: Rechtesystem

Zitat:
Gibt es für dass umrechnen einer Zahl a aus dem Dezimalsystem (Beispiel: 9) ins Dualsystem (Beispiel: 1001) eine Funktion, die uns PHP zur verfügung stellt?
Ja, sicherlich!!
http://de2.php.net/manual/de/function.base-convert.php

Und wenn du es mit (fast) beliebig langen Zahlen machen willst:
Bis zur Basis 62, no Problemo...
PHP-Code:
<?php
error_reporting
(E_ALL);
ini_set('display_errors'TRUE);



function 
bc_base_convert($value,$quellformat,$zielformat)
{
  
$vorrat '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  if(
max($quellformat,$zielformat) > strlen($vorrat))
      
trigger_error('Bad Format max: '.strlen($vorrat),E_USER_ERROR);
  if(
min($quellformat,$zielformat) < 2
      
trigger_error('Bad Format min: 2',E_USER_ERROR);
  
$dezi   '0';
  
$level  0;
  
$result '';
  
$value  trim((string)$value,"\r\n\t +");
  
$vorzeichen '-' === $value{0}?'-':'';
  
$value  ltrim($value,"-0");
  
$len    strlen($value);
  for(
$i=0;$i<$len;$i++)
  {
    
$wert strpos($vorrat,$value{$len-1-$i});
    if(
FALSE === $werttrigger_error('Bad Char in input 1',E_USER_ERROR);
    if(
$wert >= $quellformattrigger_error('Bad Char in input 2',E_USER_ERROR);
    
$dezi bcadd($dezi,bcmul(bcpow($quellformat,$i),$wert));
  }
  if(
10 == $zielformat) return $vorzeichen.$dezi// abkürzung
  
while(!== bccomp(bcpow($zielformat,$level++),$dezi));
  for(
$i=$level-2;$i>=0;$i--)
  {
    
$factor  bcpow($zielformat,$i);
    
$zahl    bcdiv($dezi,$factor,0);
    
$dezi    bcmod($dezi,$factor);
    
$result .= $vorrat{$zahl};
  }
  
$result = empty($result)?'0':$result;
  return 
$vorzeichen.$result ;
}

function 
bccache_base_convert(&$value,$quellformat,$zielformat,$maxcacheelements=1000)
{
  static 
$cache = array();
  if(
count($cache)>$maxcacheelementsarray_shift($cache); // begrenzen
  
$cache_key "$value|$quellformat|$zielformat" ;
  if(!isset(
$cache[$cache_key]))
   
$cache[$cache_key] = bc_base_convert($value,$quellformat,$zielformat);
  return 
$cache[$cache_key];
}

// testcode

$zahl   '111111111111111111111110001001010100101010100101111111111111111111110101010100101010010101111111111111111111111111111111111111111111111111111111111111110';
$quelle 2//binär
$ziel   10//dezimal


echo bccache_base_convert($zahl,$quelle,$ziel).'<br>';


?>
Mit Zitat antworten
  #8  
Alt 27.11.2007, 08:30:08
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Rechtesystem

Zitat:
Und wenn nicht kennt jemand einen guten Lösungsweg?
Ich glaube Hornerschema hieß der Weg...
Mit Zitat antworten
  #9  
Alt 27.11.2007, 11:23:13
rambi
Guest
 
Beiträge: n/a
AW: Rechtesystem

Das ist alles: "Mit Kanonen auf Spatzen schießen."

Eigendlich sollten die binären | & ^ << usw. reichen um ein Unixartiges Rechtesystem aufzubauen.
Mit Zitat antworten
  #10  
Alt 27.11.2007, 12:22:20
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Rechtesystem

Zitat:
Zitat von rambi Beitrag anzeigen
Das ist alles: "Mit Kanonen auf Spatzen schießen."

Eigendlich sollten die binären | & ^ << usw. reichen um ein Unixartiges Rechtesystem aufzubauen.
Richtig, es liegt nahe bei Arbeiten auf Bit-Ebene binäre Operatoren zu nutzen :-)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rechtesystem nivram PHP für Fortgeschrittene und Experten 12 30.10.2005 15:21:33


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33:00 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt