tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von xErY
  • 1 Beitrag von Christoph Haas
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
328
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Christoph Haas
    Christoph Haas Christoph Haas ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Faßberg
    Beiträge
    65
    Hallo,

    ich hab mal wieder ein Problem mit einem Script
    Es ist ein Loginscript welches mit einer MySQL Datenbank arbeitet.

    Ich poste erstmal die Codes und später die Erklärung/Fragen.
    Das Loginformular sieht folgendermaßen aus:
    index.php
    PHP-Code:
    <link href="../style.css" rel="stylesheet" type="text/css">
    <
    form name="form1" method="post" action="save.php">
      <
    table width="365" border="0" cellspacing="0" cellpadding="0">
        <
    tr>
          <
    th width="108" height="35" valign="middle" class="schrift" scope="col"><div align="right">Benutzername:</div></th>
          <
    th width="12" valign="middle" scope="col">&nbsp;</th>
          <
    th width="245" valign="middle" scope="col"><div align="left">
            <
    input name="benutzername" type="text" class="textfeld" id="benutzername" size="30">
          </
    div></th>
        </
    tr>
        <
    tr>
          <
    th height="35" valign="middle" class="schrift" scope="row"><div align="right">Passwort:</div></th>
          <
    td valign="middle">&nbsp;</td>
          <
    td valign="middle"><div align="left">
            <
    input name="passwort" type="password" class="textfeld" id="passwort" size="30">
          </
    div></td>
        </
    tr>
        <
    tr>
          <
    th height="0" scope="row">&nbsp;</th>
          <
    td>&nbsp;</td>
          <
    td valign="bottom"><input type="submit" name="Submit" value="Login"></td>
        </
    tr>
      </
    table>
    </
    form
    save.php
    PHP-Code:
    <style type="text/css">
    <!--
    body,td,th         { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;    }
    a:link             { text-decoration: none; color: #000000; font-weight: bold;    }
    a:visited         { text-decoration: none;    }
    a:hover         { text-decoration: underline;    }
    a:active         { text-decoration: none;    }
    a                 { font-size: 10px;    }
    -->
    </style>
    <?
    include("../conf/config.inc.php");

    $benutzername             $_POST['benutzername'];
    $passwort              $_POST['passwort'];

    mysql_connect($db_host$db_username$db_passwort);
    mysql_select_db($db_name);

        
    $abfrage "SELECT benutzername, passwort FROM admin WHERE benutzername = '$benutzername' AND passwort = '$passwort'";
           
    $ergebnis mysql_query($abfrage);
        if(
    mysql_num_rows($ergebnis))
                  {
            
    ?><a href="einstellungen.php">Einstellungen</a><?
                  
    }
               else
                  {
                  print 
    "Benutzername / Passwort falsch!";
                  }
    ?>
    und
    einstellungen.php
    PHP-Code:
    <?
    echo "hier sollen die Einstellungen rein";
    ?>
    So jetzt zu meiner Erklärung und zu meinen Fragen.
    Wenn ich Passwort und Benutzername richtig eingebe, erscheint der Link "Einstellungen" mit welchem ich auf die einstellungen.php gehen kann. Gebe ich die Daten falsch ein, erscheint der Text "Benutzername / Passwort falsch!";
    Soweit so gut, stimmt ja auch alles.

    Jetzt kommt aber mein Problem. Wenn ich einfach http://.../einstellungen.php in die Adresszeile meines Browsers eingebe komme ich direkt zu den Einstellungen und umgehe das Loginscript.

    Was muss ich machen, damit dann zB eine Fehlermeldung ausgegeben wird die zB "Geben Sie Benutzername und Passwort ein, um in die Einstellungen zu gelangen".

    Wie müsste der Code in allen 3 Dateien aussehen!?
    Ich Bitte um Hilfe - Danke

    PS: sollte noch was unklar sein, einfach sagen
     

  2. #2
    Avatar von xErY
    xErY xErY ist offline Mitglied Gold
    Registriert seit
    Jul 2005
    Beiträge
    161
    Hallo,

    beim Erfolgreichen Einloggen einfach eine Sessionvariable anlegen und diese dann auf der Einstellungsseite abfragen ob sie gesetzt ist, wenn nicht Fehler ausgeben
    spicelab bedankt sich. 

  3. #3
    Avatar von Christoph Haas
    Christoph Haas Christoph Haas ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Faßberg
    Beiträge
    65
    wie muss das denn dann gemau aussehen?
    Was das betrifft, bin ich ne Niete
     

  4. #4
    Registriert seit
    Jul 2007
    Ort
    Quakenbrück
    Beiträge
    756
    Hast du die Suchfunktion benutzt?
    Hast du mal bei den Tutorials nachgesehn?

    -> http://www.tutorials.de/forum/php-tu...und-mysql.html
     
    PHP-Code:
    ($hilfe=='hilfreich') ? bewerten(positiv) : ignore_post(); 
    Schnellste Hilfe -> www.gidf.de

    Wer aus meiner Gegend kommt, kann sich gern mal melden, kenn hier keenen ;)

  5. #5
    Linyx Linyx ist offline Mitglied Bronze
    Registriert seit
    Feb 2008
    Beiträge
    37
    index.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    <?php session_start ();
    if (isset ($_REQUEST["fehler"])) 
    { 
      echo "Die Zugangsdaten waren ungültig."; 
    } 
    ?> 
    <form action="save.php" method="post"> 
    <table border="0" cellpadding="5" cellspacing="0" bgcolor="#A5A5A5">  
    <tr>
          <td align="right">Name:</td>
    <td> <input type="text" name="name" size="20"></td> 
        </tr>
        <tr>
          <td align="right">Kennwort: 
    <td><input type="password" name="pwd" size="20"></td>
        </tr>
        <tr>
    <td align="right"></td>
          <td>
      <input type="submit" value="Login">
    <input type="reset" value=" Abbrechen"> 
    </td>
        </tr>
      </table>
    </form> 
    </body> 
    </html>

    save.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    
    <?php 
    session_start ();
     
    $connectionid  = mysql_connect ("localhost", "benutzer", "passwort"); 
    if (!mysql_select_db ("admin_db", $connectionid)) 
    { 
      die ("Konnte keine Verbindung zur Datenbank aufbauen"); 
    } 
     
    $sql = "SELECT ". 
        "Id, Nickname, Nachname, Vorname ". 
      "FROM ". 
        "benutzerdaten ". 
      "WHERE ". 
        "(Nickname like '".$_REQUEST["name"]."') AND ". 
        "(Kennwort = '".md5 ($_REQUEST["pwd"])."')"; 
    $result = mysql_query ($sql); 
     
    if (mysql_num_rows ($result) > 0) 
    { 
      $data = mysql_fetch_array ($result); 
     
      $_SESSION["user_id"] = $data["Id"]; 
      $_SESSION["user_nickname"] = $data["Nickname"]; 
      $_SESSION["user_nachname"] = $data["Nachname"]; 
      $_SESSION["user_vorname"] = $data["Vorname"]; 
     
      header ("Location: index.php"); 
    } 
    else 
    { 
      header ("Location: index.php?fehler=1"); 
    } 
    ?>

    einstellungen.php
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <?php 
    session_start (); 
    if (!isset ($_SESSION["user_id"])) 
    { 
      header ("Location: index.php"); 
    } 
    ?>

    Hoffe das es auch geht

    LG
    Linyx
     

  6. #6
    Avatar von Christoph Haas
    Christoph Haas Christoph Haas ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Faßberg
    Beiträge
    65
    Ich hab mein script jetzt mal mit einer "session" versehen. Das hat auch alles soweit geklappt.
    Allerdings kommt jetzt immer wenn ich mich mit den richtigen Daten einlogge eine Fehlermeldung.

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\Websites\admin\save.php:1) in D:\Websites\admin\save.php on line 25

    PHP-Code:
    <style type="text/css">
    <!--
    body,td,th         { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;    }
    a:link             { text-decoration: none; color: #000000; font-weight: bold;    }
    a:visited         { text-decoration: none;    }
    a:hover         { text-decoration: underline;    }
    a:active         { text-decoration: none;    }
    a                 { font-size: 10px;    }
    -->
    </style>
    <?
    include("../conf/config.inc.php");


    $benutzername         $_POST['benutzername'];
    $passwort              $_POST['passwort'];

    mysql_connect($db_host$db_username$db_passwort);
    mysql_select_db($db_name);

        
    $abfrage "SELECT benutzername, passwort FROM admin WHERE benutzername = '$benutzername' AND passwort = '$passwort'";
           
    $ergebnis mysql_query($abfrage);
        if(
    mysql_num_rows($ergebnis))
                  {
                
    session_start();
                
    $_SESSION["benutzername"]= "$benutzname";    
                
    ?><a href="einstellungen.php">Einstellungen</a><br><a href="logout.php">logout</a><?
                  
    }
               else
                  {
                  print 
    "Benutzername / Passwort falsch!";
                  }
    ?>
    Was hat das zu bedeuten!?


    Gruß
     

  7. #7
    Avatar von xErY
    xErY xErY ist offline Mitglied Gold
    Registriert seit
    Jul 2005
    Beiträge
    161
    Hallo,

    das erstellen einer Session muss immer vor jeglicher Ausgabe passieren, sprich vor Echos oder ähnlichem.
    Das heisst immer am besten ganz am anfang der Datei.
     

  8. #8
    Avatar von Christoph Haas
    Christoph Haas Christoph Haas ist offline Mitglied Silber
    Registriert seit
    May 2007
    Ort
    Faßberg
    Beiträge
    65
    Ah das war das Auschlaggebende!
    Jetzt funktioniert alles einwandfrei, danke dafür
    spicelab bedankt sich. 

  9. #9
    Avatar von xErY
    xErY xErY ist offline Mitglied Gold
    Registriert seit
    Jul 2005
    Beiträge
    161
    Morgen,

    wenn das Thema erledigt bist, bitte einmal den erledigt Knopf
    Mfg, xErY
     

Ähnliche Themen

  1. Hilfe suche Login script
    Von Icejumper im Forum PHP
    Antworten: 1
    Letzter Beitrag: 29.05.05, 17:02
  2. Antworten: 3
    Letzter Beitrag: 12.01.05, 21:14
  3. Antworten: 6
    Letzter Beitrag: 05.01.05, 20:41
  4. Brauche Hilfe wegen Login Script
    Von MasterPhil im Forum PHP
    Antworten: 2
    Letzter Beitrag: 01.10.04, 09:02
  5. Antworten: 5
    Letzter Beitrag: 31.07.02, 23:14