php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.06.2004, 10:26  
Gast
 
Beiträge: n/a
Standard Login-Script Folge 387 :-)

Hallo,
ich habe ein LoginScript gebastelt welches auch gut funzt. Wenn ich mich anmelde werde ich automatisch auf die Homepage weitergeleitet.
Wenn ich nun aber den Browser schliesse und einen neuen öffne, dann über den Verlauf die geschützten Seiten aufrufe (oder einfach die adresse für ne geschützte Seite eingebe) kann ich mich wieder auf der kompletten Website bewegen ohne mich vorher anmelden zu müssen.
Wie verhindere ich dass???
Sorry falls die Frage schon einmal gestellt wurde aber ich habe auf anhieb mit der Suchfunktion nichts dergleichen gefunden...

ThX an alle die mir helfen

Maggus
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.06.2004, 10:32  
Gast
 
Beiträge: n/a
Standard

sessions
 
Alt 01.06.2004, 10:34  
Gast
 
Beiträge: n/a
Standard

Also, du musst in jeder Datei überprüfen, ob du eingeloggt bist.

Das geht am besten, wenn du die Daten mit Sessions weitergibst und dann in jeder Datei ausließt und überprüfst, ob die Daten richtig sind.

Sessions wurden schon 100emal besprochen, such einfach mal danach und modifiziere dein Scripts!

wilko
 
Alt 01.06.2004, 11:26  
Gast
 
Beiträge: n/a
Standard

Also ich hab jetzt mal versucht den script aus diesem Thread :http://www.phpfriend.de/forum/viewto...light=sessions

an meine Seite anzupassen.

Meine Login.php
Code:
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? 
session_start(); 
include 'sessionhelpers.inc.php'; 
if (isset($_POST['login'])) 
{ 
    $userid=check_user($_POST['username'], $_POST['userpass']); 
    if ($userid!=false) 
        login($userid); 
		@session_start (); // ... die Session gestartet und ... 
        $_SESSION["login"] = True; // ... die Sessionsvariable auf "True" gesetzt. 
  
         

    else 
        echo 'Ihre Anmeldedaten waren nicht korrekt!';
		$_SESSION["login"] = False; 
} 
if (!logged_in()) 
    echo '<form method="post" action="index.php"> 
        <label>Benutzername:</label><input name="username" type="text">
 
        <label>Passwort: </label><input name="userpass" type="password" id="userpass">
 
        <input name="login" type="submit" id="login" value="Einloggen"> 
    </form>'; 
else 
    echo 'Ausloggen'; 
echo '

Check'; 
?> 
</head>

<body>

<?
ob_end_flush();
?>
</body>
</html>
Meine Sessionhelper.inc.php

Code:
<? 
function connect() 
{ 
    $con= mysql_connect('localhost','root','') or die(mysql_error()); 
     mysql_select_db('secu',$con) or die(mysql_error()); 
} 

function check_user($name, $pass) 
{ 
    $sql="SELECT UserId 
    FROM users 
    WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') 
    LIMIT 1"; 
    $result= mysql_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"; 
    $result= mysql_query($sql); 
      return ( mysql_num_rows($result)==1); 
} 

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

connect(); 
?>
Logged_in.php

Code:
<?
session_start(); 


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login ueberpruefen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<? 

include 'sessionhelpers.inc.php'; 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.

'; 
echo 'Start'; 
?> 
<?
ob_end_flush();
?>
Auf jede meiner Seiten habe ich nun diesen Code oben reingesetzt:

Code:
<?php 
@session_start (); // Die Session wird gestartet. 
if ((!isset ($_SESSION["login"])) or (!$_SESSION["login"])) { 
   // Hier wird überprüft, ob die Session überhaupt vorhanden ist und wenn ja, 
   // ob das Login "True" ist. Wenn nicht, wird man wieder auf die Login-Seite 
   // geleitet. 
   header ("Location: http://localhost/login.php"); 
   exit; 
} 
?>
Wenn ich mich jetzt anmelde gehts nicht zur Startseite meiner Website sondern zurück aufs Login.php.
Dass müsste ja dann heisen, dass die session nicht True ist. Oder?
Was mache ich falsch???

ThX für eure Geduld mit einem Anfänger wie mir

Maggus
 
Alt 01.06.2004, 12:03  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von maggus
Code:
<?php 
@session_start (); // Die Session wird gestartet. 
if ((!isset ($_SESSION["login"])) or (!$_SESSION["login"])) { 
   // Hier wird überprüft, ob die Session überhaupt vorhanden ist und wenn ja, 
   // ob das Login "True" ist. Wenn nicht, wird man wieder auf die Login-Seite 
   // geleitet. 
   header ("Location: http://localhost/login.php"); 
   exit; 
} 
?>
Dieser da hast du von mir und zwar 100%!
$_SESSION["login"] ist TRUE, wenn du nicht auf die login.php geleitet wirst.
 
Alt 01.06.2004, 13:03  
Gast
 
Beiträge: n/a
Standard

Ja hab ich von dir
Entschuldige die blöde Frage, aber was muss ich jetzt ändern damit es funktioniert???
 
Alt 01.06.2004, 15:26  
Gast
 
Beiträge: n/a
Standard

Du hattest nirgendswo Session Destroy wenn ich das so beim übergesehen gelesen habe, dann wird die Session auch nicht beendet!

Gruß Garry
 
Alt 01.06.2004, 15:36  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von maggus
Ja hab ich von dir
Entschuldige die blöde Frage, aber was muss ich jetzt ändern damit es funktioniert???
Kein Problem , ich freue mich, wenn ich jemandem helfen kann! Du musst noch ein Logout programmieren, damit die Session nicht bleibt. Hier gleich meine logout.php:
Code:
<?php
@session_start ();
session_destroy ();
header ("Location: http://localhost/login.php");
exit;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head><title>Login-System</title></head>
</html>
MfG
Alex
 
Alt 01.06.2004, 15:41  
Gast
 
Beiträge: n/a
Standard

ein bisschen eigenartig nach exit; noch htmltags einzufügen@general alex
 
Alt 01.06.2004, 15:51  
Gast
 
Beiträge: n/a
Standard

und dieser Logout-Schnipsel den häng ich auch über jede Seite?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Login Script (ohne Werbung) Aoz Scriptbörse 9 30.12.2007 19:41
frage zu login script schorsch PHP Tipps 2006 9 10.10.2006 10:16
Etwas komplexerer Login --> Keine Angst, Suche benutzt dethlef14 PHP Tipps 2006 7 02.10.2006 00:35
Suche Login Script PHP Tipps 2006 6 02.03.2006 11:09
Login Script PHP Tipps 2006 4 21.02.2006 23:01
PHP / MySQL | Login Script Problem PHP Tipps 2006 15 17.02.2006 12:26
Sicheres Login Script mit automatischer Rückanmeldung Pain-maker PHP Tipps 2006 6 15.02.2006 16:13
Login Script : Addon??? Chrisber PHP Tipps 2005-2 0 27.09.2005 16:11
Login Script... Beitragsarchiv 1 16.08.2005 02:21
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
Suche spezielles Login script !!!! dringend Beitragsarchiv 5 09.07.2005 14:42
Login Script PHP Tipps 2005-2 7 02.07.2005 04:53
Problem mit Script auf verschiedenen Servern PHP Tipps 2005 40 22.03.2005 17:26
Login Script: sicher oder nicht sicher? PHP Tipps 2005 26 23.02.2005 12:18
login script spuckt PHP Tipps 2005 13 28.01.2005 16:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sessionhelper.inc.php

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.