kostenloser Webspace werbefrei: lima-city


wo ist mein denkfehler?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. k***i

    ich schreib mal mein acp ok???
    deines ist n?mlich ein bisschen *r?usper* umst?ndlich:eek:

    ich hab eine login.php:

    <form action="intern_login.php" method="post" enctype="text">
    <table>
    <tr><td>Passwort</td><td><input name="pass" type="password" size="40" maxlength="60" /></td></tr>
    <tr><td /><td><input type="hidden" name="ja" value="ja" /><input type="submit" value="Einloggen" /></td></tr>
    </table>
    </form>

    dann eine intern_login.php:

    if($_POST['pass'] == "deinpasswort" and $_POST['ja'] == "ja")
    { fwrite(fopen("login.txt", "w"), "1", 1);
    ?>
    <form action="intern_acp.php" method="post" enctype="text"><input type="hidden" name="ja" value="ja" /><input type="submit" value="Login erfolgreich" /></form>
    <?php
    }
    else
    {
    echo 'Login fehlgeschlagen<br /><a href="seite_intern.php">Zur?ck</a>';
    }

    bei allen anderen acp seiten kommt dann das hier hinein:

    if($_POST['ja'] == "ja" and fread(fopen("login.txt", "r"), 2) == 1)
    {
    //Der Seiteninhalt
    }
    else
    {
    echo 'Login fehlgeschlagen<br /><a href="...">Zur?ck</a>';
    }

    und die Logout Datei siht so aus:

    fwrite(fopen("login.txt", "w"), "0", 1);
    echo "Logout erfolgreich";


    ACHTUNG: In jedem Formularelement was zum absenden benutzt wird musst du:

    <input type="hidden" name="ja" value="ja" />

    einf?gen!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    ok, nun hab ich es ein wenig verstanden.
    aber kannst du mir noch sagen wie ich aus:
    <? fwrite(fopen("login.txt", "w"), "0", 1);
    echo "Logout erfolgreich";?>


    ein link machen kann?
    oder wie das geht, wenn man den browser dicht macht, dass 0 dann wieder eintragen wird?!

    Kann man die "1" oder "0" nicht eigentlich auch in ne Cookie schreiben, weil wenn ich das richtig verstanden hab, werden t?glich meherer Leute auf die Page gehen und ich versteh nicht wie das dann sein soll?!
  4. k***i

    du kannst es speichern wo du willst!
    Wichtig ist bei der Methode nur dass man auf Ausloggen klickt! (Oder das Browserfenster schlie?t was aber nicht sooooo sicher ist)
  5. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    Danke, habs nun !!
    das war eine schwere geburt!
    aber nun gehts so wie ich das will, auch wenn man immer auf "logout" klicken muss, aber das werden wohl irgendwann schon drauf haben! ^^
    Danke noch mal!
  6. Warum macht Ihr das mit Textdateien?
    Das ist do total langsam und umst?ndlich.

    Schreibe den Kram in den Qookie/Session.
    Vorteil:
    Geht schnell, Cookies/Sessions haben Verfallsdsatum, d.h. man muss sich nicht zwingend ausloggen.
  7. k***i

    mit sessions hab ichs Probiert aber ich bin zu dumm dazu! ^^
    Cookies hmmm, mansche Browser lassen keine "Kekse" zu!
  8. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.



    ku-shi schrieb:
    Warum macht Ihr das mit Textdateien?
    Das ist do total langsam und umst?ndlich.

    Schreibe den Kram in den Qookie/Session.
    Vorteil:
    Geht schnell, Cookies/Sessions haben Verfallsdsatum, d.h. man muss sich nicht zwingend ausloggen.


    @ku-shi: sauber, mit deiner l?sung bist ne bisschen sp?t dran, aber wenn du willst kannst du das uns ja noch erkl?ren. w?re super nett!
  9. login.php:

    if(!isset($_POST['submit']))
    {
    ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
    <table>
    <tr>
    <td>Benutzer</td>
    <td><input name="user" type="text"></td>
    </tr>
    <tr>
    <td>Passwort</td>
    <td><input type="text" name="pass"></td>
    </tr>
    <tr colspan="2">
    <td><input type="submit" value="Einloggen"</td>
    </tr>
    </table>
    </form>
    
    <?php
    }
    else
    {
     if($_POST['user']==$username and $_POST['pass']==$passwort)
     {
      session_start();
      $_SESSION['login'] = 1;
     }
     else
     {
      unset($_POST['submit']);
      ?>
    
      <script type='text/javascript'>
      document.location.href = <?php echo $_SERVER['PHP_SELF'] ?>;
      </script>
    
      <?php
     }
    }


    Bei den zu sch?tzenden Seiten kommt folgendes hin:

    session_start();
    
    if(!isset($_SESSION['login']))
     echo 'Bitte einloggen';
    else
    {
     if(!$_SESSION['login'])
      echo 'Bitte einloggen';
     else
     {
      ?>
    
      Dein Seiteninhalt
    
      <?php
     }
    }


    So, das habe ich jetzt man so auf die Schnelle geschrieben. Teste das mal und bei Problemen verbessere ich es noch.

    Wenn Du das Script auf Lima-City benutzt, klappt es ohne Weitergabe der Session-ID, ansonsten kann es sein, dass Du die Session-ID immer an die Links anh?ngen musst, oder Du nutzt Cookies, dann ist das nicht n?tig.

    Beitrag ge?ndert am 30.04.2006 13:16 von ku-shi
  10. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    schon mal super, nur ich das passwort nicht kenne und ich keine ahnung hab, wieso es nicht auf die n?chste seite geht?!!?
    kannst du das noch irgendwie verbessern oder/und erkl?ren?!
    Danke!!
  11. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    !!SOS!!

    ich hab es imemr noch nicht so ganz gecheck, das mit den session.
    ich hoffe das liest noch mal einer, hier.

    bitte baut mir einer ein login mit session in folgenden code ein, danke!!!


    $id = $_GET["id"];
    switch ($id) {
    case 0:
    ?>
    <p>0</p>
    <?
    break;
    case 1:
    ?>
    <p>1</p>
    <?
    break;
    case 2:
    ?>
    <p>2</p>
    <?
    break;
    case 3:
    ?>
    <p>3</p>
    <?
    break;
    }
    ?>
  12. Du benutzt mein Login-Script nur als Kopf der Datei. Darunter kannst du alles schreiben ,was Du willst.

    Somit wird ganz oben auf der Seite das Formular angezeigt. Wenn Du willst, dass man nach anmeldung automatisch weitergeleitet wird, kannst Du das mit folgendem Java-Script-Befehl machen:

    <script type='text/javascript'>
    document.location.href = 'seite.php';
    </script>

    Dieses Script f?gst Du fann einfach unter

    $_SESSION['login'] = 1;

    ein. Zu deinem Case-Switch:
    Was willst Du denn damit machen? Erkl?r mir das mal bitte genau, ich hab das nicht ganz verstanden.
  13. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    Ich will den Case-Switch nutzen damit das so wenig php-dateien werden wie m?glich!
    Meine HP ist ?ber 150 Dateien gro? und manchmal frag ich mich einfach so das eine oder andere ist!?!

    Geht das oder gibt es andere M?glichkeiten?
  14. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    da man in diesen thema nicht "editen" kann, muss ich das so machen.

    @ku-shi: ich frag mich immer noch wo das passwort steht!? weil ohne das kann man sich nicht einlogen oder?
  15. Edit-Funktion funktioniert!

    Ich w?rde Dir gerade wegen der ?bersichtlichkeit raten, getrennte Dateien zu schreiben. Benutze doch einfach Ordnerstrukturen.

    @Passwort:
    Das steht in $passwort.
    Ich wei? nicht, wo Du es hernimmst, also entweder schreibst Du eines per Hand rein, oder Du l?dst es aus einer Dakenbank. Das wirst Du sicher hinbekommen, oder?

    @Case-Switch:
    Wenn es reicht, sich einmal eizuloggen, damit alle Seiten angezeigt werden k?nnen, kannst Du das einfach so machen:

    if(!isset($_SESSION['login']))
    {
    echo "Bitte einloggen.";
    }
    else
    {
    if(!$_SESSION['login'])
    {
    echo "Bitte einloggen.";
    }
    else
    {
    switch($id) {
    case 0:
    .
    .
    .
    }
    }
    }

    Wenn man f?r jede Seite ein getrenntes Login ben?tigt, d.h. manche User nur auf Seite 1, manche nur auf Seite 2 usw. d?rfen, dann muss das ein bisschen anders aufgebaut werden:

    Dazu schreibst Du zus?tzlich zum Login-Script noch

    <input type="hidden" name="site" value="
    <?php echo $seite ?>
    ">

    wobei Du in $seite schreibst, auf welche Seite der User Zugriff haben soll. (In Form von 'seite0' oder 'seite1' usw.)

    Dann schreibst Du anstatt

    $_SESSION['login'] = 1

    folgendes:

    $_SESSION[$_POST['seite']] = 1;

    So, danach schreibst Du deinen Case-Switch folgenderma?en um:

    switch ($id) {
    case 0:
    ?>

    if(!isset($_SESSION['seite0']))
    {
    echo "Bitte einloggen.";
    }
    else
    {
    if(!$_SESSION['seite0'])
    {
    echo "Bitte einloggen.";
    }
    else
    {
    <p>0</p>
    }
    }

    <?php
    break;

    und das machst f?r jeden Case so, nur dass du bei 1 dann 'seite1' anstatt 'seite0' in die Session-Variable schreibst. Bei Case 2 kommt dann 'seite2' rein usw.
    Beim logout brauchst Du trotzdem einfach nur 'session_destroy();' schreiben, falls Du ein Logout-Script schreiben willst.

    Ich empfehle Dir aber trotzdem, getrennte Dateien zu erstellen.
    MfG
  16. Autor dieses Themas

    trancedrome

    trancedrome hat kostenlosen Webspace.

    ich seh die edit-funktion nicht, weil die zu weiter rechts ist.

    es w?rde reichen, wennn man sich einmal einlogen w?rde um die anderen seitezu sehen.
    kannst du das bitte noch ein wenig n?hre eingehen?
  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!