php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.05.2008, 21:33   #1 (permalink)
Neuer Benutzer
 
Registriert seit: 02.05.2008
Beiträge: 5
paper befindet sich auf einem aufstrebenden Ast
paper eine Nachricht über ICQ schicken
Standard Zugriff beschränken

Hallo ihr php-Götter,

kennt ihr den Knoten, den man manchmal im Kopf hat ? Meiner sieht so aus:

Ich möchte den Zugriff auf eine Reihe von Pages nur für registrierte Nutzer zulassen. Dafür nutze ich die Dreamweaver-Funktionen "Zugriff beschränken" und relevante, welche nicht registrierte Nutzer oder solche mit den falschen Rechten per header() umleitet.

Strrukturell betrachtet habe ich eine index.php, welche bei Klick auf einen Link im Menü per Funktion die gewünschte Datei includet (Link-Besispiel: index.php?LinkMe=welcome -> includet dann welcome.php in die index.php).

Für die beschränkten Seiten funktioniert das nicht, da ich den bekannten "header always sent"-Fehler bekomme. Andererseits kann ich die Datei ja auch nicht am Code-Beginn includen.

Ich hoffe, ich hab das nachvollziehbar dargestellt.
Habt ihr eine Lösung?

Dag
paper ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.05.2008, 11:58   #2 (permalink)
Benutzer
 
Registriert seit: 07.11.2007
Beiträge: 41
phpler befindet sich auf einem aufstrebenden Ast
Standard

also mal ohne Dreamweaver:

1. nachdem der Link, und somit die index.php mit Parametern, aufgerufen wird, "weiss" die index.php nach deiner GET-Abfrage, welche Seite zu includen gewünscht ist.

2. Falls noch nicht geschehen, sollten hier die für den Zugriff relevanten User-Daten aus der DB gelesen werden.

3. Prüfung: Zugriff erlaubt => includen ausführen; Zugriff nicht erlaubt => nicht includen und ggfs. entsprechende Ausgabe
phpler ist offline  
Alt 03.05.2008, 12:17   #3 (permalink)
Neuer Benutzer
 
Registriert seit: 02.05.2008
Beiträge: 5
paper befindet sich auf einem aufstrebenden Ast
paper eine Nachricht über ICQ schicken
Standard aber...

...genau, aber da fängt ja mein "Problem" an!

Für mich sieht es so aus: entweder ich erstelle eine Tabelle mit Seiten und Rechten (was ich vermeiden möchte), lese dann die $_GET-Anfrage aus, vergleiche und include oder eben nicht.

Oder aber: in den zu includenden Seiten ist ein entsprechender Marker (bei mir noch Dreamweaver). Dann aber habe ich ja schon einen Teil der index.php geladen, nämlich bis zur if(du darfst)-else(du nicht)-Weiche. Das ergibt dann den header-Fehler.

Sorry, ich vermute, für die meisten hier ist das echt zu dumm, aber als echter Noob.... naja. Danke für Eure Geduld!

Dag
paper ist offline  
Alt 03.05.2008, 12:21   #4 (permalink)
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 2.350
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo!

Dieser header Fehler entsteht meistens wenn bevor der header ausgeführt wird schon zum Beipiel Html Code vor der header Anweisung steht. Auch leerzeichen im Code dürfen nicht davor stehen! Das einzige was davor stehen darf ist reine PHP Code! Das heist du müsstest alles mal vergleichen ob da Html Code davor steht!

mfg der Litter
__________________
Ich bin Masochist denn ich bin Dynamo Dresden Fan!
http://www.lit-web.de
litterauspirna ist offline  
Alt 03.05.2008, 12:30   #5 (permalink)
Neuer Benutzer
 
Registriert seit: 02.05.2008
Beiträge: 5
paper befindet sich auf einem aufstrebenden Ast
paper eine Nachricht über ICQ schicken
Standard Hi

