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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
26.11.2007, 00:06:52
|
|
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
|
26.11.2007, 00:25:57
|
|
AW: Rechtesystem
|
26.11.2007, 00:37:57
|
|
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
|
26.11.2007, 08:40:18
|
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.
|
26.11.2007, 09:48:02
|
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)
|
26.11.2007, 19:16:32
|
|
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
|
26.11.2007, 20:35:01
|
|
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 === $wert) trigger_error('Bad Char in input 1',E_USER_ERROR);
if($wert >= $quellformat) trigger_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(1 !== 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)>$maxcacheelements) array_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>';
?>
|
27.11.2007, 08:30:08
|
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...
|
27.11.2007, 11:23:13
|
|
AW: Rechtesystem
Das ist alles: "Mit Kanonen auf Spatzen schießen."
Eigendlich sollten die binären | & ^ << usw. reichen um ein Unixartiges Rechtesystem aufzubauen.
|
27.11.2007, 12:22:20
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Rechtesystem
Zitat:
Zitat von rambi
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 :-)
|
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.
HTML-Code ist aus.
|
|
|
Ä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.
|