Andere Frage

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

  • Andere Frage

    Wie kann ich ein einlog-script schreiben?

    ich hab jetzt mit cookies und sessions rumexperimentiert aber nix gescheites erreicht.

    mein code sieht so aus das:
    einmal die formulareinagen abgerufen werden und in die variablen $loginame und $password übergeben werden.

    dann wird abgefragt ob beides existiert und beides richtig eingeben wurde. $loginame wird dabei zum zugriff auf eine txt verwendet in der das userpassword gespeichert wird. so wird auch überprüft ob der username existiert denn keine txt mit dem usernamen = user gibs net.

    so weit so gut, sind beide variablen richtig angegeben werden die userdaten aus der datei ausgelesen. bzw. userdaten werden erst ausgelesen und dann in eine variable mit nem array gesteckt und dann wird das pw abgefragt da ich ja sonst nicht ans pw komme.

    und an der stelle komme ich nicht weiter. dann wird eine variable mit nem wert festgelegt die bestätigt das der login erfolgreich war. wird zum späteren anzeigen der seite benötigt.

    mein problem ist nun folgendes:
    man wird zwar eingeloggt, aber nur solange man auf der seite ist. geht man im menü bespielsweiße auf "News" kommt wieder das login formular.

    meine codes sehen folgendermaßen aus:
    Login.php:
    PHP-Code:
    <?php
    if ($action == login) { 
    if (
    $loginname) {
       if (
    $password) {
          if (
    file_exists("daten/$loginname.txt")) {
             
    $fp fopen("daten/$loginname.txt""r");
             
    $finhalt fgetcsv($fp5000"#");
             
    $f_name $finhalt[0];
             
    $f_aufgabe $finhalt[1];
             
    $f_icq $finhalt[2];
             
    $f_motto $finhalt[3];
             
    $f_homepage $finhalt[4];
             
    $f_email $finhalt[5];
             
    $f_password $finhalt[6];
             if (
    $password == $f_password) {
              
    $log_in "success";
    [
    COLOR=red]Hier weiß ich nicht weiterwie kann ich hier festlegen das man eingeloggt is was ich später mit einer if abfrage abfragen kann?[/COLOR]
            } else {
            
    $log_in "error";
            } 
         } else {
         
    $log_in "error";
         } 
      } else {
      
    $log_in "error";
      } 
    } else {
    $log_in "error";
    }
    echo 
    "<HTML>";
    echo 
    "<head>";
    echo 
    "<title>News</title>";
    echo 
    "<link rel=stylesheet type=text/css href=style.css>";
    echo 
    "</head>";
    echo 
    "<body bgcolor=#000000 alink=#BF0000 vlink=#BF0000 link=#BF0000 text=#FFFFFF>";
    echo 
    "<table border=0 cellpadding=5 cellspacing=0 bgcolor=#000000>";
    echo 
    "<tr><td align=center colspan=2 height=90>";
    include(
    "html/title.html");
    echo 
    "</td><td align=center height=90>";
    include(
    "html/user.html");
    echo 
    "</td></tr>";
    echo 
    "<tr><td align=center width=170 valign=top>";
    include(
    "html/menu.html");
    echo 
    "</td><td align=center>";
    include(
    "news.php");
    echo 
    "</td><td align=center width=170 valign=top>";
    if (
    $log_in ==  success) {
    include(
    "html/logged_in.html");
    } else {
    include(
    "html/2nd_menu.html");
    }
    echo 
    "</td></tr>";
    echo 
    "</table>";
    echo 
    "</body>";
    echo 
    "</html>";
    } else {
    if ([
    COLOR=red]Hier soll die Abfrage hin ob man eigeloggt is[/COLOR]) {
    include(
    "html/logged_in.html");
    } else {
    include(
    "html/2nd_menu.html");
    }
    }
    ?>
    index.php (datei für meine news seite die oben erwähnt wurde):
    PHP-Code:
    <HTML>
    <head>
    <title>News</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body bgcolor="#000000" alink="#BF0000" vlink="#BF0000" link="#BF0000" text="#FFFFFF">
    <table border="0" cellpadding="5" cellspacing="0" bgcolor="#000000">
    <tr><td align="center" colspan="2" height="90">
    <?php
    include("html/title.html");
    ?>
    </td><td align="center" height="90">
    <?php
    include("html/user.html");
    ?>
    </td></tr>
    <tr><td align="center" width="170" valign="top">
    <?php
    include("html/menu.html");
    ?>
    </td><td align="center">
    <?php
    include("news.php");
    ?>
    </td><td align="center" width="170" valign="top">
    <?php
    include("html/2nd_menu.html");
    ?>
    </td></tr>
    </table>
    </body>
    </html>
    So, ansich funzen die codes. Deshalb is es mir auch egal ob mans nun hätte einfacher scripten können oder ob das irgendwo fehler drinne sind

    Hoffe ihr habt das problem verstanden und könnt mir helfen.
    nebenbei: ich arbeite erst seit gestern mit php, also nehmt mir fehler oder sonstwas net krumm
    Zuletzt geändert von Caine; 18.07.2002, 23:10.

  • #2
    Schau dir das mal am:
    Datenbank gestütztes Loginscript
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      Hmm.... ich schau mir grad das script an zur anwendung einer mysql datenbank. ich hatte gehofft ich könnte es über meine txt file ohne so eine datenbank machen.

      des weiteren müsste ich mein script umschreiben.... nämlich das er den loginamen und das passwort mit der mysql datenbank vergleicht und nicht mit der .txt datei.

      in der useradd.php muss ich dann auch den ort wo das passwort geschrieben wird auf die mysql datenbank umlenken was mir schonmal misslungen is....

      Kommentar


      • #4
        Das kann man auch umschreiben auf eine Text-Datenbank.
        Aber wie das geht weiß ich nicht.

        Ich hatte mich für diese Lösung entschieden, weil ich viel mit der Datenbank arbeite.
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          Ich verwende überhaupt keine mysql datenbank....

          ich hatte gehofft es gäbe da ne lösung mit cookies und sessions.

          ich schau mal ob ich das mysql script auf meine txt-dateien umschreiben kann.

          dazu muss ich aber die user ip und expire in die dateien übernehmen....

          aber gibs net irgendwo noch son script mit cookies?
          denn das ließe sich sicher einfacher anpassen....
          Zuletzt geändert von Caine; 19.07.2002, 00:37.

          Kommentar


          • #6
            In der Theorie würde es mit cookies gehen....

            ich müsste nur an der stelle wo $log_in auf success gesetzt wird einen cookie senden.

            dann könnte ich später via if abfrage abfragen ob der cookie existiert, tut ers wird der memberbereich angezeigt, tut ers nich kommt das loginform.

            ich hab eben hier in eurem handbuch nach cookies geguckt und auch was gefunden.

            cookie setzen scheint geklappt zu haben da ich ihn über echo $HTTP_COOKIE_VARS["$cookie"]; auslesen konnte.

            es scheint eher ein problem zu geben bei der abfrage:
            if (isset($cookie)) {
            include("html/logged_in.html");
            } else {
            include("html/2nd_menu.html");
            }

            bloß wo is da der fehler?
            oder liegt es doch am cookie setzen was ich mit:
            setcookie($cookie, $loginname);
            gemacht habe.

            wo liegt mein fehler?
            Zuletzt geändert von Caine; 19.07.2002, 01:26.

            Kommentar


            • #7
              schon mal mit
              if (isset($HTTP_COOKIE_VARS["$cookie"]));
              probiert?
              eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

              Kommentar


              • #8
                öhm nö ahb cih net ich probeirs mal aus....

                Kommentar


                • #9
                  Nope, klappt net.

                  Zeigt wieder die login form an

                  ich hatte aber grad noch en andere idee....

                  ich könnte doch anstat nen cookie zu setzen die ip des suer abfragen und ein txt.file mit der ip als namen erstellen.

                  dann bei meiner abfrage später könnte ich dann wieder die ip des rechners abrufen der gerade die siete aufgerufen hat und dann mit file_exists abfragen ob eine txt datei mit der ip als namen existeirt, wenn ja memberbereich ausgeben wenn nein loginform ausgeben.

                  beim logout wird dann die txt einfach gelöscht, fertig.

                  kann das funktionieren?
                  denn wenn nicht spar ich mir jetzt die arbeit den ganzen kram zu schreiben....

                  Kommentar


                  • #10
                    ...würde ich nicht unbedingt machen, der arme server!
                    ausserdem wird das filesystem dann ziemlich sicher gecached, dann mußt du dat auch immer wieder flushen... wird dann alles ziemlich langsam.

                    mach dat ganze doch mit htaccess...
                    eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                    Kommentar


                    • #11
                      Naja der arme server würde ich nicht unbedingt sagen denn:
                      Das ganze soll für ne Clanpage sein und wir haben im mom 10 Members. So viel abeit hat der Server da nun auch wieder nicht.

                      Und wie würde das mit htaccess funzen? da hab ich nämlich keine ahnung von...

                      Kommentar


                      • #12
                        einfach ne datei names ".htaccess" ins verzeichnis,
                        da steht dann sowas wie:

                        DirectoryIndex index.php
                        AuthName "hallo!"
                        AuthType basic
                        AuthUserFile /pfad/dateiname
                        require valid-user

                        dann gehst du in dat verzeichnis, was du oben bei pfad angegeben hast,
                        und machst da "htpasswd -c dateiname username"
                        ...dann mußt du zweimal dein passwort eingeben, fertig.
                        wenn du dann noch mehr user anlegen willst, einfach mit
                        htpasswd dateiname username
                        ...ohne "-c"

                        das solltes gewesen sein.
                        eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                        Kommentar


                        • #13
                          das check ich irgendwie nicht.

                          kann ich meine idee mit den txt dateien nicht auf eine mysql datenbank umschreiben?

                          das wäre nämlich einfacher für mich.

                          bloß habe ich da zwei fragen:
                          wie kann ich den usernamen und die ip in eine tabelle schreiben und wie abfragen ob die momentane ip mit einer in der tabelle stehenden übereinstimmt?

                          Kommentar


                          • #14
                            Ich würde auf die ip verzichten. da diese bei dem Aufbau der Internetverbindung neu vergeben wird. Ich würde an deiner Stelle mit Username und Passwort arbeiten, so wie es in Datenbank gestützes Loginscript steht.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #15
                              Naja. Wenn ich ein expire dazu nehme damit vergangene einträge gelöscht werden löst sich das problem.

                              denn wenn sich der user einloggt geht er ja nich ausm internet und schaut sich die seite dann weiter an.

                              wenn er also ausm netz und wieder rein geht muss er sich neu einloggen. neuer mysql eitnrag wird erstellt. script überprüft expire, und löscht alle abgelaufenen einträge also nach ner zeit auch den mit der alten ip.

                              nur username und passwort zu schreiben bringt mir nichts.
                              denn wenn ich mich z.b. einlogge und dann mit nem andrem rechner auf die seite gehe woehr weiß das script das das nicht mein rechner ist? gar nciht. also muss ich mit ip arbeiten was wie oben beschreiben ja gehen müsste.

                              bloß fehlen mir halt die nötigen befehle zum schreiben in eine mysql datenbank und zum lesen aus der selbigen.

                              Kommentar

                              Lädt...
                              X