Logo - MyWebsolution.de
User gesamt  :  2316766
User online  :  2
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Workshops » Loginskript Bitte um Hilfe!!!

Seite: 1 2  > Posts pro Seite: 5 10 20
Autor Thread
28.04.2009 21:24 Uhr Loginskript Bitte um Hilfe!!!
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
hi, ich bins nochmal... also erstmal ein großes lob für das login skript,toll das das hier so ausführlich behandelt wird!! aber leider komme ich nicht weiter und muss euch nochmal nerven ;( ich habe gesehen das es hier im forum schon mal angesprochen wurde aber irgendwie werde ich daraus nicht schlau, bin mit meinen programmier kenntnissen am ende.

folgendes, ich habe mir soweit meine homepage eingerichtet mit dem loginskript und funktioniert soweit ganz gut, aber was ich noch nicht verstehe ist wie ich wenn ich mich eingeloggt habe unter login.php, sie haben sich erfogreich eingeloggt, weiter komme dann auf meine geschützten seiten?! hab zb das skript profil bearbeiten mit in meine seite eingefügt und dort kommt die nachricht sie sind nicht eingeloggt :angry: normalweise ist es ja so das wenn man sich einloggt, das man in einen geschützen bereich kommt wie zb profil bearbeiten weiß aber nicht wie ich das behandelt soll, hoffe ihr versteht das was ich meine, danke schon mal im voraus.....
Profil ansehen
29.04.2009 00:53 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Hallo hagen,
mach mal bitte eine Testausgabe via

var_dump($_SESSION);

um zu testen, ob der Wert $_SESSION['UserID'] bei dir gesetzt ist.


Profil ansehen Mail senden
29.04.2009 01:16 Uhr
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
oh gut, wie mache ich das den... wo muss ich das einfügen, sorry ;(

Dieser Beitrag wurde am 29.04.2009 um 01:23:35 Uhr von hagen1977 zum 1. Mal editiert.
Profil ansehen
29.04.2009 14:41 Uhr
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
ich kann ja nochmal mein skript posten in dem ich das loginskript eingearbeitet habe, vielleicht hilft das ja ob ich alles richtig gemacht habe...8)


PHP:
session_start ();
<?php
    error_reporting
(E_ALL);

    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER '********';
    
$MYSQL_PASS '********';
    
$MYSQL_DATA '********';

    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    

    
// Prüfen, ob ein Autologin des Users stattfinden muss
    
if(isset($_COOKIE['Autologin']) AND !isset($_SESSION['UserID'])){
        
$sql "SELECT
                        ID
                FROM
                        User
                WHERE
                        Autologin = '"
.mysql_real_escape_string($_COOKIE['Autologin'])."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
$row mysql_fetch_assoc($result);
        if(
mysql_num_rows($result) == 1)
            
doLogin($row['ID'], '1');
    }

    
// Online Status der User aktualisieren
    
if(isset($_SESSION['UserID'])){
        
$sql "UPDATE
                        User
                SET
                        Letzte_Aktion = '"
.time()."'
                WHERE
                        ID = '"
.$_SESSION['UserID']."'
               "
;
        
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    }

    
// User ohne Autologin ausloggen
    
$sql "UPDATE
                    User
            SET
                    SessionID = NULL,
                    Autologin = NULL,
                    IP = NULL
            WHERE
                    '"
.(time()-60*20)."' > Letzte_Aktion AND
                    Autologin IS NULL
           "
;
    
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

    
// Kontrollieren, ob ein automatisch ausgeloggter User noch eine gültige Session besitzt
    
if(isset($_SESSION['UserID'])){
        
$sql "SELECT
                        SessionID
                FROM
                        User
                WHERE
                        ID = '"
.$_SESSION['UserID']."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
$row mysql_fetch_assoc($result);
        if(!
$row['SessionID']){
        
$_SESSION = array();
            
session_destroy();
        }
    }
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="reset.css" media="screen" />
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />


<title>eTuk - A Dirty Monochrome Community</title>
</head>

<body>
<div id="paper_left">
<div id="paper_right">
<div id="layout_wrapper">
<div id="layout_container">
<div id="layout_content">
<div id="site_title">
<h1><font color="#EAEB9A">Dein eTug Verzeichnis</font> </h1>
<h2>A Dirty Monochrome Community</h2>
</div>
<div id="header_image"></div>
<div class="navigation">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="sounds.php">Sounds</a></li>
<li><a href="videos.php">Videos</a></li>
<li><a href="photos.php">Photos</a></li>
<li><a href="profil.php">Profil</a></li>
<li><a href="logout.php">Logout</a></li>
</ul>
<div class="clearer">&nbsp;</div>
</div>
<div id="main">
<div class="post">
<div class="post_top">
<div class="post_title"><h2>Dein Netzwerk f&uuml;r Kommunikation</h2></div>
</div>
<div class="pagenavigation">
</div>
<div class="post_body">
<blockquote>
<p>Dein Portal f&uuml;r Kommunikation und Austausch.</p>

<?php
    error_reporting
(E_ALL);

    
$MYSQL_HOST 'localhost';
    
$MYSQL_USER '******';
    
$MYSQL_PASS '******';
    
$MYSQL_DATA '******';
    
  



    
$connid = @mysql_connect($MYSQL_HOST$MYSQL_USER$MYSQL_PASS) OR die("Error: ".mysql_error());
    
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());

    
// Session starten
    

    // Loggt einen User ein, ..
    
