Ankündigung

Einklappen
Keine Ankündigung bisher.

Informationen müssen doppelt gesendet werden.

Einklappen

Neue Werbung 2019

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

  • Informationen müssen doppelt gesendet werden.

    Hallo zusammen,

    ich bin ein Anfänger in php und wollte mal ein einfaches Login Script schreiben
    um eventuell spätere Projekte damit auszurüsten.
    Das Skript funktioniert in seiner derzeitigen Form eigentlich ganz gut außer das ich sowohl beim einloggen als auch beim ausloggen jeweils 2 mal auf den Button drücken muss. (inklusive daten senden )


    Um die gewünscht Seite angezeigt zu bekommen.

    Hier der Code:
    Login.php (da steht das script drin)
    PHP-Code:
    <?php @session_start();?>
    (HTML angaben wie head usw)
    <?php
     

     
    require_once("funktions.inc.php");
     
    dbcon();
     
     if(isset(
    $_SESSION['logonid']))
     {
     
    $_SESSION['logonid']=$_SESSION['logonid'];
     }
     else
     {
     
    $_SESSION['logonid']="1";
     }
     
     if(
    $_SESSION['logonid']!="1")                                             
     {    
      echo (
    "<center>Wilkommen<br />".$_SESSION['logonid']."<br> </center>");
     include(
    "logout.php");
     }
     else                                                                
     {
     include(
    "login2.php");    //login Formular
     
    if (isset ($_POST["send"])) 
     {
     
    $user $_POST["user"]; //Umwandeln der globalen variablen in 
     
    $pw =md5($_POST["PW"]); // normale Variablen und verschlüsselung des Passwords. 
     
       
    $sql= ("SELECT * FROM user WHERE user='$user'");    //
       
    $db_erg=mysql_query($sql)                           //auslesen der datenbank 
       
    or die(mysql_error());                              //  
       
    $check mysql_fetch_array$db_ergMYSQL_ASSOC);
       
       
       if((
    $check['user']==$user) && ($check['password']==$pw)) //Informations prüfung (eigentliches login)
         
    {
       
    $sql=("UPDATE user SET seasionid ='".session_id()."' WHERE id='".$check['id']."'"); // daten in der datenbank aktualisieren.
       
    $sql_erg=mysql_query($sql)
       or die (
    " Session id konnte nicht geschrieben werden<br> " .mysql_error()); 
         echo (
    $check['id']);                                //löschen wenn goes life
         
    $_SESSION['logonid']=$check['user'];
         echo(
    $_SESSION['logonid']);                 //setzen der session variablen logon id( zwecks login prüfung)
         
    }
       else 
        {
        echo(
    "Benutzername und/oder Password falsch");
        }
      }
      else 
      {
       echo (
    "Bitte Loggen sie sich ein"); 
       }
      }
     
    mysql_close(); 
     
    ?>
    Dann meine functions.inc.php
    PHP-Code:
     function dbcon()
      {
      require_once(
    "config.inc.php");
      
    mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);
      
    mysql_select_db (MYSQL_DATENBANK)
      or die (
    "die Datenbank exestiert nicht oder kann nicht angwählt werden".mysql_error());
      } 
    (in der werden nur die DB sachen gespeichert)

    der login2.php (die datei die das eigentliche login Formular enthält)
    PHP-Code:
    <body>
    <
    form action="index.php?=88" method="post">
           <
    input name="user"/>Benutzername<br />
           <
    input type="password" name="PW"  />Password <br />
           <
    input type="submit" name="send" value="Login" />
    </
    form>
    <
    a href="register.php"  Regestrieren </a
    und die logout.php
    PHP-Code:
    <body>
    <
    form action="index.php?=88" method="post">
           <
    input name="user"/>Benutzername<br />
           <
    input type="password" name="PW"  />Password <br />
           <
    input type="submit" name="send" value="Login" />
    </
    form>
    <
    a href="register.php"  Regestrieren </a
    Dann habe ich zwar noch eine reg.php aber die ist nur dafür da daten in die db zu schieben.

    Online kann ich es euch leider nicht präsentieren da ich das ganz local mache.
    (XAMPP (MYSQL und APACHE laufen ) in den Standard Einstellungen.

    ich hoffe ich konnte alle informationen geben die ihr braucht um mir zu helfen danke schonmal im voraus

    Achso es soll eigentlich so sein das wenn man einloggt direkt danach eine Meldung alla willkommen §user und der log out Button zu sehen ist. Beim ausloggen soll dann eben wieder die anfängliche Seite mit dem Login Formular stehen.

    Gruß Dagon

  • #2
    Das script sieht mir zu unstrukturiert aus und es sind einige Zeilen überflüssig..
    ich schreib dir hier mal eben eins:
    Die function.php:
    PHP-Code:
    <?php
    //datenbank zugang 
    define('MYSQL_HOST''localhost');
    define('MYSQL_USER''user');
    define('MYSQL_PASS''passwort');
    define('MYSQL_DATABASE''Datenbank');
    //kontakt mit db herstellen
    function connect()
    {
        
    $con= @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die(mysql_error());
        
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());
    };
    das dürfte deiner function.inc.php und reg.php ensprechen...
    Kommen wir nun zur login.php:
    PHP-Code:
    <?php //das muss auf jeder zu schützenden seite stehn!!
    session_start();
    ?>
    <?php
    //verbindung zur db
    include "function.php";

    connect();
    //übergabe $post
    $name $_POST["name"];
    $passwort md5($_POST["password"]);
    //Variable absichern trime fehlt noch
    $name=strip_tags($name);
    $passwort=strip_tags($passwort);

    //abfrage Username
    $sql"SELECT id FROM `user` WHERE name =('".$name."' )";
    $result mysql_query($sql) OR die(mysql_error());
    if(
    mysql_num_rows($result)) {
    $row mysql_fetch_assoc($result);
    }
    else
    {
    die(
    'Benutzername ist falsch.');

    }
    //abfrage Password
    $abfrage "SELECT name, pass FROM `user` WHERE name LIKE ('".$name."') LIMIT 1";
    $ergebnis mysql_query($abfrage) or die(mysql_error());;
    $row mysql_fetch_assoc($ergebnis) or die(mysql_error());
    //Freigabe
    if($row['pass'] == $passwort)
        {
       
        
        
    $_SESSION["name"] = $name;
        
        echo 
    "Login erfolgreich.";
        }
    else
        {
         echo 
    "Passwort war falsch.";
        }

    ?>
    damit wird benutzername und überprüft und der eingeloggde nutzer kann immer über
    PHP-Code:
    if(!isset($_SESSION["name"]))
       {
       echo 
    "Bitte erst einloggen";
       exit;
       } 
    überprüft werden..
    jetzt fehlt noch die loguot.php
    PHP-Code:
    <?php


    // Initialisierung der Session.
    session_start();
    // Löschen aller Session-Variablen.
    $_SESSION = array();
    session_destroy();
    echo 
    'ausgelogt';

    ?>
    und das formular auf index.php das automatisch zum logout button wird falls der user eingelogged ist.
    PHP-Code:
    //überprüfen ob Eingeloggt
                                
    if(!isset($_SESSION["name"]))
                                {
                                echo
    '<form action="php/login.php" target="anzeige" method="post">
                                         Dein Username:<br>
                                         <input type="text" size="24" maxlength="15"
                                         name="name"><br><br>
                                         Dein Passwort:<br>
                                         <input type="password" size="24" maxlength="10"
                                         name="password"><br>
                                         <input type="submit" value="Login">
                                   </form><br>
                                   <form action="register.php" target="anzeige">
                                   <input type="submit" value="Registrieren" >
                                   </form>'
    ;

                                }
                                else{
                                echo
    '<form action="php/logout.php">
                                     <input type="submit" value="logout">
                                     </form><br>Eingelogt'
    ;
                                     } 
    ich hoffe das hilft dier weiter
    gruß

    Kommentar

    Lädt...
    X