Login ohne Cookies

schlurpsel

Gesperrt
Login Problem

Hallo,
hab eine Login auf meiner Webseite aber folgendes Problem. Wenn ich mich einlogge, bin ich eingeloggt und kann geschützte Seiten öffnen.
Meldet sich mein Freund an, ist erst am anfang eingeloggt, also wenn er die Daten eingibt und den Login-Button drückt kommt, du bist eingeloggt, er kann dann allerdings nicht die geschützten Seiten öffnen. Es kommt er soll ich wieder einloggen.
An was kann das liegen, dass er nicht eingeloggt bleibt?
Danke
MfG
schlurpsel
 
arbeitet das Login mit Cookies?
Wenn ja, hat er die in seinem Browser akzeptiert?

Wenns das nicht ist poste am besten mal den Code
 
Denke auch das die SessionId nicht als Cookie beim Client gespeichert wird. Alternativ kannst du die SessionId als Parameter an deine URL hängen bzw. ihn dazu zwingen, das setzen von Cookies zu akzeptieren :-)...

Gruß Gerrit
 
hier der Code:
login.php
PHP:
<?php  
// Session starten 
session_start (); 

// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

$sql = "SELECT ".  
    "ID, Nickname, Nachname, Vorname ".  
  "FROM ".  
    "smv ".  
  "WHERE ".  
    "(Nickname like '".$_REQUEST["name"]."') AND ".  
    "(Kennwort = '".$_REQUEST["pwd"]."')";  
$result = mysql_query ($sql);  

if (mysql_num_rows ($result) > 0)  
{  
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array ($result);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["ID"];  
  $_SESSION["user_nickname"] = $data["Nickname"];  
  $_SESSION["user_nachname"] = $data["Nachname"];  
  $_SESSION["user_vorname"] = $data["Vorname"];  

 //echo '<link type="text/css" rel="stylesheet" href="style/site.css"/><a>Du bist jetzt  eingologgt und kannst die Menüpunkte links öffnen.</a>';
  header ('Location: eingeloggt.php');  
}  
else  
{ 
header ("Location: phplogin.php?loginfalse=yes");   
//  header ("Location: formular.php?fehler=1");  
}  
?>

eingeloggt.php
PHP:
<?php  
include ("checkuser.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>
<link type="text/css" rel="stylesheet" href="style/site.css"/>
</head>

<body>
<p><span class="text">Du bist jetzt eingeloggt und kannst die Menüpunkte des internen Bereichs betreten</span>.<br />
  <br/>
  <a href="logout.php">Ausloggen</a></p>
</body>
</html>

checkuser.php
PHP:
<?php  
session_start ();  
if (!isset ($_SESSION["user_id"]))  
{  
  header ("Location: phplogin.php?loginfirst=yes");  
}  
?>

logout.php
PHP:
<?php  
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.  
ob_start ();  

session_start ();  
session_unset ();  
session_destroy ();  

header ("Location: phplogin.php");  
ob_end_flush ();  
?>

In phplogin.php ist nur das formular zum eintragen der Daten.

Hoffe, das hilft,
Danke
schlurpsel

Denke auch das die SessionId nicht als Cookie beim Client gespeichert wird. Alternativ kannst du die SessionId als Parameter an deine URL hängen bzw. ihn dazu zwingen, das setzen von Cookies zu akzeptieren :-)...

Gruß Gerrit

wie soll ich das im Detail machen?

wie geht das genau, hab von sowas leider wenig Ahnung und auch noch nie davon gehört.
Bitte um deine Hilfe
schlurpsel
 
PHP:
if ($_SESSION["user_admin"] == 'nein') // ist was aus meinen loginscript..
{ 
  echo '<div style="color:red;">Du bist kein Admin!<a href="logout.php" >Weiter!!<br><br></div>'; 
  die;
}

So z.B. ansonsten musste halt die if Anwendung anpassen.

mfg Spikaner
 
versthe leider nicht, was du damit meinst. könnt ihr mir das für einen absoluten Laihen erklären, wie ich das machen kann, damit es auf jeden Fall funktioniert?
danke
schlurpsel
 
du erstellst in einer DB 2 Tabellen:
Users und Session

in Session kommt
userid - hash - timeout (also die 3 Spalten)

beim login lässt du überprüfen, ob der User exsitsiert... sollte der mit dem PW exsistieren wird eine sessionhash... in die Tabelle geschrieben und per header an die nächste Seite gesendet...

du musst dann aber jeden link so aussehen lassen (bspw.) http://www.example.com/index.php?session=[HIER DIE SESSION]

ich hoffe hab es verständlich geschrieben und dir einen Gedanken anstoss geben... aber hast auch nicht unbedingt viel geschrieben.... deshalb hier keine Codes sondern nur textlich...

MfG Gunah
 
hab leider sehr wenig Ahnung von php un weis daher nicht, wie ich das umsetzen soll. Könntet ihr mir einfach ein paar Codes oder Links posten?
danke
schlurpsel
 
Du deaktivierst diverse Session optionen in PHP und hängst die Session an die URL an statt an den COOKIE.

Genaue einstellungen kenn ich grad leider nicht
 
Zurück