Porblem mit dem Login

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

  • Porblem mit dem Login

    Also ich habe folgende Codes für die Website.

    PHP-Code:
    <?php
       
    /**
       *
       * @author      < Adalbert Rohr >
       * @version     1.0
       * @module      Menü
       * @copyright   all rights reserved © 2006 BeRo-We
       */

       // menu.inc.php
       
    error_reporting(E_ALL E_NOTICE);
    ?>
    <!-- main -->
    <table cellpadding="0" cellspacing="0" class="nav_top">
      <tr><th valign="top">main</th></tr>
    </table>
    <table border="0" cellpadding="0" cellspacing="0" width="131">
      <tr align="left"><td><a href="<?php echo $page_live_site?>?section=home" class="mainlevel" title="Home">Home</a></td></tr>
      <tr align="left"><td><a href="<?php echo $page_live_site?>?section=news" class="mainlevel" title="News">News</a></td></tr>
      <tr align="left"><td><a href="<?php echo $page_live_site?>?section=polls" class="mainlevel" title="Umfragen">Umfragen</a></td></tr>
      <tr align="left"><td><a href="<?php echo $page_live_site?>?section=guestbook" class="mainlevel" title="Gästebuch">Gästebuch</a></td></tr>
    </table>

    <?php
       
    require_once('inc/login_config.inc.php');
       if(isset(
    $_SESSION["login"])) {
          echo 
    $strAusgabe."<br>";
       } else {
          echo 
    $strAusgabe."<br>";
       }
    ?>
    Dieses Menü wird in einem 3-Spalten-Layout einfach über include() eingebunden.

    Weiter geht's

    PHP-Code:
    <?php
       
    /**
       *
       * @author      < Adalbert Rohr >
       * @version     1.0
       * @module      Menü
       * @copyright   all rights reserved © 2006 BeRo-We
       */

       // login_config.inc.php
       
    error_reporting(E_ALL E_NOTICE);
       
    session_start();

       
    // Fehlermeldung, wenn falsch eingeloggt
       
    echo isset($_SESSION['fail']) ? '<span style="color:red">Eingabefehler</span>':'';

       
    // Formular
       
    $strAusgabe '<!-- login -->
    <table cellpadding="0" cellspacing="0" class="nav_top">
      <tr><th valign="top">login</th></tr>
    </table>
    <form name="form1" method="post" action="login.php">
       Benutzer<br>
       <input name="kennung" size="15" type="text"><br>
       Passwort<br>
       <input name="passwort" size="15" type="password"><br>
       <input name="submit" type="submit" value="go">
    </form>'
    ;

       
    // Wenn Session erzeugt anzeigen 
       
    if(isset($_SESSION['rechte'])) {
          
    $strAusgabe '<!-- login -->
    <table cellpadding="0" cellspacing="0" class="nav_top">
      <tr><th valign="top">benutzermenü</th></tr>
    </table>
    <table border="0" cellpadding="0" cellspacing="0" width="131">
      <tr align="left"><td><a href="'
    $page_live_site .'?section=member&page=your-profile" class="mainlevel" title="Your Profile">your profile</a></td></tr>
      <tr align="left"><td><a href="'
    $page_live_site .'?section=member&page=edit-profile" class="mainlevel" title="Edit profile">edit profile</a></td></tr>
      <tr align="left"><td><a href="'
    $page_live_site .'?section=member&page=messages" class="mainlevel" title="Messages">messages</a></td></tr>
      <tr align="left"><td><a href="'
    $_SERVER['PHP_SELF'] .'?log=out" class="mainlevel" title="Logout">Logout</a></td></tr>
    </table>'
    ;
       }

       
    // ausloggen
       
    if(isset($_GET['log'])=="out"){
          
    session_destroy();
          
    header("Location: index.php");
       } 
    ?>
    Zu guter letzt noch die login.php
    PHP-Code:
    <?php 
       $server   
    "localhost"
       
    $user     "root"
       
    $pass     ""
       
    $database "website";

       
    $verbindung mysql_connect($server,$user,$pass
          or die (
    "Keine Verbindung möglich"); 
       
    mysql_select_db($database$verbindung
          or die (
    "SQL-Fehler = ".mysql_error());
        
       function 
    quote_smart($value) {
          
    // Ueberfluessige Maskierungen entfernen
          
    if (get_magic_quotes_gpc()) {
             
    $value stripslashes($value);
          }
          
    // In Anfuehrungszeichen setzen, sofern keine Zahl
          // oder ein numerischer String vorliegt
          
    if (!is_numeric($value)) {
             
    $value "'" mysql_real_escape_string($value) . "'";
          }
          return 
    $value;
       }

       if (!isset(
    $_SESSION)) {
          
    session_start();
       }

       
    $aufruffehler "index.php";

       if (isset(
    $_POST['kennung'])) {
          
    $referer $_SERVER['HTTP_REFERER'];
          
    /*$zeichen = '?';
          $pos = strpos($referer, $zeichen);
          if ($pos === false) {
             $vZeichen = "?"; 
          } else {
             $vZeichen = "&amp;";
          }*/
          
    $LoginUsername $_POST['kennung'];
          
    $LoginPasswort md5($_POST['passwort']);
          
    $LoginRS__query sprintf("SELECT id, kennung, passwort, rechte FROM login WHERE kennung=%s AND passwort=%s",
          
    quote_smart($LoginUsername), quote_smart($LoginPasswort)); 
          
    $LoginRS mysql_query($LoginRS__query) or die(mysql_error());
          
    // Auslesen der mysql_num_rows
          
    $loginFoundUser mysql_num_rows($LoginRS);
          if (
    $loginFoundUser) {
             
    $UserRechte mysql_result($LoginRS,0,'rechte');
             
    $UserId     mysql_result($LoginRS,0,'id');
             
    $Username   mysql_result($LoginRS,0,'kennung');
        
             
    //Fehlersession löschen
             
    if(isset($_SESSION['fail'])){
                unset(
    $_SESSION['fail']);
             }

             
    // Loginsession erzeugen
             
    $_SESSION['rechte']   = $UserRechte;
             
    $_SESSION['userid']   = $UserId;
             
    $_SESSION['username'] = $Username;
          } else {
             
    // Fehlersession, falls Fehler
             
    $_SESSION['fail'] = "Fehler";
          }
          
    header("Location: ".$referer);
       } else {
          
    header("Location: ".$aufruffehler);
       } 
    // end Kennung
    ?>

    Das ist das grobe layout meiner Website
    http://www.berti-rohr.de/website.gif
    In dem Bereich Login wird nun das Formular, bzw. das Menü angezeigt, welches ich oben erstellt habe (login_config.inc.php).

    Im Menü finden sich nun einige Punkte (Your Profile, Messages...) Diese Seiten sollen aber im Bereich Kontent angezeigt werden. Also muss ich die Seite im Kontent-Bereich irgendwie schützten! Ich hoffe jetzt habe ich es so erklärt, dass man es verstehen kann!
    Zuletzt geändert von wahsaga; 12.09.2006, 17:22.

  • #2
    Re: Porblem mit dem Login

    Code umbrechen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Am Anfang der Hauptdatei, noch vor dem HTML-Teil, sollte folgendes stehen:
      PHP-Code:
      error_reporting(E_ALL);   
      ini_set('display_errors'TRUE);
      session_start(); 
      Alle anderen error_reporting und session_start rauswerfen (wenigstens testweise)

      Um zu prüfen ob eine Session gestartet wurde verwendet man:
      PHP-Code:
      if ('' == session_id()) 
      {
       
      //  keine session gestartet

      und nicht isset($_SESSION) weil dieses kann ja auch
      durch eine GET-Injektion, bei register_globals=on,
      erzeugt worden sein
      Wir werden alle sterben

      Kommentar

      Lädt...
      X