[PHP] Login script dauerhaft aktive?!

Dieses Thema im Forum "Webentwicklung" wurde erstellt von 3X3X3X3, 19. Juli 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 19. Juli 2007
    Login script dauerhaft aktive?!

    Hi also ich habe eine Frage!
    Wenn ich z.B. ein Menü am anfang schreibe mit:
    Code:
    <a href="[B]1[/B].php">1</a> [I]nur für eingeloggte Benuter! Ansonsten Aufforderung zum Login! Wenn eingeloggt sichtbar![/I]
    <a href="2.php">2</a>
    <a href="3.php">3</a>
    <a href="4.php">4</a>
    <a href="Login.php">Login</a>
    
    so und wenn ich dann auf Login klicke komme ich auf eine Seite mit einen Login mit Benutzername und Passwort! Da gebe ich meine Daten aus der Datenbank ein und ich will eingeloggt werden! Wie mache ich das? Ich habe mir das dann mit Sessions geschrieben!
    Wenn ich dann beim Login den SENDE Button gedrückt habe will ich auf die Hauptseite wo dann steht:
    Code:
    [COLOR="Red"]Wilkommen [B]BENUTZERNAME[/B][/COLOR]
    
    <a href="1.php">[B]1[/B]</a>
    <a href="2.php">2</a>
    <a href="3.php">3</a>
    <a href="4.php">4</a>
    <a href="Login.php">Login</a>
    
    nun soll dann oben am anfang stehen willkommen BENUTZERNAME... und ich nun in den Bereich 1 reinkomme wo nur für EINGELOGGT BENUTERZ IST?! Wie mache ich das? Schreibe ich das mit Sessoins? Wenn ja wie sieht zB für das Beispiel hier der Quelltext aus?
     
  2. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    Ja mit Sessions geht das ^^

    Erstmal musst du beim Login dann in eine Session Variable den Benutzername eingeben und eine Variable ob du eingeloggt bist um das zu überprüfen.

    so könntest du es machen ( ungetestet )
    PHP:
    <? php
    session_start
    ();

    if (isset(
    $_SESSION [ 'login' ]) &&  $_SESSION [ 'login' ] ==  true  )
    {
        echo 
    'Willkommen '  $_SESSION [ 'Nick' ];
        echo 
    '<a href="1.php">1</a>' ;
    }
    else
    {
        echo 
    'Sie sind zur Zeit nicht Angemeldet!' ;
    }

    ?>
    <a href="2.php">2</a>
    <a href="3.php">3</a>
    <a href="4.php">4</a>
    <a href="Login.php">Login</a>

    greetz
     
  3. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    ansosnten mit mysqlund datenbanken registrieren lassen und dann mti einer funktion über cookies und funktionen überprüfen ob der user in der datenbank steht und ob das passwort mti dem namen überinestimmt --> dann wird er eingeloggt
     
  4. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    also mit cookies habe ich gestern sehr lange probiert und des ging nicht! ich mein ich bin ja kein profi ^^ und ansonsten habe ich ein <a href=""></a> mit registrieren gemacht wo die daten in die datenbank geschrieben werden und 1 <a href=""></a> mit login!..

    was muss ich dann in die login.php mit sessions schreiben wie sieht es da dann aus? ich habe dann da 2 input felder?! das eine heisst benuterzname das andere passwort und wenn ich dann eingelogt bin dann muss ich ja wieder zurück auf die startseite aber muss inerhalb der session bleiben oder sollte ich lieber die login felder auf der hauptseite machen ?

    ich schreib jetzt schnell mal ein beispiel und lade es per xup hoch dann kann man mir vllt leicher helfen


    sooo hab mal was geschrieben! so siehts aus:

    test.php
    Code:
    [I]<html>
    <body>
    <?php
    session_start();
    
    if (isset($_SESSION['login']) && $_SESSION['login'] == true )
    {
     echo 'Willkommen ' . $_SESSION['Nick'];
     echo '<a href="1.php">1</a>';
    }
    else
    {
     echo 'Sie sind zur Zeit nicht Angemeldet!';
    }
    
    ?>
    <br>
    <a href="2.php">2</a>
    <br>
    <a href="3.php">3</a>
    <br>
    <a href="4.php">4</a>
    <br>
    <a href="5.php">5</a>
    
    <p>
    
    <b>LOGIN:</b>
    <br>
    <form action="test.php" method="post">
    Benutzername:
    <input name="benutzername" size="20"> 
    <br>
    Passwort:
    <input name="passwort" type="password" size="20"> 
    <br>
    <input type="submit" value="abschicken">
    <input type="reset" value="löschen">
    </form>
    </body>
    </html>[/I]
    
    aber eigentlich mache ich das ganze ja mit mysql da wird dann halt erster mal beim login abgefragt ob überhaupt der benutzer existiert!
     
  5. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    soll dieser bereich eine externe php datei sein oder soll das login im selben file bleiben ?!

    //edit: habs mal als eine Datei genommen

    code ( not testet ):
    PHP:
    <html>
    <body>
    <?php
    session_start
    ();

    if(
    $_POST [ 'submit' ]) //überprüfe ob formular gesendet wurde
    {
        
    //bla bla bla viel code von dir! überprüfung ob die eingegebenen Daten richtig sind!!!

            // nur wenn die eingabe richtig ist soll er hier her kommen!!!
        
    $_SESSION [ 'login' ] =  true //setzt session Varibale richtig als das Benutzer angemeldet ist
        
    $_SESSION [ 'Nick' ] =  $_POST [ 'benutzername' ];  //eingegebener Benutzername als nick nehmen
    }
    else{} 
    // kann auch weg bleiben

    if (isset( $_SESSION [ 'login' ]) &&  $_SESSION [ 'login' ] ==  true  )
    {
        echo 
    'Willkommen '  $_SESSION [ 'Nick' ];
        echo 
    '<a href="1.php">1</a>' ;
    }
    else
    {
        echo 
    'Sie sind zur Zeit nicht Angemeldet!' ;
    ?>
    <!-- das dein login gleich oben angezeigt wird ;) -->
    <b>LOGIN:</b>
    <br>
    <form action="<?  echo  $_SERVER [ 'PHP_SELF' ]; ?>" method="post">
    Benutzername:&nbsp;<input name="benutzername" size="20"> 
    <br>
    Passwort:&nbsp;<input name="passwort" type="password" size="20"> 
    <br>
    <input type="submit" name="submit" value="abschicken">
    <input type="reset" value="löschen">
    </form>
    <?php
    }

    ?>
    <br>
    <a href="2.php">2</a>
    <br>
    <a href="3.php">3</a>
    <br>
    <a href="4.php">4</a>
    <br>
    <a href="5.php">5</a>
    </body>
    </html>
     
  6. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    PHP:
    <? php
        session_start
    ();
        
        if(isset(
    $_POST [ 'benutzername' ]) &&  $_POST [ 'passwort' ] != "" ) {
            
    //mysql_connect
            //mysql_select_db
            //mysql_fetch_assoc+query(SELECT * FROM tabelle WHERE benutzername = $_POST['benutzername'] AND passwort = $_POST['passwort'])
            //if(ergebnis aus datenbank == gesendete variablen) 
            
    $_SESSION [ 'username' ] =  $_POST [ 'benutzername' ];
        }
        
        function 
    is_user ()
        {
            
    $username  = ( $_SESSION [ 'username' ] ==  "" ) ?  false  $_SESSION [ 'username' ];
            return 
    $username ;
        }
    ?>
    <html>
    <body>
    <?php
        
    if(( $user  is_user ()) !==  false ) {
            print 
    "<b>Willkommen  $user </b>\n<br/>\n" ;
    ?>
    <!-- links nur für mitglieder sichtbar -->
    <a href="1.php">Geheim</a>
    <?php
        
    }
        else {
            print 
    "Willkommen Gast, melde dich an um den geheimen Inhalt zu lesen!\n<br/>\n" ;
    ?>
    <!-- links nur für gäste sichtbar -->
    <a href="register.php">Anmelden</a>
    <br/>
    <b>LOGIN:</b>
    <br>
    <form action="<?php  print  $_SERVER [ 'PHP_SELF' ];  ?>" method="post">
    Benutzername:
    <input name="benutzername" size="20"> 
    <br>
    Passwort:
    <input name="passwort" type="password" size="20"> 
    <br>
    <input type="submit" value="abschicken">
    <input type="reset" value="löschen">
    </form>
    <?php
        
    }
    ?>
    <br>
    <a href="2.php">2</a>
    <br>
    <a href="3.php">3</a>
    <br>
    <a href="4.php">4</a>
    <br>
    <a href="5.php">5</a>
    </body>
    </html>
    dauerhaft eingeloggt bleiben geht mit cookies, ließ mal im manual nach und wenns probleme gibt meldest dich nochma
     
  7. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    was bewirkt die zeile hier <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post"> ?
     
  8. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    mit <form> beginnt man in HTML ein formular
    action gibt dabei an, an welches script die daten gesendet werden, wenn man auf abschicken drückt
    in diesem fall wird durch den php befehl automatisch die URL der aktuell aufgerufenen seite angegeben
    method gibt halt die methode an mit der die daten versendet werden, es gibt GET und POST
    bei GET werden die daten in der adresszeile mit einem ? angehängt > zu unsicher für einen login
    hier wird POST verwendet, dadurch werden die daten im hintergrund (als header) versendet
     
  9. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    okay danke! ich habe jetzt aber noch ein problem! hat alles wunderbar funktionier aber wenn ich jetzt mich einlogge dann kann ich mich mit jeden beliebigen namen einloggen ?! ich will ja nur mit mit den namen einloggen können wo in der db gespeichert sind ?! wie mache ich das ?

    PHP:
    <? php
        session_start
    ();
        
        if(isset(
    $_POST [ 'benutzername' ]) &&  $_POST [ 'passwort' ] != "" ) {

    $db = mysql_connect ( "localhost" , "root" , "i" );

    mysql_select_db ( "db" );

    $anfrage = "SELECT * FROM tabelle WHERE benutzername = ' $_POST [ benutzername ] ' AND passwort = ' $_POST [ passwort ] ';" ;
    $ergebnis = mysql_query ( $anfrage );
    $zeile = mysql_fetch_row ( $ergebnis );



            
    $_SESSION [ 'username' ] =  $_POST [ 'benutzername' ];
        }
        
        function 
    is_user ()
        {
            
    $username  = ( $_SESSION [ 'username' ] ==  "" ) ?  false  $_SESSION [ 'username' ];
            return 
    $username ;
        }
    ?>
    <html>
    <body>
    <?php
        
    if(( $user  is_user ()) !==  false ) {
    ?>
    <!-- links nur für mitglieder sichtbar -->
      <tr>
            <th width='15%' height='20' background='button.gif'><i><a href='test.htm' target='mitte'>1</a></i></th>
      <tr>
            <th width='15%' height='20' background='button.gif'><i><a href='test.htm' target='mitte'>1</a></i></th>
      <tr>
            <th width='15%' height='20' background='button.gif'><i><a href='test.htm' target='mitte'>2</a></i></th>
      <tr>
            <td width="15%" height="15" background="head.gif"><font size="4" color="#bdbdbd"<b><u>Login</u><b></font></td>
      <tr>
            <th width='15%' height='20' background='button.gif'>
        <?php
        
    print  "<b><font color='#ffffff'>Willkommen  $user </b>\n<br/>\n</font>" ;
                                
    ?> </th>

    <?php
        
    }
        else {
    ?>
    <!-- links nur für gäste sichtbar -->
      <tr>
            <th width='15%' height='20' background='button.gif'><i><s>1</a></i></s></th>
      <tr>
            <th width='15%' height='20' background='button.gif'><i><s>3</a></i></s></th>
      <tr>
            <th width='15%' height='20' background='button.gif'><i><s>2</a></i></s></th>
      <tr>
            <td width="15%" height="15" background="head.gif"><font size="4" color="#bdbdbd"<b><u>Login</u><b></font></td>
    <form action="<?php  print  $_SERVER [ 'PHP_SELF' ];  ?>" method="post">
      <tr>
        <th width="15%" height="20" background="button.gif"><input name="benutzername" value="Benutzername" size="17"></th>
      <tr>
        <th width="15%" height="20" background="button.gif"><input name="passwort" type="password" value="Passwort" size="17"></th>
      <tr>
        <th width="15%" height="20" background="button.gif"><input type="submit" value="Login" size="10"><input type="reset" value="Löschen" size="10"></th></form>
    <?php
        
    }
    ?>
    BW an allen raus! Danke im vorraus!

    P.S. Habs alleine hinbekommen mit einer Abfrage!

    PHP:
             if( $_POST [ benutzername ] ==  $zeile [ 2 ]  &&   $_POST [ passwort ] ==  $zeile [ 4 ] &&  $_POST [ benutzername ] != ""  &&  $_POST [ passwort ] != "" )
     
  10. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    du musst auch abfragen ob die daten in der mysql stehen, im momment setzt du zwar ne abfrage ab, aber lässt sie links liegen und setzt in jedem fall den benutzernamen in der session.
     
  11. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    und wie mache ich das zB wenn ich mich auf der HAUPTSEITE einlogge und dann auf ne andere seite gehe ? wie übernehme ich da die session ? einfach mich session_start() ?
    weil auf der hauptseite gibts jetzt ein loggin und dann will ich auf ne andere wo für jeden zulässig ist! zB bilderupload können NUR MEMBER machen und anschauen können auch GÄSTE !? also muss ich ja die session übernehmen und wieder so eine abfrage machen

    wenn in der session dann uploadscript+bilder ansehen, wenn nicht in der session dann bilder nur ansehen

    wie tue ich das in php umsetzen?

    PHP:
    <? php
        
    if(( $user  is_user ()) !==  false ) {
    ?>
    <!-- links nur für mitglieder sichtbar -->

    <?php
        
    }
        else {

    ?>

    <!-- links nur für gäste sichtbar -->
     
    <?php
        
    }
    ?>
    geht das mit dem oder wie sollte ich das schreiben ?
     
  12. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    jep überall wo du eine session startest mit session_start() sind die gesetzten variablen ($_SESSION) wieder da.
     
  13. 19. Juli 2007
    AW: Login script dauerhaft aktive?!

    und wie mach ich des dann mit einer eingeschränkten seite? wo man user nur manche sachen sehen lassen kann und user die eingeloggt sind mit session_start() mehr sehen lässt? wie ist das möglich?
    wie sieht da die abfrage aus ?
     
  14. 20. Juli 2007
    AW: Login script dauerhaft aktive?!

    indem du beim login die rechte vergibst kannste ja mit ner neuen Sesseion Variable machen und dann bei jedem link bzw. content. bzw. was auch immer zu nur bestimmte leute sehen lassen willst abfragen.

    ich geb dir mal einen kleinen beispiel code:
    PHP:
    <? php
    $_SESSION
    [ 'usrlevel' ] =  3 //habe stufe 3 einfach mal als admin Level genommen 1 = nicht angemeldet  2= registrierter Memer

    if ( $_SESSION [ 'usrlevel' ] =>  2 //lesbar wenn man angemeldet ist und höher
    {
       echo 
    'Mitglieder bereich' ;
    }

    if (
    $_SESSION [ 'usrlevel' ] ==  3 // nur als admin sichtbar
    {
       echo 
    'Admin ACP login z.B.' ;
    }

    ?>
    danke telefonzelle für deinen hinweis ... bin gerade auf der arbeit und da iss Delphi angesagt mit einem = da komme ich ab und an durcheinander
     
  15. 20. Juli 2007
    AW: Login script dauerhaft aktive?!

    hey coole idee.. und wie weiss ich den normalen member des level zu ?

    PHP:
    ( $_SESSION [ 'member' ] =  1 )
    (
    $_SESSION [ 'gast' ] =  2 )
    (
    $_SESSION [ 'adminr' ] =  3 )
    und dann so weiter ?

    PHP:
    <? php
    $_SESSION
    [ 'usrlevel' ] =  3 //habe stufe 3 einfach mal als admin Level genommen 1 = nicht angemeldet  2= registrierter Memer

    if ( $_SESSION [ 'usrlevel' ] =>  2 //lesbar wenn man angemeldet ist und höher
    {
       echo 
    'Mitglieder bereich' ;
    }

    if (
    $_SESSION [ 'usrlevel' ] =  3 // nur als admin sichtbar
    {
       echo 
    'Admin ACP login z.B.' ;
    }

    ?>
     
  16. 20. Juli 2007
    AW: Login script dauerhaft aktive?!

    if($_SESSION['usrlevel'] = 3)...

    Wenn du vergleichen möchtest, ob in $_SESSION['usrlevel'] der Wert 3 steht, musst == schreiben.
     
  17. 20. Juli 2007
    AW: Login script dauerhaft aktive?!

    ja aber meine frage war ja wie weiss ich dem mitglied die zahl 3 zu und dem admin die zahl 2 zB ?
    kann man es so zuweissen ?
    weil den normalen gast brauch ich ja keine nummer zuweisen weil er sich ja nicht einloggen muss
    PHP:
    ( $_SESSION [ 'member' ] =  1 )
    (
    $_SESSION [ 'gast' ] =  2 )
    (
    $_SESSION [ 'admin' ] =  3
     
  18. 20. Juli 2007
    AW: Login script dauerhaft aktive?!

    Du brauchst doch nur

    $_SESSION['userlevel'] = 3 bei Gast etc. Dann kannst du das Userlevel bequem vergleichen...
    Mein Tipp an dich: Such dir nen Coder...
     
  19. 20. Juli 2007
    AW: Login script dauerhaft aktive?!

    Indem du das beim einloggen festlegst z.B. wenn du in deiner MySQL Datenbank Nick und pw drinne hast dann hänge noch ein extra feld an wo der user level drinne ist und weise den dann beim login zu .Mit ein bissl selber denken währst du sicherlich auch darauf gekommen

    //edit: *thedude in schutz nehm* coden ist nicht gleich coden. Es gehört mehr zum coden(Programieren) als ein paar if abfragen oder schleifen kombinieren zu können sondern auch ein gesundes mass an logischen denken und problemlösung dazu und genau dabei hapert es bei dir (was nicht heißen soll das du schlecht bist oder so, jeder fäng mal klein an ich bin auch nicht sooo gut darin was mir mein Ausbildungsleiter immer vorhält -.-" ) und da erfordert es aber auch etwas an eigeninitiative die lösung selber zu finden und etwas zu lernen und das kam hier nicht so wirklich arg zum vorschein was ihm wohl gegen den strich ging und direkt wie er nunmal ist schreibt er des dann auch nieder
     
  20. 21. Juli 2007
    AW: Login script dauerhaft aktive?!

    @Mutator:
    joa okay stimmt schon hab das schon mit id's gemacht.. mhh hätte ich bissel länger überlegen müssen aber hatte in letzter zeit nicht so viel zeit um mich mim computer zu beschäftigen!

    @tHe dUdE:

    lol so ne antwort war mal ein griff ins klo! ich will keinen coder! ich kann coden aber halt nur nicht so gut! standart eben und da ich im mom net so viel zeit hatte war dein beitrag nur spam ...

    ------------------------------------------------------------------------------------------------

    <?php
    session_start();

    if(isset($_POST['benutzername']) && $_POST['passwort'] !="") {

    $db=mysql_connect("localhost","root","i");

    mysql_select_db("db");

    $anfrage="SELECT * FROM tabelle WHERE benutzername = '$_POST[benutzername]' AND id = '$_POST[id]' AND passwort = '$_POST[passwort]';";
    $ergebnis=mysql_query($anfrage);
    $zeile=mysql_fetch_row($ergebnis);

    if($_POST[benutzername] == $zeile[2] && $_POST[passwort] == $zeile[4] && $_POST[id] == $zeile[5] && $_POST[benutzername] !="" && $_POST[passwort] !="")

    $_SESSION['username'] = $_POST['benutzername'];
    }

    function is_user()
    {
    $username = ($_SESSION['username'] == "") ? false : $_SESSION['username'];
    return $username;
    }
    ?>
    <html>
    <body>
    <?php
    if(($user = is_user()) !== false) {
    ?>
    <!-- links nur für mitglieder sichtbar -->
    <tr>
    <th width='15%' height='20' background='button.gif'><i><a href='test.htm' target='mitte'>1</a></i></th>
    <tr>
    <th width='15%' height='20' background='button.gif'><i><a href='test.htm' target='mitte'>1</a></i></th>
    <tr>
    <th width='15%' height='20' background='button.gif'><i><a href='test.htm' target='mitte'>2</a></i></th>
    <tr>
    <td width="15%" height="15" background="head.gif"><font size="4" color="#bdbdbd"<b><u>Login</u><b></font></td>
    <tr>
    <th width='15%' height='20' background='button.gif'>
    <?php
    print "<b><font color='#ffffff'>Willkommen $user</b>\n<br/>\n</font>";
    ?> </th>

    <?php
    }
    else {
    ?>
    <!-- links nur für gäste sichtbar -->
    <tr>
    <th width='15%' height='20' background='button.gif'><i><s>1</a></i></s></th>
    <tr>
    <th width='15%' height='20' background='button.gif'><i><s>3</a></i></s></th>
    <tr>
    <th width='15%' height='20' background='button.gif'><i><s>2</a></i></s></th>
    <tr>
    <td width="15%" height="15" background="head.gif"><font size="4" color="#bdbdbd"<b><u>Login</u><b></font></td>
    <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
    <tr>
    <th width="15%" height="20" background="button.gif"><input name="benutzername" value="Benutzername" size="17"></th>
    <tr>
    <th width="15%" height="20" background="button.gif"><input name="passwort" type="password" value="Passwort" size="17"></th>
    <tr>
    <th width="15%" height="20" background="button.gif"><input type="submit" value="Login" size="10"><input type="reset" value="Löschen" size="10"></th></form>
    <?php
    }
    ?>


    so sieht jetzt mein quelltext aus! aber das will nicht so funktionieren! ich muss ja in die session jetzt noch die id reinladen aber wie stell ich das nun an? ich habs jetzt mal dick makiert! wäre echt nochmal eine hilfe bw gibts natürlich! mfg ^^
     
  21. 21. Juli 2007
    AW: Login script dauerhaft aktive?!

    Also bitte entschuldige mal, so wie das hier aussieht würd ich dich keineswegs als "Coder" bezeichnen und als Standard geht das Skript bisher bei weitem nicht durch. Wenn dir wirklich was daran liegt, dann musst du dich wohl oder übel in die Skriptprache PHP einlesen und zunächst einmal verstehen was du eigentlich machst, damit du später bei ähnlichen Problemen selbst weiter weisst. Es ist nicht damit getan eine Frage in ein Forum zu stellen und solange auf dieser herumzureiten bis man anhand der Kommentare und Hilfen ein Skript zum laufen bringt. Sicher anfangs geht das vielleicht gut, aber eine Endlösung ist das sicher nicht.

    also,

    als erstes bookmarkst du das: PHP: Hypertext Preprocessor
    Auf der Seite kannst du alle Funktionen nachlesen und die Funktionsweisen von z.b.: sessions/cookies/strings (was auch immer) verinnerlichen. Ich selbst (und sicher viele andere auch) erwische mich dort auch immer wieder beim blättern und beim lesen

    Danach, um überhaupt die Syntax zu erlernen (um z.b.: Fehler zu vermeiden wie = oder == ) liest du dich in der sehr ausführlichen FAQ von quake.net schlau: http://faq.php-q.net/ und http://tut.php-q.net
    die beiden Links sollten für den Anfang auch in deine Favoriten wandern.

    bis dahin, du kannst es dir vielleicht schon denken, ist hier geschlossen
     
  22. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.