Login ohne Cookies

gibt's denn kein Login-Tutorial oder sowas, wo man keine Cookies braucht, oder auch funktioniert, wenn Cookies deaktivert sind.
Oder kann mir jemand meinen Code so ändern, dass er auch bei deaktiverten Cookies geht?
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 = '".$_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");  
}  
?>

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

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>

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 ();  
?>

Hoffe auf Hilfe
Danke
schlurpsel
 
Zuletzt bearbeitet:
könnt ihr mir jetzt noch bitte zeigen, wie ich das in mein Script einbaue, vllt an einem Beispiel oder sowas, wäre echt nett.
danke
schlurpsel
 
entweder du hast es in eine settings.php und bindest diese überall mit include ein

oder du haust es in eine bootstrap datei (zentrale datei - index.php z.b.)
 
verstehe es leider immer noch nicht, kannst du es für einen Laihen erklären, was ich wo einfügen muss oder was ich wo ersetzten muss, vllt. an nem Beispiel, hab ja alles gepostet.^^ Wäre echt nett.
Danke
schlurpsel
 
Wenn nicht, dann gib doch beim login einen md5 Hash an die URL - Leiste, die kannst du dann immer mit GET abfragen!!

Baust du dir ne PHP Headerseite die du in jeder HTM includest und so nur eine mal die arbeit des Codens! ;)

Lg Mohag
 
also normalerweise mache ich sowas ja nicht, weil foren nicht dazu benutzt werden sollen ganze codes abzugreifen, sondern um fragen zu seinem code zu stellen.
und wenn du wirklich mit den bisherigen posts garnix anfangen kannst, und meine vorredner haben teilweise sehr gute erklärungen geliefert, dann solltest du dir überlegen, ob du im fachbereich programmieren so richtig bist.
auch php programmieren heißt entwickeln und manchmal heißt entwickeln eben auch ausprobieren.

gute tutorials bietet im übrigen www.webmaster-resource.de!

so... aber ich will dir mal helfen :)

also,

lege dir eine settings.php an mit folgendem inhalt:
Code:
<?php
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '0');
ini_set('session.use_trans_sid', '1');
?>

füge nun folgenden code in all deine dateien ganz oben (erste zeile) ein:
Code:
<?php include("settings.php"); ?>
<!-- RESTLICHER CODE UND HTML -->

so kannst du deine version von einem session login ohne weiteres verwenden.

*UPDATE*
achso... hier im forum wird übrigens auch auf schöne tutorials verwiesen... nicht umsonst heißt das hier tutorials.de :)
http://www.tutorials.de/forum/php/260890-php-tutorials.html
 
Zuletzt bearbeitet:
danke für das echt nett,
wenn ich nun das mache, was du geschrieben hast, muss ich dann sonst an meinem anderen Code nichts ändern und es geht?
Tut mir echt Leid dass ich das nicht verstehe, weiß au nicht wieso habe schon ein Tutorial mehrmals durchgelesen. Nochmal danke.

UPDATE:
habs jetzt eingefügt, geht leider immer noch nicht. *heul*

so sieht meine internen Datei aus:
PHP:
<?php  
include ("checkuser.php");  
?>    
<?php include("settings.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">Hier k&ouml;nnt ihr interne Dateien der SMV downloaden.</span><br />
  <br/>
<a href="logout.php">Ausloggen</a></p>
</body>
</html>
 
Zuletzt bearbeitet:
in jeder datei in der du eine $_SESSION['var'] abfragen möchtest solltest du die settings.php auf die art und weise wie beschrieben einbinden.


AB HIER KOMMT WAS NEUES, WAS ABER DAS LEBEN IM NACHHINEIN VEREINFACHT
auf grund dieses umstandes würde ich aber empfehlen alles aus einer index.php datei aufzurufen.

bevor du fragst...

die vorgehensweise ganz grob beschrieben:

zunächst alles was in den header muss. dann über eine switch case die entsprechende seite abrufen und dann alles was in den footer muss.

grobbeispiel:
Code:
<?php
include("config.inc.php");
include("dbconnect.inc.php");
include("settings.inc.php");
include("functions.inc.php");
?>

<!-- HTML GERÜST MIT HEADER, BODY, ETC... -->

<?php
switch($_GET['content']) {
case "home": include("startseite.php");
break;
case "news": include("news.php");
break;
default: include("startseite.php");
break;
}
?>

<!-- WIEDER BISSL HTML WENN ES NÖTIG IS UND HALT NEN FOOTER MIT COPYRIGHT ODER SOWAS -->

UPDATE:
habs jetzt eingefügt, geht leider immer noch nicht. *heul*

so sieht meine internen Datei aus:
PHP:
<?php  
include ("checkuser.php");  
?>    
<?php include("settings.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">Hier k&ouml;nnt ihr interne Dateien der SMV downloaden.</span><br />
  <br/>
<a href="logout.php">Ausloggen</a></p>
</body>
</html>

wäre schön, wenn du richtig lesen würdest, wenn ich dir schon deinen code zusammenstelle :) die settings.php muss in die erste zeile aber in der datei die du hier auflistet muss es überhaupt net hin. nur in dateien in denen explizit $_SESSION[]-Variablen abgefragt werden! vorallem halt bei der login.php
 
Zurück