will von URL auf cookie umsteigen, bei loginscript

Kurt Cobain

Erfahrenes Mitglied
Tag
Allerseits

Hab da mal ne frage zu der sessionID mit cookies.
ich Hab mit n Loginscript gemacht, aber bisher die SID mit der URL
übergeben, das will ich jetzt ändern.


das bisherige LoginScript:
PHP:
<form action="<? $PHP_SELF; ?>" method="post" name="form">
Username:<
<input type="text"size="60" maxlength="40" name="username">

Passwort:
<input type="password" c size="60" maxlength="40" name="password">

<input type="Submit" name="submit" value="login">
</form>

<?

// Datenbankverbindung aufbauen
include("./connection.php");// mysql connection includen

$user = $_POST['username'];
$md5 =  md5($_POST['password']);


$abfrage = "SELECT * FROM users WHERE user = '$user' AND passwordmd5 =  '$md5'";
$ergebnis = mysql_query ($abfrage) or die (mysql_error());


if (mysql_num_rows($ergebnis) > 0){

$row = mysql_fetch_array($ergebnis);
$_SESSION["user"] = $row["user"];

header ("Location: profil.php?".session_name()."=".session_id()."");
}

else{
echo "lslslslslslslsl";
}



profil.php:
PHP:
<?
session_start();
echo $_SESSION['user'];
?>


funktioniert ganz prima

jetzt will ich aber lieber auf cookies umsteigen, weil mir das besser gefällt.

frage:
muss ich beim loginscript einfach ein cookie setzten, mit
session_name() = session_id()
wenn ja, muss ich bei profil.php etwas ändern


danke schonmal
 
Um den Cookie musst du dich nicht kümmern, der wird automatisch angelegt, sobald du die Session startest.

Du musst nur sicherstellen, dass die Option session.use_cookies aktiviert ist(bzw. session.use_only_cookies, wenn die Session-ID ausschliesslich in Cookies gespeichert werden soll )
 
session.use_cookies ist standardmässig aktiviert.

session.use_only_cookies kannst du per ini_set() aktivieren, falls es deaktiviert ist. Ob dies der Fall ist, sagt dir phpinfo().

Ob der Code so in Ordung ist, hab ich nicht gross nachgeschaut, du solltest dir aber noch die Konfigurationsoption session.use_trans_sid anschauen, wenn du nicht ausschliesslich mit Cookies arbeiten willst.... das erspart dir ne Menge Arbeit.

und was heisst der cookie wird automatisch angelegt
... er ist da, sobald du session_start() im Skript zu stehen hast, von mir aus nenne es Hexerei :-)
 
Erstmal folgendes: Halte Dich bitte an Gross- und Kleinschreibung.

Jetzt mal ein Beispiel:
a.php
PHP:
session_start();
$_SESSION['test']='test';
header("Location:b.php");
b.php
PHP:
session_start();
echo $_SESSION['test'];
 
Darum brauchst Du Dich nicht kuemmern.
Der Server legt eine kleine Datei an und es wird ein Session-Cookie geschrieben.
In der Datei auf dem Server stehen die Inhalte der Session, und im Session-Cookie die SessionID.
 
Zurück