naja, darum gehts´s ja: ich WEISS, dass da HTML-Code steht, kanns aber nicht ändern, weil:

Includet wird in einen DIV-Bereich mitten in der index-Seite. Die header-Anweisung steht momentan allerdings in der einzubindenden Seite, welche ja die Zugriffsbeschränkung hat.
paper ist offline  
Alt 03.05.2008, 12:36   #6 (permalink)
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 2.350
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Zeige am besten mal von den beiden Seiten wo du grad von redest den Code. Ich denke da kann man dir besser helfen. Denn ohne Code Kenntnisse wird das ein Rätzel raten und führt am Ende tortzdem zu keinem Ergebnis!

Meist ist so was nur das Problem von falscher Strukturierung!

Ich bin aber net mehr lange am Rechner,weil gehe glei zum Fußball um hoffentlich die gloreiche SGD siegen zu sehen!
mfg der Litter
__________________
Ich bin Masochist denn ich bin Dynamo Dresden Fan!
http://www.lit-web.de
litterauspirna ist offline  
Alt 03.05.2008, 12:51   #7 (permalink)
Neuer Benutzer
 
Registriert seit: 02.05.2008
Beiträge: 5
paper befindet sich auf einem aufstrebenden Ast
paper eine Nachricht über ICQ schicken
Standard hi

ja, ich denke auch, es liegt an der Struktur... vielleicht können wir ja mal per icq o.ä. kommunizieren?

hier der Code

includiert wird :
********************************
PHP-Code:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "2,1";
$MM_donotCheckaccess "false";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers$strGroups$UserName$UserGroup) { 
  
// For security, start by assuming the visitor is NOT authorized. 
  
$isValid False

  
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  
if (!empty($UserName)) { 
    
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
    
// Or, you may restrict access to only certain users based on their username. 
    
if (in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && false) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}

$MM_restrictGoTo 'index.php?LinkMe=denied';
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
#$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
    
header("Location: $logoutGoTo");
  exit;
}
?>

includieren soll die index.php per Funktion in einen div-Container: 
********************************
<?php 
    
// Funktion LinkIt aufrufen oder Startseite anzeigen
    
if (isset($_GET["LinkMe"]))
    {
    
LinkIt($_GET["LinkMe"]); //gibt include(relativer Pfad) wieder
    
}
    else 
    {
    include 
"start.php";
    }
?>

Geändert von drieling (03.05.2008 um 16:09 Uhr). Grund: PHP Tags hinzugefügt, bitte beim nächsten mal dran denken ;)
paper ist offline  
Alt 03.05.2008, 18:52   #8 (permalink)
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 2.350
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Kein error_reporting(E_ALL);?

Weil in dieser Zeile ist schon was komisch finde ich!

PHP-Code:
<?php
//Hier sind Klammern die du glaube ich gar nicht brauchst
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup']))))
 
//mal geändert das müsste an Klammern reichen
if (!isset($_SESSION['MM_Username']) && isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup']))
 
//auch hier sinnlose klammern
if (($strUsers == "") && false)
 
//geändert
if ($strUsers == "" && false)
?>
Aber das hat mit dem Fehler denke ich nichts zu tun. Hast den Code selber geschrieben?
__________________
Ich bin Masochist denn ich bin Dynamo Dresden Fan!
http://www.lit-web.de

Geändert von litterauspirna (03.05.2008 um 18:54 Uhr).
litterauspirna ist offline  
Alt 03.05.2008, 19:53   #9 (permalink)
Neuer Benutzer
 
Registriert seit: 02.05.2008
Beiträge: 5
paper befindet sich auf einem aufstrebenden Ast
paper eine Nachricht über ICQ schicken
Standard

.... nein, das ist ein Dreamweaver-Snippet, was üblicherweise auch gut funktioniert, nur eben nicht mit der include-Anweisung. Error_reporting ist an, hab ich nur nicht mitkopiert.
paper ist offline  
Alt 04.05.2008, 12:13   #10 (permalink)
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 2.350
PHP-Kenntnisse:
Anfänger
litterauspirna befindet sich auf einem aufstrebenden Ast
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo!

Aber diese Klammern sind vollkommen unnötig!

Ich empfehle dir umzusteigen auf PSPad. Habe ich auch getan und bereue es nicht!

Und wie gesagt vor dem header steht Html und da kann der header nicht funktionieren!
Aber bei dem Code dir zu helfen ist mir leider nicht möglich tut mir leid. Mir ist der Code zu wuselig!

Ich weis nicht ob das jetzt richtig ist! Aber tausche das mal!

PHP-Code:
<?php
//So steht es bei dir
$MM_restrictGoTo 'index.php?LinkMe=denied';
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
#$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
    
header("Location: $logoutGoTo");
  exit;
}
//Und mache mal so
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
#$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
    
