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 für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
09.11.2010, 16:05:42
|
Junior Member
|
|
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
|
|
Meinung zu diesem controller :)
Ich hab die tage mal ein wenig gebastelt für einen kleinen controller vieleicht ann ich ja was verbessern würd gerne eure meinung dazu hören..
PHP-Code:
<?php
function controler($postarr,$getarr) {
//filtern von get array
foreach ($getarr as $varx => $val) {
$getarr[$varx] = preg_replace('/[^a-z0-9 \\/?=&]/Usi','',$val);
}
//zuweisung der view
$view = $getarr['p'];
if (empty($view)) {
$view = 'home';
}
//prüfung der erlaubten seiten.
if(!empty($_SESSION['rang'])) {
switch($_SESSION['rang']) {
case 4:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','admin');
break;
case 3:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','moderator');
break;
case 2:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','operator');
break;
case 1:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','usercp');
break;
}
}else {
$allow = array('home','gb','login','kontakt');
}
if(in_array($view,$allow)){
//relative pfadangaben
$viewtpl = 'templates/'.$view.'.php';
$exists = file_exists($viewtpl);
if ($exists){
ob_start();
// Das Template-File wird eingebunden und dessen Ausgabe in
// $output gespeichert.
include $viewtpl;
$output = ob_get_contents();
ob_end_clean();
// Output zurückgeben.
return $output;
}else {
// Template-File existiert nicht-> Fehlermeldung.
return 'could not find template';
}
}else {
return 'You dont have the permission to acces this page';
}
}
?>
postarray wird auserhalb vom controller gefiltert (auf wunsch eines freundes für den dieser controller bestimmt ist )
Würde halt gerne wissen was ihr so verbessern würdet.
LG
R4Zz0R
__________________
Wachsen kann man entweder:
Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.
Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe
Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
|
19.11.2010, 08:28:06
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Meinung zu diesem controller :)
Hi
Zitat:
Würde halt gerne wissen was ihr so verbessern würdet.
|
Ich würd ihn verkürzen ;)
Aber sag mal wenn ich mir den code so anschau....
darf ein user/mod/op/admin nicht auf Home???
PHP-Code:
if (empty($view)) {
$view = 'home';
}
//...
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','usercp');
break;
//...
if(in_array($view,$allow)){
//...
}else {
return 'You dont have the permission to acces this page';
}
mfg
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
21.11.2010, 22:10:38
|
Junior Member
|
|
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
|
|
AW: Meinung zu diesem controller :)
Öhhm ja doch eigentlich schon aber nach dem login gibt es die seite home nicht mehr diret sondern wird mit member angesprochen da man ja auserhalb des mitgliederbereichs keinerlei funktionen hat wesegen man sich da aufhalten müsste ...
zu 90% spielt sich alles hinterm login ab daher ist es nicht von nöten home mit in das array aufzunehmen :D
zum thema verkürzen habe ich mir auch schon was überlegt was aber zurfolge hätte das ich das array erst nochmal verarbeiten müsste weil es dan mehrdimensional wäre...
vorschläge zum kürzen ?
lg
R4Zz0R
__________________
Wachsen kann man entweder:
Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.
Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe
Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
|
22.11.2010, 01:38:27
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Meinung zu diesem controller :)
Hi
PHP-Code:
//zuweisung der view
$view = $getarr['p'];
if (empty($view)) {
$view = 'home';
}
// vs
//zuweisung der view
$view = empty($getarr['p'])?'home':$getarr['p'];
PHP-Code:
//prüfung der erlaubten seiten.
if(!empty($_SESSION['rang'])) {
switch($_SESSION['rang']) {
case 4:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','admin');
break;
case 3:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','moderator');
break;
case 2:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','operator');
break;
case 1:
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads','usercp');
break;
}
}else {
$allow = array('home','gb','login','kontakt');
}
// vs
//prüfung der erlaubten seiten.
$allow = array('home','gb','login','kontakt');
if(!empty($_SESSION['rang'])) {
$allow = array('member','forum','pm','profile','chat','logout','galerie','uploads');
switch($_SESSION['rang']) {
case 4:
$allow[]='admin'
break;
case 3:
$allow[]='moderator';
break;
case 2:
$allow[]='operator';
break;
case 1:
$allow[]='usercp';
break;
}
}
PHP-Code:
$exists = file_exists($viewtpl);
if ($exists){
// vs
if (file_exists($viewtpl)){
Das würd ich in eine eigene funktion auslagern Wiederverwendbarkeit usw
PHP-Code:
//filtern von get array
foreach ($getarr as $varx => $val) {
$getarr[$varx] = preg_replace('/[^a-z0-9 \\/?=&]/Usi','',$val);
}
Wobei ich dir davon abrate dich auf Sessiondaten zu verlassen gerade wenns um
geschützte Bereiche geht und wir reden noch nich mal über deaktivierte cookies.
mfg
CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
24.11.2010, 12:45:50
|
Junior Member
|
|
Registriert seit: Sep 2009
Ort: Wetzlar/Kassel
Alter: 35
Beiträge: 201
|
|
AW: Meinung zu diesem controller :)
Zitat:
Das würd ich in eine eigene funktion auslagern Wiederverwendbarkeit usw
PHP-Code:
//filtern von get array foreach ($getarr as $varx => $val) { $getarr[$varx] = preg_replace('/[^a-z0-9 \\/?=&]/Usi','',$val); }
|
^^ naajaaa also es sieht bei der funktion so aus das ich alle get variablen über array_merge
zusammenfasse und eine weitere verwendung nicht umbedingt notwendig ist da über get nichts anderes übergeben werden soll auser der angezeigten seite und einigen id´s daher
brauche ich diesen filter auch nur dort.
Deine idee:
PHP-Code:
//prüfung der erlaubten seiten. $allow = array('home','gb','login','kontakt'); if(!empty($_SESSION['rang'])) { $allow = array('member','forum','pm','profile','chat','logout','galerie','uploads'); switch($_SESSION['rang']) { case 4: $allow[]='admin' break; case 3: $allow[]='moderator'; break; case 2: $allow[]='operator'; break; case 1: $allow[]='usercp'; break; } }
^^ wirklich gut durchdacht verkürzt das ganze schon um einiges! Thx.
Und zu dem hier (sry aber ich hab bisher nicht gewusst das man ? als operator nutzen kann werde es aber gleich mal googeln.. ! )
PHP-Code:
//zuweisung der view $view = empty($getarr['p'])?'home':$getarr['p'];
Kann ich nur sagen brauch ich erstmal mehr informationen zur genauen funktionsweise und werde dan sehen in wie weit ich das ganze verändere.
Öhm ja zu den sessions, natürlich kann ich mich nicht 100%tig drauf verlassen aber ich wüsste jetzt auch so auf anhieb nichts wie ich etwas "sichereres" auf die beine stellen söllte was nicht umständlicher wäre.
Eventuell hast du ja einen denkansatz für mich. (Überlegt hab ich ja schon was zb. sozusagen eigene sessions in form von dateien zu erstellen oder in form von datenbanken aber der umstand dan immer eine langwierige überprüfung der daten zu machen befor ich eine ausgabe machen kann ist in meinen gedanken schon ein graus und ich kann mir vorstellen das die performance besonders bei dateioperationen leiden könnte)
/EDIT/
Ahhh alternativer syntax zu if :D ? code der ausgeführt wird :
Thx wieder eine hilfreiche erkentniss :D
__________________
Wachsen kann man entweder:
Körperlich -> Man wird größer.
^ Ist so von der Evolution gewollt.
Charakter -> Man wird Geduldiger.
^ Man wächst mit der aufgabe
Kopf -> Man wird Klüger.
^ Wenn die aufgabe probleme macht & man trotzdem deine lösung findet.
|
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.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:44:29 Uhr.
|