Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Automatisches LogIn [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Automatisches LogIn


 
Tpercon
06-09-2002, 20:24 
 
Wie realisiere ich es, dass sobald ein User eine bestimmte Seite betritt, er automatisch eingeloggt wird (wie in jedem Forum üblich).
Dazu habe ich beim LogIn einfach Cookies gesetzt, Name und Passwort, was auch funktioniert.
Auf der Seite habe ich dann zuerst geprüft, ob eine Session für den User besteht, falls nicht wollte ich die Cookies einlesen und nach einer Überprüfung ob Name und Passwort richtig ist den User mit session_register wieder einloggen.
Wie mache ich das genau?:confused:
Komme mit den Cookies nicht zurecht.

 
Tpercon
06-09-2002, 21:46 
 
Mein Problem ist eigentlich nur, dass ich die Infos aus dem Cookie nicht wieder ausgelesen bekomme.

 
TobiaZ
07-09-2002, 00:03 
 
Erwähne am Besten immer, was du schon versucht hast. Ich hab jetzt keine Ahnung, wobei ich dir helfen soll.

Auslesen idR. mit $HTTP_COOKIE_VARS

 
Tpercon
07-09-2002, 11:20 
 
Das Setzen des Cockie beim normalen Login:
$zeit = time() + 86400*14;
setcookie ("JTVUsername", $username, $zeit);
setcookie ("JTVPwd", $passwort, $zeit);
Das Auslesen des Cookie:
session_start();

if ((!session_is_registered('username'))and(isset($HTTP_COOKIE_VARS["JTVUsername"])) and (isset($HTTP_COOKIE_VARS["JTVPwd"]))) {
include('config.inc.php');
$link = mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($database,$link);
$result = mysql_query("SELECT pwd,nickname FROM user WHERE nickname = '$HTTP_COOKIE_VARS["JTVUsername"]' and pwd = '$HTTP_COOKIE_VARS["JTVPwd"]' ",$link);
mysql_close($link);
if ($row = mysql_fetch_array($result)) {
header ("Location:verify.php?username=".$HTTP_COOKIE_VARS["JTVUsername"]."&passwort=".$HTTP_COOKIE_VARS["JTVPwd"]);
}
}
Das war mein Versuch! Nur das Auslesen funktioniert halt nicht. Die Variablenübergabe soll später natürlich über unsichtbare Inputfelder geschehen.

 
TobiaZ
07-09-2002, 11:40 
 
Da ich nicht so der Cookieliebhaber bin, hab ich da nicht DIE erfahrung.

Aber man kann mehrere Daten in ein Cookie speichern und dementsprechend solltest du bei der Abfrage nicht auf den Namen des Cookies verweisen, sondern auf dessen Inhalt. Ob das jetzt mit nem Array[1], [2], [3] geht, oder wie, hab ich jetzt nicht im Kopf. Das müsstest du mal nachlesen.

 
Tpercon
07-09-2002, 13:02 
 
Es wid ja auch nur 1 Cockie erstellt mit beiden Infos drin!

 
TobiaZ
07-09-2002, 13:27 
 
Ähm, hast du nicht ein Cookie mit Namen "JTVUsername" und eins namens "JTVPwd" ???

Vielleicht noch mal zur Sicherheit ein Blick ins Manual: setcookie() (http://www.php3.de/manual/de/function.setcookie.php)

 
Tpercon
07-09-2002, 18:16 
 
Das habe ich zuerst ja auch gedacht!
Als ich es dann wie oben ausprobiert habe, stellte sich heraus, dass ein Coockie mit beiden Infos drinnen erstellt wird.
Mein Problem hat sich wahrscheinlich auch erledigt, zumindest bekomme ich den Coockie jetzt doch ausgelesen.

Gruß

 
TobiaZ
08-09-2002, 10:34 
 
Hmm, das ist ja die Hauptsache.

Aber Poste bitte trotzdem nochmal den Code, das ich das nachvollziehen kann.

 
Tpercon
08-09-2002, 15:28 
 
Die Infos für's Cookie werden wie oben gesetzt!
Oder meinst du den Code vom Einlesen?

 
Tpercon
08-09-2002, 19:45 
 
So sieht mein Code beim Einlesen aus:
<?php
session_start();

if ((!session_is_registered('username'))and(isset($HTTP_COOKIE_VARS['JTVUsername'])) and (isset($HTTP_COOKIE_VARS['JTVPwd']))) {
include('config.inc.php');
$link = mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($database,$link);
$query = "SELECT pwd,nickname FROM user WHERE nickname = '$HTTP_COOKIE_VARS[JTVUsername]' and pwd = '$HTTP_COOKIE_VARS[JTVPwd]' ";
$result = mysql_query($query,$link);
mysql_close($link);
if ($row = mysql_fetch_array($result)) {
header ("Location:verify.php?username=".$HTTP_COOKIE_VARS['JTVUsername']."&passwort=".$HTTP_COOKIE_VARS['JTVPwd']); }
}
?>
Leider funktioniert nur die Weiterleitung! nicht, kann's mir aber nicht erklären. Findet jemand einen Fehler? Oder wie kann ich sonst die Variablen übergeben?

 
TobiaZ
08-09-2002, 20:25 
 
Grundsätzlich zu erwähnen: Welche Fehlermedung :teach:

Also, was bekommst du ausgegeben?

 
Tpercon
08-09-2002, 20:38 
 
OK, hab mich vielleicht was falsch ausgedrückt! Es kommt keine Fehlermeldung, nur scheinbar wird die Weiterleitung nicht ausgeführt!
Die Coockieinfos sind aber richtig und eine printanweisung an dieser Stelle wird auch ausgeführt!
Daher muß die Weiterleitung falsch sein. Ich bekomme nämlich keine Rückmeldung von der verify.php! Habs gerade nochmal getestet, es liegt definitiv an der Weiterleitung!

 
TobiaZ
08-09-2002, 20:45 
 
Kommentier die Zeile mit dem Header mal auch und schreib statt dessen mal ein Echo:
echo "Location:verify.php?username=".$HTTP_COOKIE_VARS['JTVUsername']."&passwort=".$HTTP_COOKIE_VARS['JTVPwd'];

 
Tpercon
08-09-2002, 20:50 
 
Ich sagte ja, das funktioniert!
Es muß an dem header Befehl liegen!

 
TobiaZ
08-09-2002, 21:10 
 
der Header vefehl ist aber korrekt!

 
Tpercon
09-09-2002, 13:54 
 
Woran kann es denn sonst liegen?
Hab schon in dem verify.php mir nur die Variablen printen lassen, nur da passiert nichts! wenn ich die print-anweisung anstelle dem header schreibe funktionierts!

 
Tpercon
09-09-2002, 19:27 
 
Hi

Jetzt funktioniert alles!!
Der Code fürs 'Einlesen' war falsch, hier die neue Version:
session_start();

if ((!session_is_registered('username'))and(isset($HTTP_COOKIE_VARS['JTVUsername'])) and (isset($HTTP_COOKIE_VARS['JTVPwd']))) {
include('config.inc.php');
$link = mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($database,$link);
$query = "SELECT pwd,nickname FROM user WHERE nickname = '$HTTP_COOKIE_VARS[JTVUsername]' and pwd = '$HTTP_COOKIE_VARS[JTVPwd]' ";
$result = mysql_query($query,$link);
mysql_close($link);
if ($row = mysql_fetch_array($result)) {
header ("Location:verify.php?username=".$HTTP_COOKIE_VARS['JTVUsername']."&passwort=".$HTTP_COOKIE_VARS['JTVPwd']);
}
}
Also im Wesentlichen nur paar " durch ' ersetzt.

Gruß

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:49 Uhr.