header("Location: $logoutGoTo");
  exit;
}
$MM_restrictGoTo 'index.php?LinkMe=denied';
?>
mfg der Litter.
__________________
Ich bin Masochist denn ich bin Dynamo Dresden Fan!
http://www.lit-web.de

Geändert von litterauspirna (04.05.2008 um 12:17 Uhr).
litterauspirna ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

 


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
Zugriff mit session auf Ordner begrenzen Diego1978 PHP Tipps 2008 1 08.07.2008 06:38
Direkten Zugriff auf Datenbank verhindern heyho PHP Tipps 2008 7 07.02.2008 11:41
Zugriff auf eine ORACLE DB die Daten in eine MYSQL schreiben Cheesy PHP Tipps 2007 5 12.06.2007 15:36
Zugriff auf Objekte anderer Klassen nieselfriem PHP Tipps 2007 7 14.05.2007 12:48
Zugriff verweigert...? amenhotheb PHP Tipps 2006 4 11.07.2006 16:23
Ordner vor Zugriff schützen kanti Server, Hosting und Workstations 5 29.03.2006 13:02
Zugriff auf postgresql-db mit php PHP Tipps 2006 6 25.01.2006 09:29
gleichzeitiger Zugriff auf 2 Datenbanken dh1sbg PHP-Fortgeschrittene 3 27.12.2005 12:41
Objektorientierter Zugriff auf Multidimensionale Arrays PHP-Fortgeschrittene 31 26.11.2005 21:46
Verzeichnis (Dateien) schützen aber per PHP zugriff zulassen Server, Hosting und Workstations 2 16.10.2005 10:13
Wie Ordner und Inhalt vor unberechtigten Zugriff schützen Riot PHP Tipps 2005-2 30 06.10.2005 21:18
Zugriff auf Verzeichnisse verbieten HTML, Usability und Barrierefreiheit 2 27.03.2005 13:17
Zugriff auf phpmyadmin PHP Tipps 2005 1 28.02.2005 18:41
[Erledigt] Letzter zugriff von Datei anzeigen PHP Tipps 2005 13 17.01.2005 18:20
[Erledigt] Zugriff auf php Datei von anderen Domain sperren PHP Tipps 2004 1 29.08.2004 13:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
access datenbank zugriff beschränken, zugang zu phpmyadmin beschränken, zugang zu phpmyadmin einschränken, direkten zugriff auf seite beschränken php, php zugriff auf seite beschränken, php datei zugriff begrenzen, ordner zugriff beschränken, php zugriff einschränken, html zugang beschränken, php if session mm_username, dreamweaver zugriff auf seite beschränken variable, php include verzeichnis beschränken, php user zugriff einschränken, dreamweaver mm_username, dreamwever update mm_username, phpmyadmin zugriff einschränken, phpmyadmin beschränken, html zugriff beschränken, php zugriff auf klassen beschränken, dateizugriff beschränken nur server darf

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:02 Uhr.




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