Auto-Login, wie? Cookies löschen sich....

Das sah in dem ersten Post von dir irgendwie anders aus.
Kann ja auch sein das man PW gleich selber im MD5 Format eingeben muss?

Nein Scherz, aber dein Loginscript ist zu tiefst verwirrend.

...................

Und in der index.php habe ich die Cookies drinne:
PHP:
<?php
session_start();
setcookie("User", $_SESSION[user], time()+3600*24*30); // 1 Monat
setcookie("Pass", $_POST[pass], time()+3600*24*30); // 1 Monat

// Logout
if($_GET[action] == logout) { 

	unset($_SESSION[access]);
	unset($_SESSION[user]);
	echo "<meta http-equiv=\"refresh\" content=\"0; URL=?cat=news\" />";
   
}......
Gruß
Dennis
 
Das ist die aktuelle index.php
PHP:
if($_SESSION[access] == TRUE) {
setcookie("Username", $_SESSION[user], time()+3600*24*30); // 1 Monat
setcookie("Passwort", $_SESSION[pass], time()+3600*24*30); // 1 Monat
}

Und wenns login erfolgreich war passiert das:

PHP:
$_SESSION[access] = TRUE;
$_SESSION[user] = $aus[user_name];
$_SESSION[pass] = $aus[user_password];

Ja aber warum geht das automatische Login trotzdem nicht?

Grüßle Dennis ^^
 
Moment mal. Wenn es eh in der Session ist und darüber läuft, dann kannst du am Anfang vom Skript das direkt in die Session packen, oder nicht?

PHP:
if (
     !isset($_SESSION['user'])
  && !empty($_COOKIE['User'])
  && !empty($_COOKIE['Pass'])
)
{
  $_SESSION['user'] = $_COOKIE['User'];
  $_SESSION['pass'] = $_COOKIE['Pass'];
}

Alles andere danach laufen lassen als wäre man schon nach dem Login.
 
Wessen Laufzeit? Die der Session oder der Cookies?

Bei dem von mir genannten sind die Daten in den Cookies und wenn man neu auf die Seite kommt und in der Session keine Benutzerdaten stehen, werden die von den Cookies eingefügt, sofern es welche gibt.
 
Ok, habe aber fast einen Weg gefunden.

PHP:
$uid = isset($_POST[user]) ? $_POST[user] : $_SESSION[user];
$pwd = isset($_POST[pass]) ? $_POST[pass] : $_SESSION[pass];

Hier wird das hinterlegt, habe draus:

PHP:
$uid =$_COOKIE[Username];
$pwd = $_COOKIE[Password];

Und man war automatisch eingeloggt, blos man konnte sich nicht mehr ausloggen :D
Und die abgeschickten Daten können nun auch nicht mehr überprüft werden.

Also wie bekomme ich hier:
PHP:
$uid = isset($_POST[user]) ? $_POST[user] : $_SESSION[user];
$pwd = isset($_POST[pass]) ? $_POST[pass] : $_SESSION[pass];

Meine Cookies rein? Das die auch mitgeprüft werden. Hab schon so viel probiert eh. Ich bin echt am verzweifeln.

Gruß
Dennis
 
Ich entschuldige mich nochmals für den Doppelpost, habe aber hier für alle anderen mal meine Lösung ^^

login.php
PHP:
<?php

function show_login() {
?>
  
  <div align="center">
  <p><form method="post" action=""><input type="text" size="13" id="login" value="Benutzer" name="user" onclick="if(this.value == 'Benutzer') this.value=''" onblur="if(this.value == '') this.value='Benutzer'" />
    <input type="password" size="13" id="login" value="Passwort" name="pass" onclick="if(this.value == 'Passwort') this.value=''" onblur="if(this.value == '') this.value='Passwort'" />
    <input type="submit" value="Login" id="login_submit" name="login" /> <a href="?cat=registration" class="login">Register</a> <a href="?cat=passlost" class="login">PW?</a>
  </form></p>
  </div>
  	
<?php
}

if (
     !isset($_SESSION['user'])
  && !empty($_COOKIE['Username'])
  && !empty($_COOKIE['Passwort'])
)
{
  $_SESSION['user'] = $_COOKIE['Username'];
  $_SESSION['pass'] = $_COOKIE['Passwort'];
}


