Autologin einbauen

ensid

Grünschnabel
Moin,

Ich habe ein PHP-Skript bestehend aus mehreren Dateien, das mit PHP und MySQL zusammenarbeitet.
Eigentlich ist es ein stinknormales PHP-Skript; hat ein einfaches Userlogin wo sie ihr Profil ändern können (die Seite hat kein Adminberreich).

Da es ja ständig nervig ist, dass man sich bei jedem Besuch neu anmelden muss, wollte ich mal fragen, ob mir einer erklären könnte oder ein Suchergebniss etc. schicken könnte, wo gut steht, wie ich sowas einbauen kann? Oder ob es auch was anderes gibt, was die Cookies speichert?

Gruß
 
Prinzipiell sind Cookies die einzige Möglichkeit Informationen auf dem Client speichern zu können. Und diese Informationen sind erforderlich, möchte man einen bestimmten Benutzer identifizieren.

Was Cookies sind, findest du bei Wikipedia, wie sie in PHP gesetzt und ausgewertet werden, findest du im PHP-Handbuch.
 
ja steht ja auch nur das ist es mit setcookie() aufrufen und setzen kann und mit $_COOKIE die Cookies speichern kann!

Aber wie das aufgebaut wird, weiß ich immer noch nicht und wie es richtig gesetzt wird, gibts da keine Beispiele oder kann mir einer eins geben? Hab mal meine Login datein in anhang mit reingepackt!
 

Anhänge

Das hier ist eine alte Version von dem was auf meiner Website passiert:
PHP:
if (($_COOKIE["id"]) && ($_COOKIE["password"]) && (!$_SESSION["id"]))
	{
		$id=$_COOKIE["id"];
		$password=$_COOKIE["password"];
		$users=mysql_query("select * from users where id='$id'",$db);
		$user=mysql_fetch_assoc($users);
		if ($user[password]==$password)
			{
				$_SESSION["id"]=$id;
			}
	}
 
Die Frage ist ja, welche Daten benötigt werden, um sich einzuloggen. Meistens sind es nur Benutzernamen und Hash-Wert des Passworts. Demnach wäre Folgendes möglich:
PHP:
<?php

	$loggedin = false;
	if( isset($_COOKIE['username']) && isset($_COOKIE['password']) ) {
		$query = "
			SELECT
			        1
			  FROM
			        …
			  WHERE
			        `username` = '".mysql_real_escape_string($_COOKIE['username'])."'
			    AND `password` = '".mysql_real_escape_string($_COOKIE['password'])."'
			";
		$result = mysql_query($query);
		if( mysql_num_rows($result) == 1 ) {
			$loggedin = true;
		}
	}
	if( $loggedin == true ) {
		setcookie('username', 'Benutzername', strtotime('+1 month'));
		setcookie('password', 'Hash-Wert des Passworts', strtotime('+1 month'));
	}

?>
Der Quellcode sieht übrigens grausam aus.
 
oheia, habs versuch in meine seite einzufügen(mit einstellung(änderungen), kommen keine fehler, aber speicher tut er es auch nicht!
Oder kann es sein das der code dort reinmuss?
Code:
if (($_COOKIE["id"]) && ($_COOKIE["password"]) && (!$_SESSION["id"]))
    {
        $id=$_COOKIE["id"];
        $password=$_COOKIE["password"];
        $users=mysql_query("select * from users where id='$id'",$db);
        $user=mysql_fetch_assoc($users);
        if ($user[password]==$password)
            {
                $_SESSION["id"]=$id;
            }
    }
$reg_anz = "ja";
$loggen = $HTTP_POST_VARS['loggen'];
if($loggen == 3){$ausloggen = 3;$vote=1;}
if($ausloggen == 1){require('ausloggen.php');}
require("login.php");
require("logoutall.php");
require("check_logdat.php");
//Funktion darf nur einmal im gesamten Programm geladen werden
function my_nl2br ($text) {
  $retvalue = "";
  for ($ii = 0; $ii < strlen($text); $ii++){
    if ($text[$ii]!=chr(13)) # diese Zeile fehlt wohl in der Originalroutine
      $text[$ii]=="\n" ? $retvalue .= "<BR>" : $retvalue .= $text[$ii];
  }
  return $retvalue;
}
//Einlogfenster
$login_anzeige = '

		  <table width="114" border="0" class="" cellpadding="0" cellspacing="0" align="center">
          <tr><td valign="top"> <div align="center">
                  <font size="2"><a href="index.php?ausloggen=1&sid='.$sid.'"><strong>Ausloggen</strong></a></font></p></div></td></tr></table>';
//URL Endungen festlegen
$link_sid = "&sid=".$sid;
$link_action = "?action=";
if($sid == ""){$link_sid = "";
//Registrierungs BUTTON Anzeigen ja/nein
$login_anzeige = '<form name="form2" method="post" action="" onsubmit="return Form_Login(this);">
          <table width="110" cellpadding="0" cellspacing="0" border="0">
</td></table>
		
  <table width="110" class="" cellpadding="0" cellspacing="0"  border="0">
    <tr>
      <td> <div align="left"><font size="1"><strong>Flirtname:</strong></font><br>
          <input name="login_name" class="inputfeld" type="text" id="login_name" size="10" maxlength="12">
          <br>
        </div></td>
    </tr>
    <tr>
      <td><div align="left"><font size="1"><strong>Passwort:</strong></font><br>
          <input name="login_pass" class="inputfeld" type="password" id="login_pass" size="12">
        </div></td>
    </tr>
    <tr>
      <td>
	  <input type="hidden" name="loggen" value="3">
	  <input type="submit" class="button" name="Submit2" value="Login"></td>
    </tr>
    <tr>
      <td><div align="right">
          <p align="right"><font size="1"><a href="index.php?action=anmeldung">Registrieren</a><br><a href="index.php?action=passforget">
            Login vergessen?</a></font></p>
        </div></td>
    </tr>
  </table>
</form>';
}

ich weiß echt nicht weiter!:(

Gruß
 

Neue Beiträge

Zurück