function doLogin($ID$Autologin=false)
    {
        
// .. indem die aktuelle Session ID in der Datenbank gespeichert wird
        
$sql "UPDATE
                        User
                SET
                        SessionID = '"
.mysql_real_escape_string(session_id())."',
                        Autologin = NULL,
                        IP = '"
.$_SERVER['REMOTE_ADDR']."',
                        Letzte_Aktion = '"
.mysql_real_escape_string(time())."',
                        Letzter_Login = '"
.mysql_real_escape_string(time())."'
                WHERE
                        ID = '"
.$ID."'
                "
;
        
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
// Wenn 'eingeloggt bleiben' aktiviert wurde
        
if($Autologin){
            
// Zufallscode erzeugen
            
$part_one substr(time()-rand(100100000),5,10);
            
$part_two substr(time()-rand(100100000),-5);
            
$Login_ID md5($part_one.$part_two);
            
// Code im Cookie speichern, 10 Jahre dürfte genügen
            
setcookie("Autologin"$Login_IDtime()+60*60*24*365*10);
            
$sql "UPDATE
                            User
                     SET                             Autologin = '"
.$Login_ID."'
                    WHERE
                            ID = '"
.$ID."'
                   "
;
            
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        }

        
// Daten des Users in der Session speichern
        
$sql "SELECT
                        Nickname
                FROM
                        User
                WHERE
                        ID = '"
.$ID."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

        
$row mysql_fetch_assoc($result);
        
$_SESSION['UserID'] = $ID;
        
$_SESSION['Nickname'] = $row['Nickname'];
    }

    if(isset(
$_POST['submit']) AND $_POST['submit']=='Einloggen'){
        
// Falls der Nickname und das Passwort übereinstimmen..
        
$sql "SELECT
                        ID
                FROM
                        User
                WHERE
                        Nickname = '"
.mysql_real_escape_string(trim($_POST['Nickname']))."' AND
                        Passwort = '"
.md5(trim($_POST['Passwort']))."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
// wird die ID des Users geholt und der User damit eingeloggt
        
$row mysql_fetch_assoc($result);
        
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
        
if (mysql_num_rows($result)==1){
             
doLogin($row['ID'], isset($_POST['Autologin']));
             echo 
"<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
             echo 
"Sie wurden erfolgreich eingeloggt.<br>\n".
                  
"Zur <a href=\"index.php\">Startseite</a>\n";
        }
        else{
             echo 
"Sie konnten nicht eingeloggt werden.<br>\n".
                  
"Nickname oder Passwort fehlerhaft.<br>\n".
                  
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
        }
    }
    else{
        echo 
"<form ".
             
" name=\"Login\" ".
             
" action=\"".$_SERVER['PHP_SELF']."\" ".
             
" method=\"post\" ".
             
" accept-charset=\"ISO-8859-1\">\n";
        echo 
"Nickname :\n";
        echo 
"<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
        echo 
"<br>\n";
        echo 
"Passwort :\n";
        echo 
"<input type=\"password\" name=\"Passwort\">\n";
        echo 
"<br>\n";
        echo 
"eingeloggt bleiben :\n";
        echo 
"<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
        echo 
"<br>\n";
        echo 
"<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
        echo 
"<br>\n";
        echo 
"<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
        echo 
"</form>\n";
    }
?> 
 

