|
|
PHP Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php
@session_start();
@mysql_connect("localhost","DBUSER","DBPASS");
@mysql_select_db("DATENBANKNAME");
function internal($benutzername,$kennwort) {
$mysql = mysql_query("SELECT benutzer_id FROM tbl_benutzer WHERE benutzername = '".$benutzername."' AND kennwort = md5('".$kennwort."') ");
if(mysql_num_rows($mysql) == 1) {
$_SESSION['success'] = true;
}else{
return false;
}
}
function angemeldet() {
if($_SESSION['success'] == true) {
return true;
}else{
echo "Sie sind nicht angemeldet";
}
}
?>
|
|
|
PHP Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php
include("inc.php");
if($_POST['sender']) {
if($_POST['benutzername'] != '') {
$_SESSION['benutzername'] = $_POST['benutzername'];
$kennwort = $_POST['kennwort'];
internal($_SESSION['benutzername'],$kennwort);
if($_SESSION['success'] == true) {
header("Location: intern.php");
}else {
echo "Benutzerdaten sind Fehlerhaft";
}
}
}
?>
<html>
<head></head>
<body>
<form method="post" target="_self">
<table align="center" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2">Anmelden</td>
</tr>
<tr>
<td>Benutzername :</td>
<td><input type="text" name="benutzername" size="30" maxlength="40"></td>
</tr>
<tr>
<td>Kennwort :</td>
<td><input type="password" name="kennwort" size="30" maxlength="40"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="sender" value="Anmelden"></td>
</tr>
</table>
</form>
</body>
</html>
|
|
|
PHP Source code |
1 2 3 4 5 6 7 8 9 10 |
<?php
include("inc.php");
angemeldet();
?>
<html>
<head></head>
<body>
Du bist drin das ist ja einfach ^^ <a href="logout.php">Logout</a>
</body>
</html>
|
|
|
PHP Source code |
1 2 3 4 |
<?php
include("inc.php");
$_SESSION['success'] = false;
?>
|
This post has been edited 2 times, last edit by "boehseronkel" (Sep 22nd 2005, 10:43pm)
Sollte auch Funktionieren Greeetz Sven|
|
PHP Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
class login{
/* username, passwort und user_id werden nach DB-Prüfung gesetzt */
var $username;
var $passwort;
var $user_id;
/* Variable zur Ausgabe */
var $output;
/* Konstruktor Methode */
function login() {
if(isset($_SESSION["user_id"])) {
$this->output = "Du bist bereits eingeloggt";
}
else {
/* Falls bereits ein Cookie besteht, dann ... */
if(isset($_COOKIE["login"]) || $_COOKIE["login"] != 0) {
$this->check_cookie();
}
/* Falls kein Cookie bestand, aber ein Formular zum Login ausgefüllt wurde, dann ... */
else if(isset($_POST[username]) && isset($_POST[passwort])) {
$cookie_inhalt.=$_POST[username];
$cookie_inhalt.=":";
$cookie_inhalt.=md5($_POST[passwort]);
setcookie ("login",$cookie_inhalt);
$this->check_user($_POST[username],md5($_POST[passwort]));
}
}
echo $this->output;
}
/* Prüfung der Daten des Cookies oder des Formulars */
function check_user($new_username,$new_passwort){
$result=mysql_query("SELECT user_id FROM user WHERE nick = '$new_username' && pass = '$new_passwort'");
$row = mysql_fetch_array($result);
if($row == 0) {
$this->output.= "<b><font color=\"#990000\">User/Passwortüberprüfung nicht erfolgreich</font></b>";
}
else {
$this->user_id = $row[user_id];
$this->username = $new_username;
$this->passwort = $new_passwort;
$this->output.= "<b><font color=\"#009900\">User/Passwortüberprüfung erfolgreich!</font></b><br>";
$this->session_reg();
}
}
/* Daten werden aus dem Cookie ausgelesen */
function check_cookie() {
$cookie = $_COOKIE["login"];
$userdaten = explode(":",$cookie);
$this->check_user($userdaten[0],$userdaten[1]);
}
/* Die user_id wird in der SESSION registriert */
function session_reg(){
$_SESSION["user_id"] = $this->user_id;
$this->output.= "\$_SESSION[\"user_id\"] = " . $_SESSION["user_id"];
}
/* Logout: Session wird zerstört und Inhalt des Cookies auf 0 gesetzt */
function logout(){
session_destroy();
setcookie ("login","0");
}
}
|
|
|
PHP Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
<?php
@session_start();
@mysql_connect("HOST","USER","PASS");
@mysql_select_db("DB");
function check_string($string) {
// erlaubte zeichen a-z,A-Z,0-9,-,_
if((preg_match('/^[a-zA-Z0-9\-\_]+$/',$string))) return true;
return false;
}
function login($benutzername,$kennwort,$modus=1,$cookie_gelesen=1) {
// ############# Konfiguration start #############
// ### Cookies ###
// Name des Cookies
$conf['cookie_name'] = "login_cookie";
// Ablaufzeit des Cookies (1 Monat)
$conf['cookie_zeit'] = time()+3600*24*7*4;
// Inhalt des Cookies (Wird im spaeterem Verlauf festgelegt)
$conf['cookie_inhalt'] = "";
// ### Sonstiges ###
// Modus ( 1 = Session und Cookie setzen / 2 = Session ohne Cookie setzen )
$conf['modus'] = $modus;
// CookieSet ( 1 = Benutzername und Kennwort sind nicht aus einem Cookie entnommen / <1 = Benutzername und Kennwort sind einem Cookie entnommen somit ist das Kennwort schon verschluesselt )
$conf['cookie_gelesen'] = $cookie_gelesen;
// ### Variablen ###
// Benutzername
$vars['benutzername'] = htmlspecialchars(trim($benutzername));
// Kennwort
$vars['kennwort'] = htmlspecialchars(trim($kennwort));
// ############# Konfiguration ende #############
// Ist der Benutzername oder das Kennwort "leer" oder sind ungueltige Zeichen im String dann gib ein false wert zurueck
if(strlen($vars['benutzername']) == 0 OR strlen($vars['kennwort']) == 0 OR !check_string($vars['benutzername']) OR !check_string($vars['kennwort'])) {
return false;
}else {
// Ist das Kennwort NICHT aus einem Cookie dann muss es mit md5 verschluesselt bzw. verhasht werden
if($conf['cookie_gelesen'] == 1) {
$vars['kennwort'] = md5($vars['kennwort']);
}
// SQL Abfrage ob benutzername und kennwort gleich den in der Datenbank sind
$sql = @mysql_query("SELECT benutzer_id FROM tbl_benutzer WHERE benutzername = '".$vars['benutzername']."' AND kennwort = '".$vars['kennwort']."' ");
// Ist die Abfrage erfolgreich dann check den Modus
if(@mysql_num_rows($sql) == 1) {
if($conf['modus'] == 1) {
// Cookie Inhalt wird aus benutzername@kennwort zusammengebaut
$conf['cookie_inhalt'] = $vars['benutzername']."@".$vars['kennwort'];
// Cookie wird gesetzt
@setcookie($conf['cookie_name'],$conf['cookie_inhalt'],$conf['cookie_zeit']);
// Session für den login wird gesetzt
$_SESSION['success'] = true;
return true;
}else {
// Session für den login wird gesetzt
$_SESSION['success'] = true;
return true;
}
}else {
// SQL Abfrage hat nicht geklappt
return false;
}
}
}
|
|
|
PHP Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
<?php
// Pruefen ob der Browser Cookies akzeptiert
if(isset($_COOKIE['browser_check'])) {
$browser_check = true;
}elseif($_GET['check'] != 1) {
@setcookie("browser_check","set",time()+3600);
header("Location: index.php?check=1");
}
include("inc.php");
// Wenn $_GET['logout'] gesetzt ist dann loesche $_SESSION['success']
if(isset($_GET['logout'])) {
// Wenn $_COOKIE['login_cookie'] gesetzt ist dann loesche Cookie
if(isset($_COOKIE['login_cookie'])) @setcookie("login_cookie",0,time()-3600);
// Loesche SESSION['success']
unset($_SESSION['success']);
//Leite weiter zur index.php
header("Location: index.php");
}
// Wenn $_COOKIE['login_cookie'] gesetzt ist dann ueberpruefe den Inhalt und fuehre ggf. den auto login aus
if(isset($_COOKIE['login_cookie']) AND !isset($_POST['sender']) AND !isset($_GET['logout'])) {
// Hole den Inhalt aus dem Cookie
$cookie_inhalt = $_COOKIE['login_cookie'];
// Trenne benutzername und kennwort anhand des Trennzeichens @
$cookie_inhalt = explode("@",$cookie_inhalt);
// Gehe mit Cookiedaten in die login funktion
login($cookie_inhalt[0],$cookie_inhalt[1],1,2);
}
// Wenn Sumbit gepostet wurde
if(isset($_POST['sender'])) {
// Wenn Cookie setzen "aktiv"
if($_POST['co'] == 'on') {
if(login($_POST['username'],$_POST['password']) == false) {
echo "Sry da hat was nicht geklappt";
}
}else {
if(login($_POST['username'],$_POST['password'],2,1) == false) {
echo "Sry da hat was nicht geklappt";
}
}
}
?>
<html>
<head>
<title>test</title>
</head>
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" >
<?php
if(isset($_SESSION['success'])) {
echo "drin<br><a href='index.php?logout=true'>Logout</a>";
}else {
?>
<form target="_self" method="post" name="main">
<?php if(!isset($browser_check)) echo "Ihr Browser akzeptiert keine Cookies, daher wird dieses Feld deaktiviert<br><br>"; ?>
User : <input type="text" name="username"><br>
Pass : <input type="text" name="password"><br>
Cookie (ja/nein) : <input type="checkbox" name="co" <?php if(!isset($browser_check)) echo "disabled";?>><br>
<input type="submit" name="sender">
</form>
<?php } ?>
</body>
</html>
|

|
|
PHP Source code |
1 2 3 4 |
<?
$benutername = $_POST["username"];
echo "$bentzername"
?>
|

Hallo COM,
habe nen kleiner verbesserungsvorschlag
Wie wäre es mit einen automatischen TimeOut?
Also das man nach 15minuten inaktivität ausgelogt wird?
Ich benutze das bei meinen Login Scripten immer da ich es für meine Statistik brauche (nich das ein user jahrelang eingelogt bleibt)
Kann sein das es in deinen Script schon vorhanden ist. Falls ja tut mir leid![]()


Hallo COM,
ja ok in dem falle hast du recht da wäre das etwas überflüssig.
Es sei den du logst ihn aus. Der Cookie oder die Session - je nachdem was verwendet wird - wird nicht gelöscht außer beim manuellen logout und dann wird die verbindung erneut aufgebaut und er automatisch eingeloggt
Weil ich habe bei mir immer anzeigen wie viele user und welcher user online ist von daher finde ich sowas wichtig.
mfg
Mike1990
Forum Software: Burning Board® 3.1.6, developed by WoltLab® GmbH