seite neu laden

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

  • seite neu laden

    ja, ich habe gesucht . ich habe ein frage. erstmal meinen code:

    PHP-Code:
    <?php 
    include 'header.php'
    if (isset(
    $_POST['login'])) 

       
    $userid check_user($_POST['username'], $_POST['userpass']); 
       if (
    is_numeric($userid)) 
          
    login($userid); 
       else 
          echo 
    'Ihre Anmeldedaten waren nicht korrekt!'


    if (
    logged_in()) { 
       echo 
    'Hallo Patric! Wie geht es dir heute?';  

    } elseif (!isset(
    $userid)) 
       echo 
    'Willkommen! Du bist nicht eingeloggt.'
        
    include 
    'footer.php'
    ?>
    wie man sehen kann, wird wenn ich nicht eingeloggt auf die seite komme der text: "Willkommen! Du bist nicht eingeloggt." angezeigt. wenn ich mich dann mit den falschen datein einlogge kommt: "Ihre Anmeldedaten waren nicht korrekt!". Wenn ich mich dann richtig einlogge kommt dann aber auch: "Ihre Anmeldedaten waren nicht korrekt!". das dies nicht passiert, möchte ich das nach dem richtigen einloggen die index.php noch mal geladen wird. wie muss ich denn dazu den code verändern?

  • #2
    mit

    PHP-Code:
    header("Location: index.php"); 
    an der richtigen stelle= wenn man erfolgreich geloggt wurde
    SQL Injection kitteh is...

    Kommentar


    • #3
      danke, aber an welcher stelle muss ich das einfügen?

      Kommentar


      • #4
        klappt so eigentlich garnicht, denn was ist header und footer? ist das html code, vor einer header weiterleitung darf nichts ausgegeben werden und wenn du ne falsche meldung bekommst, trotz richtigen login, dann hast du es nicht durchgedacht.
        Setz dich hin, und mal dir ein struktogramm und denk alles durch, wie was funktioniert.
        Glaub mir, wenn du das im leben weiter machen willst, wirst du durch Try and Error methode kräftig aufs maul fallen
        SQL Injection kitteh is...

        Kommentar


        • #5
          hab alles durchdacht. hier mal alle includes:

          das ist die index.php auf der der fehler ist:

          PHP-Code:
          <?php 
          include 'header.php';
          if (isset(
          $_POST['login'])) 

             
          $userid check_user($_POST['username'], $_POST['userpass']); 
             if (
          is_numeric($userid)) 
                
          login($userid); 
             else 
                echo 
          'Ihre Anmeldedaten waren nicht korrekt!'


          if (
          logged_in()) { 
             echo 
          'Hallo Patric! Wie geht es dir heute?';  

          } elseif (!isset(
          $userid)) 
             echo 
          'Willkommen! Du bist nicht eingeloggt.'
              
          include 
          'footer.php'
          ?>
          das ist die header.php:

          PHP-Code:
          <?php 
          include 'includes/main.php';   
          ?>
          <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr> 
              <td bgcolor="#9196A7"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
                  <tr> 
                    <td>            
                    <div align="center"><img src="img/main/logo.jpg" width="386" height="42"></div></td>
                  </tr>
                </table></td>
            </tr>
          </table><table width="100%" border="0" align="center" cellpadding="0" cellspacing="2"> 
          <tr valign="top"> 
            <td width=140 class="leftnav" align="center"><table width="140" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#9196A7">
              <tr>
                <td><div align="left"><b><font color="#FFFFFF">Men&uuml;</font></b></div></td>
              </tr>
              <tr>
                <td valign="top" bgcolor="#EEF1F5"><div align="center"><a href="index.php">Home</a></div></td>
              </tr>
            </table></td>
            <td width="829" height="53" class="sitebg"><table width="100%" border="0" cellspacing="0" cellpadding="0" valign="top"> 
              <tr> 
                <td valign="top">
          die footer ist unwichtig. ist html.

          das ist die main.php:

          PHP-Code:
          <?php 
          session_start
          (); 
          include 
          'includes/sessionhelpers.inc.php';
          include 
          'includes/style.css';   
          connect(); // Verbindung zur Datenbank über die sessionhelpers.inc.php
              
          $sql "SELECT         
          UserID,
          UserName,
          UserICQ,
          UserPass,
          UserHP,
          UserMail
                      FROM
                          users
                      WHERE
                          UserSession = '"
          .session_id()."';";//Auslesen der Daten des momentan eingeloggten Users aus der Datenbank

              
          $result mysql_query($sql) OR die(mysql_error());
              
          $row mysql_fetch_assoc($result); //in brauchbares Format umwandeln
          ?>
          das die sessionhelpers.inc.php:
          PHP-Code:
          <?php include("includes/config.php"); ?>
           
          <?php
           
          function connect() 

          global 
          $database,$mysqlhost,$mysqluser,$mysqlpass

              
          $con mysql_connect($mysqlhost,$mysqluser,$mysqlpass) or die(mysql_error()); 
               
          mysql_select_db($database,$con) or die(mysql_error()); 
          }  

          function 
          check_user($name$pass

              
          $sql="SELECT UserId 
              FROM users 
              WHERE UserName='"
          .$name."' AND UserPass=MD5('".$pass."') 
              LIMIT 1"

              
          $resultmysql_query($sql) or die(mysql_error()); 
              if ( 
          mysql_num_rows($result)==1
              { 
                  
          $user=mysql_fetch_assoc($result); 
                  return 
          $user['UserId']; 
              } 
              else 
                  return 
          false


          function 
          login($userid

              
          $sql="UPDATE users 
              SET UserSession='"
          .session_id()."' 
              WHERE UserId="
          .$userid
               
          mysql_query($sql); 


          function 
          logged_in() 

              
          $sql="SELECT UserId 
              FROM users 
              WHERE UserSession='"
          .session_id()."' 
              LIMIT 1"

              
          $resultmysql_query($sql); 
                return ( 
          mysql_num_rows($result)==1); 


          function 
          logout() 

              
          $sql="UPDATE users 
              SET UserSession=NULL 
              WHERE UserSession='"
          .session_id()."'"
               
          mysql_query($sql); 


          connect(); 
          ?>
          und das die config.php:

          PHP-Code:
          <?php

          $database     
          "xxx";           //Name der Datenbank
          $mysqlhost    "localhost";        //Name des Hosters
          $mysqluser    "xxx";           //Benutzername
          $mysqlpass    "xxxx";         //Passwort

          $adminnick    "Patric";                //Hier den Nick des Admins eingeben
          $adminpass    "xxx";                 //Hier das Passwort des Admin eingeben
          $homepage     "http://www.rngame.de";  //Hier die URL der Homepage eingeben
          $icq          "170757134";             //Hier ihre ICQ UIN eingeben
          $adminmail    "patric@rngame.de";      //Hier die eMail Adresse des Admin eingeben
          ?>

          die seite hat ja keinen richtigen fehler. ich möchte ja nur nicht, das die selbe nachricht kommt, wie wenn ich die falschen logindaten eingebe.

          Kommentar


          • #6
            hab was falsch gelesen! sorry, deshalb hab ich den inhalt gelöscht!
            Zuletzt geändert von dispositor; 10.04.2004, 04:19.
            die hummel ist ein sinnloses tier ohne zukunft!

            Kommentar


            • #7
              ja gut, du hast jedoch dabei leider das header weiterleiten nicht bedacht.
              Also wenn im endeffekt eine Seite weitergeleitet werden soll, dann darf vorher kein stück html, echo oder andere header senden erfolgen.
              Du hast höchstens eine andere möglichkeit, und zwar:

              die index.php so zu ändern:
              PHP-Code:
              <?php 

              if (isset($_POST['login'])) 

                 
              $userid check_user($_POST['username'], $_POST['userpass']); 
                 if (
              is_numeric($userid)) 
                    
              login($userid);
                  
              header("Location: deineseite.htm"); 
                 else 
                    
              $meldung'Ihre Anmeldedaten waren nicht korrekt!'


              if (
              logged_in()) { 
                 
              $meldung'Hallo Patric! Wie geht es dir heute?';  

              } elseif (!isset(
              $userid)) 
                 
              $meldung='Willkommen! Du bist nicht eingeloggt.'
              include 
              'header.php';
              echo 
              $meldung;    
              include 
              'footer.php'
              ?>
              Es sit kurz nach 6 und ich war noch nicht schlafen, daher weiß ich nicht, wie richtig das ist, jedenfalls ist diese art funktionell. Du verhinderst damit, dass vor einer eventuellen weiterleitung was ausgegeben wird, erlaubst das ausgeben dennoch.
              Ich wieß nicht , ist der header dort richtig? Ich denke schon.
              SQL Injection kitteh is...

              Kommentar

              Lädt...
              X