if($_SESSION[access] == TRUE) {
  // Timestamp eintragung	
  $time = time();
  mysql_query("UPDATE users SET timestap = '$time' WHERE user_name= '$_SESSION[user]'") or die(mysql_error());
  
  // Anzeige nach dem Login
  $res = mysql_query("SELECT * FROM users WHERE user_name='$_SESSION[user]'");
  $aus = mysql_fetch_array($res);
	   
  echo "<p style=\"padding-top:3px;\"><b><img src=\"http://www.tutorials.de/forum/images/login/profil.png\" width='13' height='13' /> ";
  if($aus[user_nick] !== "") echo "<a href=\"?cat=profil\" class=\"login\"><span style=\"font-size:10px; color:#FFF;\">$aus[user_nick]</span></a>";
  else echo "<a href=\"?cat=profil\" class=\"login\"><span style=\"font-size:10px; color:#FFF;\">$aus[user_vorname]</span></a>";

  echo " <img src=\"http://www.tutorials.de/forum/images/login/verwaltung.png\" width='13' height='13' /> ";
  echo "<a href=\"?cat=profil_view\" class=\"login\">Verwaltung</a> <img src=\"http://www.tutorials.de/forum/images/login/msg.png\" width='13' height='13' /> ";
  echo "<a href=\"?cat=msg\" class=\"login\">Nachrichten</a> <img src=\"http://www.tutorials.de/forum/images/login/logout.png\" width='13' height='13' /> ";
  echo "<a href=\"?cat=news&action=logout\" class=\"login\">Logout</a></b></p>";
 

}
else {

      $uid = isset($_POST[user]) ? $_POST[user] : $_SESSION[user];
	  $pwd = isset($_POST[pass]) ? md5(md5($_POST[pass])) : $_SESSION[pass];

		if(!isset($uid)) show_login();
		
	  else {
	  
    		$res = mysql_query("SELECT * FROM users WHERE user_name='$uid'");
    		$aus = mysql_fetch_array($res);
		
    		if(mysql_num_rows($res) == "0") {
    			
    		echo "<p><span style=\"color:red;\">Meldung:</span> Zugangsdaten fehlerhaft!</p>";
    		echo "<meta http-equiv=\"refresh\" content=\"2\">";
    		
    		}
    		else {
    			if($uid == $aus[user_name] && $pwd == $aus[user_password]) {
    			
    				if($aus[rank] == "1" OR $aus[user_activated] == "1") {
    				
    					echo "<p><span style=\"color:red;\">Meldung:</span> Account gesperrt!</p>";
    				
    				}
    				else {
    				    				
    					$_SESSION[access] = TRUE;
    					$_SESSION[user] = $aus[user_name];
    					$_SESSION[pass] = $aus[user_password];
    					
    					$datum = date("d.m.Y");
     				    $uhrzeit = date("H:i");
      
                        mysql_query("UPDATE users SET user_visit = '$datum - $uhrzeit' WHERE user_name= '$_SESSION[user]'") or die(mysql_error()); 
    					echo "<meta http-equiv=\"refresh\" content=\"0; URL=?cat=profil_view\" />";
    					
    				}
    			
    			}
    			else {
    			  session_destroy();
    				echo "<p style=\"font-size:9px;\"><span style=\"color:red;\">Meldung:</span> Zugangsdaten fehlerhaft!</p>";
    				echo "<meta http-equiv=\"refresh\" content=\"2\">";
    			
    			}
    				
    		}
	
	}
	
}


?>

index.php
PHP:
<?php
session_start();

if($_GET[cat] == "") header("Location: ?cat=news");
{
if($_SESSION[access] == TRUE) {	
setcookie("Username", $_SESSION[user], time()+3600*24*30); // 1 Monat
setcookie("Passwort", $_SESSION[pass], time()+3600*24*30); // 1 Monat
}

require("config.php");

// Logout
if($_GET[action] == logout) { 

	session_destroy();
	unset($_COOKIE["Username"]);
	unset($_COOKIE["Passwort"]);
	echo "<meta http-equiv=\"refresh\" content=\"0; URL=?cat=news\" />";
   
}
}

So das ist eine Art danke für alle :)

Ich wollte noch fragen, warum ich mich nicht ausloggen kann? Die Cookies werden nicht gelöscht....
Ob mit
PHP:
unset($_COOKIE["Username"]);
oder mit
PHP:
setcookie("Username", "", time()-3600*24*30); // 1 Monat

Erst wenn ich ein Doppelklick mach geht es...(Cookies bleiben aber erhalten) Ich will aber kein Windows programmieren sondern eine Page :D
 
Zurück