<p>Mit eTug kann man seine Freundschaften aufrecht erhalten und den Kontakt zu alten Bekannten und Kollegen pflegen. Lade Bilder hoch, schaue dir Videos an, pflege dein Netzwerk, tausche dich mit deinen Freunden aus. </p>

                                </blockquote>

                                <h2>Gr&uuml;&szlig;e alle Freunde die mich kennen.</h2>

                                <p>Starte hier meine erste offiziele Homepage. Gr&uuml;&szlig;e an Buelent!!!!  </p>

                                <p>"Freakin da Funk!" Static & Groove get the mix banging with funk & hip hop heavy-hitters. From classics to sneak attacks, sample moments and forgotten gems, enjoy this special selection we put together to launch our FREAKIN DA FUNK 2009.</p>

                        </div>

                                          

                                        </li>


        <div id="footer">

                <div class="left">&copy; 2009 Website</div>

                <div class="right">Design by Hightower Inc.</div>

                <div class="clearer">&nbsp;</div>

        </div>
</div>
</div>
</div>
</div>
</div>

</body>
</html>


Dieser Beitrag wurde am 30.04.2009 um 00:26:38 Uhr von Flitze zum 1. Mal editiert.
Profil ansehen
29.04.2009 14:45 Uhr
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
wennn ich zb auf eingeloggt bleiben klicke und abschicke kommt die fehlermeldung....


Warning: Cannot modify header information - headers already sent by (output started at /home/etukde/htdocs/index.php:7) in /home/etukde/htdocs/index.php on line 87
Willkommen hagen1977
Profil ansehen
29.04.2009 18:45 Uhr
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
kann mir den keiner helfen, ich bin am verzweifeln... ;(
Profil ansehen
30.04.2009 00:29 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Lager das Login-Formular mal aus. Wenn du den Auto-Login aktivierst, wird ein Cookie gesetzt. Das geht aber nur dann, wenn noch keine Ausgabe stattgefunden hat, was bei dir allerdings der Fall ist.


Profil ansehen Mail senden
30.04.2009 00:37 Uhr
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
ja genau, hab ich auch schon überlegt... aber wie kann ich es auslagern, sodas ich das login in die mitte meiner homepage setzten kann, wenn ich das login als erstes an meiner homepage einfüge passt es nicht mehr mit meiner homepage, ich weiß nicht weiter...
Profil ansehen
30.04.2009 15:05 Uhr
Flitze
Administrator
registriert 17.10.2006
wohnt in Eschwege
Beiträge 332
Es reicht,wenn du den Cookie-Part nach oben setzt,also diesen Abschnitt

PHP:
<?php
    
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
        
// Falls der Nickname und das Passwort übereinstimmen..
        
$sql "SELECT
                        ID
                FROM
                        User
                WHERE
                        Nickname = '"
.mysql_real_escape_string(trim($_POST['Nickname']))."' AND
                        Passwort = '"
.md5(trim($_POST['Passwort']))."'
               "
;
        
$result mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        
// wird die ID des Users geholt und der User damit eingeloggt
        
$row mysql_fetch_assoc($result);
        
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
        
if (mysql_num_rows($result)==1){
             
doLogin($row['ID'], isset($_POST['Autologin']));
             echo 
"<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
             echo 
"Sie wurden erfolgreich eingeloggt.<br>\n".
                  
"Zur <a href=\"index.php\">Startseite</a>\n";
        }
        else{
             echo 
"Sie konnten nicht eingeloggt werden.<br>\n".
                  
"Nickname oder Passwort fehlerhaft.<br>\n".
                  
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
        }
    }
?>


Die Erfolgs/Misserfolgsausgabe würde ich dann aber rausnehmen. Stattdessen kannst du dir eine Variable definieren (z.B. $login_succes) die kannst du dann später im Programm abfragen und dort dann die Ausgabe anzeigen.

Dieser Beitrag wurde am 30.04.2009 um 15:06:26 Uhr von Flitze zum 2. Mal editiert.


Profil ansehen Mail senden
30.04.2009 17:08 Uhr
hagen1977
Forenuser
 
registriert 27.04.2009
wohnt in Hamburg
Beiträge 13
hi, flitze... danke erstmal für deine rasche antwort, aber ich muss dich nochmal nerven!! irgendwie bekomme ich das nicht hin mit der variable und $login_succes, vielleicht kannst du mir da nochmal helfen.. bis jetzt habe ich alles hinbekommen, ausser das mit dem autologin, ich bin leider ein newbie auf diesen gebiet!! sorry ;(
Profil ansehen
Seite: 1 2  > no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik