Seite 2 von 4

Verfasst: 30.09.2008 21:05
von Metzle
Du hast zuviel Code gepostet, was das Thema unnötig in die Länge zieht und unübersichtlich macht.
Es wäre besser die Datei bzw. den Code als .txt Datei abzuspeichern und dann hier einen Link zu posten - siehe auch KB:datei .

Bitte lies Dir den phpBB.de-Knigge durch und beachte diese zukünftig.

Verfasst: 30.09.2008 22:47
von 59thRaider

Verfasst: 01.10.2008 13:49
von Valerion
ähm....und welche Datei ist das jetzt?
Am besten ist, wenn du
/srv/www/httpd/phost/l/net/live-samp/web/stories/intern/login.php
und
/includes/session.php
verlinkst.

Verfasst: 01.10.2008 14:35
von 59thRaider
Sorry, dächte das wäre ersichtlich.

Das oben verlinkte Thema ist die area.php, also die Seite welche die externe Authorisation prüft.
Zu ihr gehört auch noch eine index.html, wo lediglich das Loginformular zu sehen ist. In der area.php ist einerseits die angezeigte Seite, wenn man erfolgreich eingeloggt wurde, und anderseits die Seite, wenn der Login fehlgeschlagen ist, sprich nochmal das Loginfeld.


Die session.php ist bei mir unverändert. Also Standard von phpBB 3.0.2


Die session.php befindet sich bei

/srv/www/httpd/phost/l/net/live-samp/web/forum/includes/session.php

Verfasst: 02.10.2008 14:30
von Valerion
Gut, könntest du die login.php auch noch posten? Und am Besten session.php noch dazu-Ich hab momentan kein phpBB 3.0.2 am Computer :)
Aber ich glaube, dass der Fehler in der login.php liegt. Oder ist area.php gleich login.php?

Verfasst: 02.10.2008 15:55
von 59thRaider
Valerion hat geschrieben:Oder ist area.php gleich login.php?
korrekt.

die Session.php

http://orfk.pytalhost.com/orfk/session.txt

Verfasst: 05.10.2008 11:04
von Valerion
Jetzt versteh ich das Problem....
Lösch mal den ganzen Teil vor

Code: Alles auswählen

<?php
Wenn du ihn brauchst(kA wofür er gut ist) dann gib ihn entweder bei

Code: Alles auswählen

if ($user->data['is_registered'])
    {
        // Hier steht der Code für ein erfolgreich eingeloggter User
?>
[[[[[[code]]]]]]
    }
Oder halt beim nicht eingeloggt sein.
Testweise kannst du den gesamten Code über <?php einmal löschen....dann müsste es gehen.

Verfasst: 05.10.2008 19:03
von 59thRaider
OK funktioniert jetzt Problemlos

Kannst du mir noch helfen die Gruppenabfrage ( http://www.phpbb.de/viewtopic.php?t=164060 ) einzubauen?

Verfasst: 06.10.2008 15:27
von Valerion
Freut mich, dass ich dir helfen konnte :)
Vorerst: Ich habe nich besonders viel Ahnung mit dem (Login-/Session-)System von phpBB, dass heißt, dass das was ich jetzt schreibe vollkommener Schwachsinn ist :)
So, ich schreibs dir in Schritten hin, ich hoffe, dass es verständlich ist :)
Ich selbst habe das ganze in phpbb2 gemacht, ich hoffe jedoch, dass es ähnlich ist :)
  • 1.) Öffne phpmyadmin
    2.) Öffne die Tabelle phpbb_groups
    3.) Gehe auf "sql"
    4.) Gib dort folgenden SQL-Befehl ein:

    Code: Alles auswählen

    SELECT group_id FROM `phpbb_groups`
    WHERE group_name = 'GRUPPENNAME'
    5.) Nun müsste dort irgendwo group_id X stehen.
    6.) Du merkst dir diese ID :)
    7.) Öffne login.php
    8.) Dort gibst du dann bei

    Code: Alles auswählen

     if ($user->data['is_registered'])
        {
            // Hier steht der Code für ein erfolgreich eingeloggter User
            echo '
    		
    		INHALT
    		
    		>';
        }
    
    Unter INHALT zusätzlich ein:

    Code: Alles auswählen

    include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
    //SCRIPT VON http://www.phpbb.de/viewtopic.php?t=164060 (Kannst du rauslöschen^^)
    // zu überprüfende Gruppen ID ( Gib hier die ID ein, die du dir vorher gemerkt hast. )
    $gruppen_id = 5;
    
    // zu überprüfender User
    $benutzer_id = $user->data['user_id'];
    
    // Nun erfolgt die eigentliche Prüfung:
    $is_in_group = group_memberships($gruppen_id, $benutzer_id , true);
    So, nun hast du inn der Variable $is_in_group (glaube ich^^) den wert true oder false.
    Nun kannst du z.b. hinschreiben:

    Code: Alles auswählen

    if($is_in_group)
    {
    echo "Ganze geheime Daten die nur die Leute aus der Gruppe sehen können";
    }
    else
    {
    echo "Du bist nicht in der bestimmten Gruppe und kannst somit auch nicht die geheimen Daten sehen";
    }
    9.) Alles speichern und schließen:)
    So, jetzt müsste es -theoretisch- gehen.

Verfasst: 06.10.2008 20:25
von 59thRaider
muss dein dritter code tag in den ""echo ' INHALT ';} else"" rein oder nach den ' ?

Weil wenn es direkt nach dem Inhalt, aber vor dem (>)' kommt ist es in dem Bereich, was die Ausgabe ja bei normalem, erfolgreichen Login war ohne Gruppenabfrage.