• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bestimmte Seiten zuordnen

Status
Für weitere Antworten geschlossen.

Superotto

Neues Mitglied
Hallo,

ich möchte Usern bestimmte Seiten meiner Webpage zuordnen. Z.B. User1 nur Zugriff auf Seite eins und zwei, User 2 nur Zugriff auf Seite drei und vier usw.
Die User sind in einer MySQL-Tabelle, wobei ich nicht an dies Tabellen-Form gebunden bin.
Ich glaube eine mögliche Lösung könnte in die Richtung gehen, dass ich eine User-Tabelle habe und dazu noch eine Gruppen-Tabelle und dann noch eine dritte Tabelle für Zuweisungen zwischen den beiden Tabellen z.B. UserId zu GruppenId.
Wie kann ich das lösen?
 
mit PHP? öhh... wo ist dein Problem? Wie ist der Stand der bisherigen Umgebung? Du musst nur den User mit der site vergleichen und checken ob permission für die site vorhanden sind oder nicht.
 
Superotto ruft Körnerbrötchen, Superotto ruft Körnerbrötchen.......

alle anderen natürlich auch!

Was Du da so einfach beschrieben hast, könntest Du mir das, bitte, etwas ausführlicher erklären?

Hier noch einmal eine etwas bessere Problemdarstellung:
Es handelt sich bei mir um ca. 40 Personen (wie z.B. Mieter in einem Haus) die in vier Gruppen aufgeteilt werden sollen (Personen und Gruppen in MySQL-Tabelle). Jeder Gruppe soll eine Seite einer Webpage zugeordnet werden. Somit ist auch ein Passwort pro Gruppe ausreichend (Passwort-Generator nicht nötig).
Es soll einen 'Administartor' geben der ganz einfach auf einer 'Administrations-Webseite' die sich ändernden Personen 'hinzufügt, ändert, deaktiviert' und sie den Gruppen zuteilt.

Danke
 
Was genau ist Dein Problem?
Ein logisches?
Datenbank-Aufbau?
Keine PHP-Kenntnisse?
Keine Ahnung, wie man ein Login umsetzt?

Könntest Du bitte eine konkrete Frage stellen?
 
Mir fehlt von allem etwas (kurz gesagt Erfahrung).

Zu meiner Frage:
Ich benötige eine Login-Funktion für verschiedene Gruppen (in MySQL) für Zugriff auf bestimmte Seiten einer Webpage (Passwortgenerator nicht nötig) .
Wie kann ich diese Login-Funktion erstellen?

Mit .htaccess geht es nicht, soviel ich weiss, da mein Webhost nicht mod_auth_mysql anbietet.
 
Dann könntest Du das mit PHP und Sessions machen. PHP beibringen können wir Dir hier nicht, das musst Du selber lernen. Aber mit "Sessions" liefern wir Dir ein Stichwort, nach dem Du weitersuchen kannst. Vielleicht macht sich ja noch jemand die Mühe und zaubert was zusammen, ich meine aber, dass Du auch über die Forensuche fündig werden müsstest, da sowas immer wieder vorkommt.
 
Danke für Deine Antwort.

Könnte mir, bitte, einer erklären wie ich mit einem Login-Skript bzw. mit einer Session den Zugriff nur auf bestimmte Seiten erlaube. Welcher Code muss auf eine zu schützende Seite?
 
Du kannst in der Session z.B. die Gruppe des Benutzers eintragen beim Login (z.B. aus einer Datenbank holen). Auf der Seite prüfst du mit einer einfachen If- (oder bei vielen Gruppen Switch) Abfrage, welche gruppe der Nutzer hat und lässt per include() die gewünschten Inhalte anzeigen.
 
Frage zu Login/Session:
Das unten stehende Skript lässt mich nach dem Einloggen auf die Seite index.php zugreifen. Doch wie sieht es aus, wenn ich auf mehrere Seiten zugriff gewähren möchte?
Kann man das so ähnlich schreiben wie:
PHP:
[b] header("Location: index.php; Seite1.php; Seite2.php "); [/b]


