1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

php-Problem

  • nuessler
  • 4. April 2005 um 00:56
  • 1
  • 2
  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 00:56
    • #1

    Hallo!
    Ich weis nicht genau, wie ich jetzt mein Problem beschreiben soll...
    Ich habe eine php-Datei, die überprüft, ob das Passwort richtig ist usw.
    wenn ja:

    Code
    echo "Login war erfolgreich. <a href=\"ok.php\">weiter</a>";

    Dann habe ich eine php-Datei, die am Anfang überprüft, ob man eingeloggt ist. Das sieht so aus:

    PHP
    <?php 
    session_start();
    if(!isset($_SESSION['username'])) 
       { 
       echo "Bitte erst <a href=\"login.html\">einloggen</a>";
       exit; 
       } 
    ?>

    Das funktioniert wunderbar... Jetzt möchte ich aber, dass, wenn das Passwort ok ist, die ok.php-Datei automatisch kommt und ich nicht mehr auf "weiter" klicken muss. Ich habe es mit "header (Location: ........)" schon versucht. Dann geht es leider nicht mehr. Es kommt nur noch "Bitte erst einloggen"

    Ich weis, das war jetzt stuss:-)! Ich bin müüüde:-)! Wäre dankbar, wenn Ihr mir helfen könntet!

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 4. April 2005 um 07:55
    • #2

    Das geht per Javascript:

    Code
    <script type="text/javascript">
      window.location.href='ok.php';
    </script>

    Was du nun noch brauchst, ist eine Zeitverzögerung. Der Text "Login erfolgreich" erscheint, das JS wartet 5sec und ruft dann
    die ok.php auf. Das klappt sicher so.

    An alle die das lesen: Wir brauchen noch die JS-Zeitverzögerung. Thx.

    "Carpe Diem" powered by positiv Feelings

  • baloo
    Großmeister(in)
    Beiträge
    514
    • 4. April 2005 um 12:41
    • #3

    geht

    PHP
    <?php 
    session_start(); 
    if(!isset($_SESSION['username'])) 
       { 
       echo "Bitte erst <a href=\"login.html\">einloggen</a>"; 
       exit; 
       }
       else
       {
       header("Location: ok.html");
       }
    ?>
    Alles anzeigen

    nicht?

    musst aber darauf achten, dass du keine daten ausgibst, bevor du header() aufrufst. also am besten zuoberst in deinem script, vor html und body und all dem zeuch.

    thats-me.ch Communtiy

  • Rocco
    Kaiser(in)
    Beiträge
    2.557
    • 4. April 2005 um 13:25
    • #4

    im endeffekt ist das das selbe was torty geschrieben hat, nur umständlicher.... torty hat das problem doch schon gelöst, er möchte nur noch eine zeitverzögerung, die dein header-zeugs auch nicht hat...

    mfg

    [Blockierte Grafik: http://rocco.forum-hilfe.de/image/userbar.png]

  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 13:56
    • #5

    Wie muss ich das JavaScript einbauen? Mit echo'<java.....>' oder wie? Ich brauche übrigens keine Weiterleitung mehr. Danke für die schnelle Hilfe!

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • baloo
    Großmeister(in)
    Beiträge
    514
    • 4. April 2005 um 14:31
    • #6

    das problem ist nur, dass jeder besucher javascript abschalten kann, php jedoch nicht.
    deshalb greife ich gerne auf php zurück, auch wenns für ein paar leute umständlicher ist.

    thats-me.ch Communtiy

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 4. April 2005 um 16:42
    • #7

    Das stimmt schon. Wobei ich mich frage, warum man JS standardmäßig abschalten sollte. Naja, Einstellungssache...

    Alternativ könnte man auch einen Button erzeugen, der geklickt werden kann. Sollte dies nicht erfolgen so wird nach z.B. 5sec die
    nächste Seite automatisch geladen. Bei deaktiviertem JS bleibt dann halt der Button "weiter" stehen und der User muss ihn manuell betätigen.

    Damit deckt man sicher beides ab.

    "Carpe Diem" powered by positiv Feelings

  • Rocco
    Kaiser(in)
    Beiträge
    2.557
    • 4. April 2005 um 16:44
    • #8
    Zitat von baloo

    das problem ist nur, dass jeder besucher javascript abschalten kann, php jedoch nicht.
    deshalb greife ich gerne auf php zurück, auch wenns für ein paar leute umständlicher ist.

    ...dafür gibts ja dann den originalen link...

    Zitat

    Wie muss ich das JavaScript einbauen? Mit echo'<java.....>' oder wie?

    Ja!

    [Blockierte Grafik: http://rocco.forum-hilfe.de/image/userbar.png]

  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 17:28
    • #9

    Das funktioniert irgendwie nicht. Ich weis nicht, ob es am JavaScript oder an der art, wie ich es eingebunden habe liegt.
    Ich habs jetzt so gemacht:

    Code
    echo '<script type="text/javascript">window.location.href='ok.php';</script>';


    Geht nicht.

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 4. April 2005 um 19:35
    • #10

    Naja, das mit den verschachtelten ' und " Zeichen ist immer so ne Sache...
    Versuch es besser mal so

    Code
    echo "Sie sind eingeloggt.";
    ?> 
      <script type="text/javascript">
        window.location.href='ok.php';
      </script>
    <?
    ...

    "Carpe Diem" powered by positiv Feelings

  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 20:52
    • #11

    Funktioniert nicht...

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 4. April 2005 um 21:26
    • #12

    Hmmm...jetzt müsste ich mal den ganzen PHP-Code sehen, sonst stochern wir nur im Trüben...

    "Carpe Diem" powered by positiv Feelings

  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 21:33
    • #13

    php-Code der Datei, die das Passwort und Username überprüft:

    PHP
    <?php session_start();
    $username = $_POST["username"];
    $passwort = $_POST["password"];
    $passwort = md5($passwort);
    $log=0;
    
    
    $userdatei = fopen ("user.txt","r");
    while (!feof($userdatei))
       {
       $zeile = fgets($userdatei,500);
       $userdata = explode("|", $zeile);
    
    
       if ($userdata[0]==$username and $passwort==trim($userdata[1]))
          {
          $_SESSION['username'] = $username;
            echo "Alles in Butter! <a href=\"ok.php\">weiter...</a>";
    		$log = 1;
          }
       }
    fclose($userdatei);
    
    
    if ($log==0)
       {
       	header("Location: login2.html");
       }
    ?>
    Alles anzeigen

    php-Code der 'geheimen Seite':

    PHP
    <?php 
    session_start();
    if(!isset($_SESSION['username'])) 
       { 
       echo "Bitte erst <a href=\"login.html\">einloggen</a>";
       exit; 
       } 
    ?>


    Ich kann mir das nicht erklären...

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • Rocco
    Kaiser(in)
    Beiträge
    2.557
    • 4. April 2005 um 21:40
    • #14

    ich nehm das mal aus diesem beitrag:

    Zitat von nuessler

    Das funktioniert irgendwie nicht. Ich weis nicht, ob es am JavaScript oder an der art, wie ich es eingebunden habe liegt.
    Ich habs jetzt so gemacht:

    Code
    echo '<script type="text/javascript">window.location.href='ok.php';</script>';


    Geht nicht.

    das änderst du in das:

    Code
    echo '<script type="text/javascript">window.location.href=\'ok.php\';</script>';

    mfg

    [Blockierte Grafik: http://rocco.forum-hilfe.de/image/userbar.png]

  • ALex_
    Gast
    • 4. April 2005 um 21:51
    • #15

    Ich würde meine, dass er doch auch den usernamen an das 'geheime' Skript übergeben muss oder zumindest die Session-ID.
    Also so in der Art:

    Code
    echo "Alles in Butter! <a href=\"ok.php?usr=$username\">weiter...</a>";

    mfg. Alex

  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 21:53
    • #16

    Ne mit dem "weiter" geht es. Nur mit einer automatischen Weiterleitung nicht.

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • Rocco
    Kaiser(in)
    Beiträge
    2.557
    • 4. April 2005 um 22:58
    • #17

    immer wieder komisch wie die leute es schaffen aus einem ganz simplen problem, einen so riesigen beitrag zu machen. machs so, und so gehts 100%ig!!!

    Code
    echo '<script language="JavaScript">location.href="ok.php";</script>';

    [Blockierte Grafik: http://rocco.forum-hilfe.de/image/userbar.png]

  • nuessler
    Samurai
    Beiträge
    208
    • 4. April 2005 um 23:52
    • #18

    So simpel ist es offenbar nicht, denn deine Variante funktioniert auch nicht. Wurde auch schon ein paar mal vorgeschlagen. Es kommt wieder die Meldung "Bitte erst einloggen"...

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 5. April 2005 um 00:25
    • #19

    Ok, dann fang ich mal an:
    Wozu verwendest du denn $_POST['username']? Kommen diese Daten von einem Formular, dann sind sie direkt über name
    des Formularfeldes ansprechbar. Also in deinem Fall als $username.

    Die automatische Weiterleitung habe ich gleich mal eingebaut. Zudem wird ein Hinweis ausgegeben, falls JS deaktiviert sein sollte.

    So, dann ergibt sich als neue Datei folgende:

    PHP
    <?php session_start();
    $password = md5($password);
    $log=0;
    
    
    $userdatei = fopen ("user.txt","r");
    while (!feof($userdatei))
       {
       $zeile = fgets($userdatei,500);
       $userdata = explode("|", $zeile);
       var_dump($userdata); 
       if ($userdata[0]==$username && $password==trim($userdata[1]))
          {
          $_SESSION['username'] = $username;
          ?>
            Alles in Butter! 
            <a href=\"ok.php\">weiter...</a>
            <script type="text/javascript">
              window.location.href='ok.php';
            </script>
            <noscript>
              Sie haben Javascript deaktiviert. Bitte klicken Sie auf den Button.
            </noscript>
          <?
          $log = 1;
          }
       }
    fclose($userdatei);
    
    
    if ($log==0)
       {
          header("Location: login2.html");
       }
    ?>
    Alles anzeigen

    So, ich denke das sollte hinhauen.

    "Carpe Diem" powered by positiv Feelings

  • nuessler
    Samurai
    Beiträge
    208
    • 5. April 2005 um 00:31
    • #20

    Danke für die vielen Antworten und Hilfen! Teste es noch...

    MfG, ran
    - http://www.clone-site.com
    - http://www.ran-online.ch.vu
    ___________________________

    Wenn Du denkst Du denkst, denkst Du nur Du denkst, denn das Denken von Gedanken ist gedankenloses Denken!?!

    • 1
    • 2

Tags

  • besucher
  • html
  • link
  • tex
  • body
  • text
  • star
  • problem
  • href
  • location
  • code
  • php
  • daten
  • javascript
  • session
  • script
  • header
  • skript
  • login
  • isset
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern