Zugriff und Authoriesierungs Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zugriff und Authoriesierungs Problem

    Hallo,

    ich suche eine Lösung für folgendes Problem:

    Ein Shop liegt im / des Verzeichnises www vom Webserver. Habe einen Link den nur eingeloggte Shop-Benutzer sehen.

    Über diesen Link öffnet sich ein neues Fenster. Dort erscheint eine Index- Seite wo der Benutzer sich in ein auf PHPatm bassierendes upload-script registriern und einloggen kann.

    Das mit dem erneuten registrieren und einloggen soll auch so sein. Alles funktioniert.

    Der Benutzer kann nach Registrierung in seinem eigenen Bereich Dateien uploaden, Verzeichnisse anlegen,
    wenn er eingeloggt ist.

    Das upload-script benutzt zur User-verwaltung keine Datenbank!! Und liegt im /eigenen verzeichnis.

    Mein eigentliches Problem ist, dass wenn ich den Pfad zum upload-script in die Adresszeile des Browsers eingebe erscheint die Index-Seite des upload-scripts auch wenn ich nicht im Shop angemeldet bin.

    Das möchte ich verhindern. In diesem Fall soll die Startseite des Shops erscheinen.

    Nur wenn man im Shop eingeloggt ist, und den Link sieht, das neue Fenster öffnet soll die Login-Seite des upload-scripts erscheinen.


    Wie löse ich dieses Problem?

    Was muss ich wo wie ändern damit es so Funktioniert wie beschrieben?

    Gibt es eine einfache Möglichkeit das ohne großen Programmieraufwand zu lösen?

    Wenn möglich bitte mit ausführlicher Erklärung für PHP-Newbie.

    Danke für eure Hilfe.
    Verständnis heißt:

    Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

  • #2
    leg beim einloggen eine session an, in der du den status abspeicherst. den kannst du auf den entsprechenden seiten dann abfragen.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter

      Herzlichen Dank für den Tipp mit den Sessions.

      Der Shop stetzt ja schon Sessions ein.

      So habe ich auf der Seite mit dem Link im Shop einfach die SID so übergeben:

      PHP-Code:
      echo
      "<a href=\"http://meineDomäne/upload/login.php?' . SID . '\" target=\"_new\">hier geht es zum upload</a>"
      im /upload Verzeichnis habe ich eine .htaccess Datei mit folgenden Inhalt:

      Code:
      DirectoryIndex start.php
      die start.php im /uplod Verzeichnis:

      PHP-Code:
      <?php
       
      if (isset ($_POST[session_name()]))
         {
          
      header("Location: http://meineDomäne/shop/upload/index.php");
         }
        else
          {
            
      header("Location: http://meineDomäne/shop/index.php");
          }
      ?>
      Wenn ich jetzt die URL zum upload-script im Browser eingebe und nicht im Shop eingeloggt bin erscheint die Startseite vom Shop.

      Wenn ich im Shop eingeloggt bin und im Shop auf den Link zum upload-script anklicke öffnet sich im neuen Fenster die Startseite des upload-scripts.

      So sollte es auch sein.

      Nur gibt es noch einen Fehler:

      Wenn ich im Shop eingeloggt bin das Upload-script im neuen Fenster öffne und dann das neue Fenster wieder schließe. Aus dem Shop auslogge.

      Dann im Browser
      Code:
      http://meineDomäne/shop/upload/index.php?' . SID . '
      eingebe.

      Erscheint die Startseite des upload-scripts. Das soll aber nicht sein. Da ich ja nicht im Shop eingeloggt bin.

      Wie behebe ich diesen Fehler???

      Wenn möglich bitte mit ausführlicher erklärung für PHP-Newbie

      Danke
      Verständnis heißt:

      Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

      Kommentar


      • #4
        Erscheint die Startseite des upload-scripts. Das soll aber nicht sein. Da ich ja nicht im Shop eingeloggt bin.
        da wird das session-cookie wohl anderer meinung sein. was machst du denn beim ausloggen? die session zerstören?

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Session zerstören.

          Was meinst du den damit

          Wie und wo mache ich das am besten. ???

          Der Shop besitz eine logout.php, ist diese Datei der richtige ansatz ???

          Wie gesagt ich bin PHP-Newbie
          Verständnis heißt:

          Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

          Kommentar


          • #6
            PHP-Code:
            echo
            "<a href=\"http://meineDomäne/upload/login.php?' . SID . '\" target=\"_new\">hier geht es zum upload</a>"
            Du bist dir aber schon bewusst, dass du den String SID und nicht die Konstante SID verwendet hast?
            Ein Tipp: Strings sollten in ' und ' geschrieben werden, weil du dann bei HTML Attributen nicht escapen musst und gezwungen bist Variabeln und Strings korrekt zu verknüpfen
            Und ein strip_tags() sollte auch nicht fehlen.
            PHP-Code:
            echo
            '<a href="http://meineDomäne/upload/login.php?'.strip_tags(SID).'" target="_new">hier geht es zum upload</a>'
            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Ich hab in der logout.php vom Shop

              PHP-Code:
              session_destroy(); 
              eingetragen.

              Der Fehler bleibt bestehen:

              Dann im Browser

              Code:
              http://meineDomäne/shop/upload/index.php?' . SID . '
              eingebe.

              Erscheint die Startseite des upload-scripts. Das soll aber nicht sein. Da ich ja nicht im Shop eingeloggt bin..


              Was kann oder muss noch machen, damit der Fehler behoben ist ???

              Danke
              Verständnis heißt:

              Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

              Kommentar


              • #8
                das mit dem session-plätten ist so eine sache. da muss man zu radikalen methoden greifen:
                PHP-Code:
                $_SESSION = array();
                session_unset();
                session_destroy(); 
                sicher ist sicher

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  @tobi

                  vielen Dank für den Tipp. Hab ihn gleich umgesetzt.

                  @peter

                  hab die radikalen methoden verwendet.

                  Das Problem bleibt leider weiter bestehen
                  Verständnis heißt:

                  Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

                  Kommentar


                  • #10
                    Das Problem bleibt leider weiter bestehen
                    dann hast du einen fehler gemacht. zeig mal den relevanten code der logout.php und den validierungscode in der upload/index.php.

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Hallo Peter

                      der Bereich in der /shop/logout.php wo die Session beendet wird:

                      PHP-Code:
                      // Session End

                      $SESSION = array();
                      session_unset();
                      session_destroy(); 
                      der validierungs Bereich in der /upload/index.php:

                      PHP-Code:
                      if (isset ($_POST[session_name()]) && ($session_started == false))
                         {
                          
                      header("Location: http://meineDomäne/shop/index.php");
                         }
                         else
                          {
                            
                      // In diesem Bereich steht der eigentliche Inhalt der /upload/index.php
                          

                      Gruß Andreas
                      Verständnis heißt:

                      Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

                      Kommentar


                      • #12
                        dann wird deine bedingung falsch sein
                        PHP-Code:
                        if (isset ($_POST[session_name()]) && ($session_started == false)) 
                        warum nicht so was in der art?
                        PHP-Code:
                        if (!isset ($_SESSION['user')) 
                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          warum nicht so was in der art?


                          PHP-Code:
                          if (!isset ($_SESSION['user')) 
                          Wenn ich es in der Art mache, bekomme ich wenn im Shop eingeloggt bin und vom Link das upload-script im neuen Fenster
                          öffnen will wieder nur den Shop angezeigt und nicht das upload-script.

                          Der Link auf der Seite im Shop schaut so aus:



                          PHP-Code:
                          echo
                          '<a href="http://meineDomäne/upload/login.php?'.strip_tags(SID).'" target="_new">hier geht es zum upload</a>'
                          Gruß Andreas
                          Verständnis heißt:

                          Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

                          Kommentar


                          • #14
                            Wenn die Session einen Namen hat wie:

                            PHP-Code:
                            session_name('abc'); 
                            Muss ich dann auf der Seite im Shop mit dem Link zum upload Script den Namen der Session auch angeben
                            wenn ich einen Wert in eine Variable setzen will. So etwa:

                            PHP-Code:
                            session_name('abc');
                            session_start();
                            if (empty(
                            $_SESSION['meinevar'])) {
                              
                            $_SESSION['meinevar'] = 'meinwert';

                            Oder ist das Falsch? Wo mache ich einen Script- und/oder Denk-Fehler?

                            Wenn ich dann in der /upload/index.php Abfrage ob diese Variable existiert muss ich dann auch den Namen
                            der Session mit angeben. So etwa:

                            PHP-Code:
                            session_name('abc');
                            session_start();
                            if (!isset(
                            $_SESSION['meinevar']))
                               {
                                
                            header("Location: http://meineDomän/shop/index.php");
                               }
                              else
                                {
                                  
                            //Hier steht der eigentliche Inhalt der /upload/index.php
                                

                            Oder ist das Falsch ? Wo mache ich einen Script- und/oder Denk-Fehler?

                            Und wie übergebe ich dann die Variable "meinevar" von der Seite im Shop mit dem Link an
                            die /upload/index.php?

                            Vielen Dank für eure Hilfe

                            Gruß Andreas
                            Verständnis heißt:

                            Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

                            Kommentar


                            • #15
                              Phänomen

                              Ich hoffe das mir ein Foren User folgendes Phänomen erklären kann:

                              Szenario 1:

                              Code der Datei /upload/index.php
                              PHP-Code:
                              /**********************************************************
                              if (!isset($_SESSION['meinevar']))
                                {
                                  header("Location: http://meineDomäne/shop/index.php");
                                }
                                else
                                {
                              ************************************************************/
                                  
                              Hier steht der eigentliche Code der /upload/index.php
                                
                              //} 
                              Code der Datei /upload/view.php
                              PHP-Code:
                              echo "<br>";
                                   echo 
                              $_SESSION['fredel_status']['fredel_status_name'];
                                   echo 
                              "<br>";
                                   echo 
                              $_SESSION['fredel_status']['fredel_status_id'];
                                   echo 
                              "<br>";
                                   echo 
                              "<br>";
                              if (isset(
                              $_SESSION['meinevar']))
                                 {
                                  echo 
                              $_SESSION['meinevar'];
                                 }
                                else
                                  {
                                   echo 
                              "Variable meinevar nicht da";
                                  } 
                              Code der Datei /upload/test.php
                              PHP-Code:
                              if (isset($_SESSION['meinevar']))
                                 {
                                  
                              header("Location: http://meineDomäne/upload/index.php");
                                 }
                                else
                                  {
                                    
                              header("Location: http://meineDomäne/shop/index.php");
                                  } 
                              Code der Datei /Shop/link.php
                              PHP-Code:
                              if (empty($_SESSION['meinevar'])) {
                                
                              $_SESSION['meinevar'] = 'meinwert';
                              }

                              echo
                                
                              '<table width="100%" border="0" cellspacing="0" cellpadding="0">
                                  <tr>
                                    <td>Hallo von&nbsp;<a href="http://meineDomäne/upload/test.php" target="_new">hier</a>&nbsp;kommt man ins Datei upload Center</td>
                                  </tr>
                                </table>'

                              Ich öffne im Browser folgende Dateien:

                              Im Tab 1: /shop/index.php
                              Im Tab 2: /upload/test.php
                              Im Tab 3: /upload/view.php
                              Im Tab 4: /upload/index.php

                              Schritt 1: Ich habe mich im Shop nicht angemeldet und erhalte folgende anzeigen:

                              Im Tab 1: die Startseite des Shops
                              Im Tab 2: die Startseite des Shops
                              Im Tab 3:
                              Code:
                              Gast
                              1
                              Variable meinevar nicht da
                              Im Tab 4 die Startseite des Upload-Scripts

                              Schritt 2: Ich melde mich im Shop an und erhalte folgende Anzeige nach drücken von F5 in jedem Tab:

                              Im Tab 1: die Startseite des Shops
                              Im Tab 2: die Startseite des Shops
                              Im Tab 3:
                              Code:
                              Kunde
                              2
                              Variable meinevar nicht da
                              Im Tab 4 die Startseite des Upload-Scripts

                              Schritt 3: Ich öffne die Seite im Shop mit dem Link zum Upload Script und bekomme folgende Anzeige nach
                              drücken von F5 in jedem Tab:

                              Im Tab 1: die Startseite des Shops
                              Im Tab 2: die Startseite des Upload-Scripts
                              Im Tab 3:
                              Code:
                              Kunde
                              2
                              meinwert
                              Im Tab 4 die Startseite des Upload-Scripts

                              Schritt 4: Ich klicke auf den Link im Shop und in einem neuen Tab öffnet sich die Startseite des
                              Upload-Scripts ansonnsten zeigen die Tabs das gleiche wie in Schritt 3

                              -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

                              Szenario 2:

                              Code der Datei /upload/index.php
                              PHP-Code:

                              if (!isset($_SESSION['meinevar']))
                                {
                                  
                              header("Location: http://meineDomäne/shop/index.php");
                                }
                                else
                                {

                                  
                              //Hier steht der eigentliche Code der /upload/index.php
                                

                              Code der Datei /upload/view.php
                              PHP-Code:
                              echo "<br>";
                                   echo 
                              $_SESSION['fredel_status']['fredel_status_name'];
                                   echo 
                              "<br>";
                                   echo 
                              $_SESSION['fredel_status']['fredel_status_id'];
                                   echo 
                              "<br>";
                                   echo 
                              "<br>";
                              if (isset(
                              $_SESSION['meinevar']))
                                 {
                                  echo 
                              $_SESSION['meinevar'];
                                 }
                                else
                                  {
                                   echo 
                              "Variable meinevar nicht da";
                                  } 
                              Code der Datei /upload/test.php
                              PHP-Code:
                              if (isset($_SESSION['meinevar']))
                                 {
                                  
                              header("Location: http://meineDomäne/upload/index.php");
                                 }
                                else
                                  {
                                    
                              header("Location: http://meineDomäne/shop/index.php");
                                  } 
                              Code der Datei /Shop/link.php
                              PHP-Code:
                              if (empty($_SESSION['meinevar'])) {
                                
                              $_SESSION['meinevar'] = 'meinwert';
                              }

                              echo
                                
                              '<table width="100%" border="0" cellspacing="0" cellpadding="0">
                                  <tr>
                                    <td>Hallo von&nbsp;<a href="http://meineDomäne/upload/index.php" target="_new">hier</a>&nbsp;kommt man ins Datei upload Center</td>
                                  </tr>
                                </table>'

                              Ich öffne im Browser folgende Dateien:

                              Im Tab 1: /shop/index.php
                              Im Tab 2: /upload/test.php
                              Im Tab 3: /upload/view.php
                              Im Tab 4: /upload/index.php

                              Schritt 1: Ich habe mich im Shop nicht angemeldet und erhalte folgende anzeigen:

                              Im Tab 1: die Startseite des Shops
                              Im Tab 2: die Startseite des Shops
                              Im Tab 3:
                              Code:
                              Gast
                              1
                              Variable meinevar nicht da
                              Im Tab 4 die Startseite des Shops

                              Schritt 2: Ich melde mich im Shop an und erhalte folgende Anzeige nach drücken von F5 in jedem Tab:

                              Im Tab 1: die Startseite des Shops
                              Im Tab 2: die Startseite des Shops
                              Im Tab 3:
                              Code:
                              Kunde
                              2
                              Variable meinevar nicht da
                              Im Tab 4 die Startseite des Shops

                              Schritt 3: Ich öffne die Seite im Shop mit dem Link zum Upload Script und bekomme folgende Anzeige nach
                              drücken von F5 in jedem Tab:

                              Im Tab 1: die Startseite des Shops
                              Im Tab 2: die Startseite des Upload-Scripts
                              Im Tab 3:
                              Code:
                              Kunde
                              2
                              meinwert
                              Im Tab 4 die Startseite des Shops

                              Schritt 4: Ich klicke auf den Link im Shop und in einem neuen Tab öffnet sich die Startseite des
                              Shops ansonnsten zeigen die Tabs das gleiche wie in Schritt 3

                              Was läuft da falsch und wo mache ich einen Fehler??

                              Endschuldigt bitte das ich so viele Fragen habe bin halt noch PHP-Newbie

                              Danke für eure Antwort
                              Zuletzt geändert von AnNo1968; 05.03.2008, 19:55.
                              Verständnis heißt:

                              Die Situation, den Standpunkt und den Blickwinkel des anderen zu akzeptieren.

                              Kommentar

                              Lädt...
                              X