Login ohne Cookies

@suf*****: Muss ich da was an die links anfügen oder wie ist das?
Bei mir gehts, bei meinem Freund nicht.

@Mohag: Wie kann ich das auf mein Script anwenden, du hast ja allles oben.
 
Hallo schlurpsel,

all deine Links sollten folgendermaßen aussehen:

PHP:
index.php?'.session_name().'='.session_id().'

oder

PHP:
index.php?id=1&'.session_name().'='.session_id().'

session_name() liefer dir den Namen der aktuellen Session zurück, session_id() die ID eben dieser Session. Mehr Informationen über Sessions bekommst du übrigens hier.
 
habs eingefügt, geht leider trotzdem nicht.

Könnt ihr mir nicht sagen, was ich ändern muss, damit der Login ohne Cookies geht, oder kennt jemand ein Tutorial für nen Login ohne Cookies?

Danke
schlurpsel
 
K, fangen wir mal an..

Ich weiß nicht mehr ob ichs schon hier oder anderso wo gepostet habe, abe wenn, nicht so ausführlich.

Ein login ohne Cookies ist leicht zu realisieren, du musst nur immer daran denken das
du die eintscheidenen Strings an die URL anhängst.


Aber zuvor zu deinem Login:

Natürlich, Datenbank Verbindung herstellen.

Dann die Agfragen mit dem aus einem Loginformular übergebenen Daten starten.

PHP:
//Deine Variablen
$Nn = $_POST['Nick'];
$Piwo = md5($_POST['Pass']);

//Das Query natürlich nitcht vergessen!!
$Check = mysql_query("SELECT * FROM user");

//nun die Abfrage solang $Check kein EOF zeigt
 while ($row = mysql_fetch_assoc($Check)) {
    if ($row['nick'] == $Nn & $row['pw'] == $Piwo) {

K, nun noch die ´Strings aus der DB fischen und anhängen

PHP:
//Wenn der Schlüssel Nicht leer ist
   if ( $row['ses'] != ""){
      $Header = "?Nick=".$Nn."&SES=". $row['ses'];}

//sonst nur den Nick anhängen
   else {
      $Header = "?Nick=".$Nn;}
   header ("Location: ../index.php".$Header);
   break;
  }
//Wenn keine Übereinstimmung dann velassen und zurück zur Startseite

 else header ("Location: ../index.php");
}

//Und nun noch das script verslassen
exit;

Nun musst du nur noch in deine htm Seiten eine fangen.php includen die wie
folgt aussieht

(fangen.php)
PHP:
//explizite abfrage nach dem Nick
<?php if(isset($_GET['Nick'])) {
        $Header = "?Nick=".$_GET['Nick'];

//explizite Abfrage nach dem Schlüssel
          if(isset($_GET['SES'])){
            $Header = "?Nick=".$_GET['Nick']."&SES=".$_GET['SES'];
          }
      }
?>

Nun noch im html Code den header an deine Links anhängen

HTML:
include ("../fangen.php");

<a href="../neueSeite.htm<?php echo $Header; ?>" ... > Link </a>

Und schon hast du ne dreistufige Zugangsberechtigung.

Eins, keine Recht (ohne Nick und SES)
Zwei, teilrechte (nur Nick)
und
Drei, alle rechte für User (Nick und SES)

Du kannst das ganze dann noch auf Admin erweitern indem du im Code noch
eine weitere Abfrage einfügst.

Viel spaß beim weitercoden ;)

Mohag
 
Zuletzt bearbeitet:
Du müsstet eigentlich nur die genannten einstellungen an PHP auf dem Server vornehmen damit es funktioniert. Dann merkt PHP von alleine, dass COOKIES nicht gehen und hängt die Session an.

Dann müsstest du dich um nichts kümmern. Aber ich versteh nicht, wieso das bei dir nicht geht.
 
hey,
hab diese dateien gemacht:

login.php
PHP:
<?php
$connectionid = mysql_connect ("", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  
//Deine Variablen 
$Nn = $_POST['Nick']; 
$Piwo = $_POST['Pass']); 

//Das Query natürlich nitcht vergessen!! 
$Check = mysql_query("SELECT * FROM users"); 

//nun die Abfrage solang $Check kein EOF zeigt 
 while ($row = mysql_fetch_assoc($Check)) { 
    if ($row['nick'] == $Nn & $row['pw'] == $Piwo) {  
	
	//Wenn der Schlüssel Nicht leer ist 
   if ( $row['ses'] != ""){ 
      $Header = "?Nick=".$Nn."&SES=". $row['ses'];} 

//sonst nur den Nick anhängen 
   else { 
      $Header = "?Nick=".$Nn;} 
   header ("Location: test.php".$Header); 
   break; 
  } 
//Wenn keine Übereinstimmung dann velassen und zurück zur Startseite 

 else header ("Location: test..php"); 
} 

//Und nun noch das script verslassen 
exit;  

?>

formular.php
PHP:
<!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=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<form action="login.php" method="post">  
  Name: <input type="text" name="Nick" size="20"><br>  
  Kennwort: <input type="password" name="Pass" size="20"><br>  
  <input type="submit" value="Login">  
</form>  
</body>
</html>

test.php
PHP:
<!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=iso-8859-1" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php include ("fangen.php");?>

<a href="../neueSeite.htm<?php echo $Header; ?>" ... > Link </a>
</body>
</html>

fangen.php
PHP:
<?php
//explizite abfrage nach dem Nick 
 if(isset($_GET['Nick'])) { 
        $Header = "?Nick=".$_GET['Nick']; 

//explizite Abfrage nach dem Schlüssel 
          if(isset($_GET['SES'])){ 
            $Header = "?Nick=".$_GET['Nick']."&SES=".$_GET['SES']; 
          } 
      } 
?>

wenn ich mich jetzt über das Formular einlogge und bestätige, kommt die Datei login.php, allerdings nur weiß.
Was mach ich falsch?
schlurpsel
 
Das problem habe ich auch schon bemekert, kann am php liegen.

schau mal hier!!

PHP:
else
{
 header ("Location: test..php") //!!
}

Hab aber selber nach einem Umzug auf einen neuen Server das problem das er nicht mehr aus meiner .php zum checkn des users rausspringt, bei mir liegt es aber daran das die Dateien in einem Ordner sein müssen (denke ich, wegen den rechten).

zudem entschuldige ich mich erst einmal, mir ist da gestern beim denken ein kleiner fehler unterlaufen!!

Du musst die Codezeile

PHP:
if ($row['nick'] == $Nn & $row['pw'] == $Piwo)

in

PHP:
if ($row['nick'] == $Nn) {
  if ($row['pw'] == $Piwo) {

abändern damit es drei Stufen sind, und natürlich unten noch eine geschweift Klammer hinzufügen.

Mohag
 
Zurück