PHP:
[b]<?php[/b]
[b]include("conf.php"); [/b]
[b]session_start(); [/b]
[b]if ($_SESSION['logged'] == 1) { [/b]
[b] header("Location: index.php"); [/b]
[b] exit(); [/b]
[b]} else {[/b]
[b] if (!isset($_POST['submit'])) { [/b]
[b]  echo "<form action=\"login.php\" method=\"POST\">";[/b]
[b]  .[/b]
[b]  .[/b]
[b]  .  [/b]
[b]echo "</form>";[/b]
[b] } else {[/b]
[b]  .[/b]
[b]  .[/b]
[b]  .[/b]
[b]    $_SESSION['logged'] = 1; [/b]
[b]   header("Location: index1.php"); [/b]
[b]   exit(); [/b]
[b]  } else { [/b]
[b]   exit("Incorrect username/password!"); [/b]
[b]  }[/b]
[b] }[/b]
[b]}[/b]
[b]mysql_close($db_connect); // Closes the connection.[/b]
[b]?>[/b]
[b][/b]
 
um wie viele seiten geht es denn. wenn es nur 2-3 sind, könnte man der user-id den seiten-namen zuweisen und auf der seite entsprechend prüfen.

geht es um eine vielzahl an seiten solltest du das anders (wesentlich komplexer) lösen.

z.b. könnte man jeder seite und jedem user einen status zuordnen (z.b. zahlen von 1 bis 5). hat der user den status 3 kann er alle seiten mit dem status kleiner=3 sehen, alle anderen nicht.

mir fallen da zig lösungs ansätze ein, die aber mehr oder weniger admin aufwand erfordern.
 
Es geht insgesamt um 10 Seiten. Maximal darf ein User auf vier bestimmte Seiten zugreifen. Andere auf drei usw.
Da müsste es doch eine Einfache Lösung geben oder ein Login-Script für bestimmte Seiten?
 
Dir wurden doch schon einfache Lösungen genannt. Eine weitere:
Mach eine Tabelle in deiner Datenbank.
user |seite1|seite2|seite3....
dort trägst du den User ein und bei den seiten 0 oder 1, je nachdem ob er Zugriff hat, oder nicht..
Jetzt kannst du prüfen, ob der user zugriff auf die seite hat mit einer If-Abfrage. entweder, du machst auf die erste Seite ein Login und speicherst den User in einer Session oder man muss sich auf jeder seite neu einloggen.
 
Das war doch schon fast Code?
Ok, nochmal. Du legst eine Tabelle an
user |seite1|seite2|...
-------------------------
superotto |0 |1
lenchen |1 |0

Jetzt machst du einen login (mach dich mal im Netz schlau)
Und setzt nach erfolgreichem Login die Variable $_SESSION[user].
Jetzt kannst du aus jeder Seite diese Variable aufrufen, wenn du am anfang der seite session_start() setzt.
Jetzt kannst du eine Datenbankabfrage machen.
Z.B auf seite1
PHP:
$abfrage = "SELECT seite1 FROM user WHERE name LIKE '$_SESSION[user]'"; 
             $ergebnis = mysql_query($abfrage);
             while($row = mysql_fetch_object($ergebnis))
{
$zugriff=$row->seite1;
}
Jetzt machst du eine If-Abfrage
PHP:
If ($zugriff==0)
{
echo "Zugriff verweigert";
}
else
{
Hier kommt der Seiteninhalt, den der User sehen darf, wenn er zugriff hat
}
 
Ich habe die vorherige Antwort von 'Lenchen' (Danke!!) versucht umzusetzen aber ich komme leider nicht weiter, weil ich als Newbie noch viel zu wenig PHP-Kenntnisse habe.
Kann mir einer bitte, bitte noch sagen ich

PHP:
$abfrage = "SELECT seite1 FROM user WHERE name LIKE '$_SESSION[user]'"; 
             $ergebnis = mysql_query($abfrage);
             while($row = mysql_fetch_object($ergebnis))
{
$zugriff=$row->seite1;
}

und

PHP:
If ($zugriff==0)
{
echo "Zugriff verweigert";
}
else
{
Hier kommt der Seiteninhalt, den der User sehen darf, wenn er zugriff hat
}

in folgendes Skript integriere:


PHP:
<?php
include("conf.inc.php"); 
session_start(); 
if ($_SESSION['logged'] != 1) { 
 header("Location: login.php"); 
 exit(); 
}
echo "This is the Seite 1!";
echo "<br />";
echo "<a href=\"logout.php\">Logout?</a>"
?>

Please, please help me!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben