ERLEDIGT
NEIN
NEIN
ANTWORTEN
13
13
ZUGRIFFE
488
488
EMPFEHLEN
-
Hi,
nach der Eingabe der richtigen Benutzerdaten lande ich wieder auf der login-seite. Ich seh den Fehler einfach nicht, hat jemand einen Tip?
php:
logintest
<?php
session_start();
include "db-connect.php";
function check_user($identnr, $pwd)
{
$sql="SELECT userID FROM users WHERE identnr='".$identnr."' AND pwd=MD5('".$pwd."') LIMIT 1";
$result= mysql_query($sql) or die(mysql_error());
if ( mysql_num_rows($result)==1)
{
$user=mysql_fetch_assoc($result);
return $user['userID'];
}
else
return false;
}
function login($userid)
{
$sql="UPDATE users
SET usersession='".session_id()."'
WHERE userID=".$userid;
mysql_query($sql);
}
function logout()
{
$sql="UPDATE users
SET usersession=NULL
WHERE UserSession='".session_id()."'";
mysql_query($sql);
}
if (isset($_POST['login']))
{
$userid=check_user($_POST['identnr'], $_POST['pwd']);
if ($userid!=false) {
login($userid);
$_SESSION['loggedIn'] = $userid;
}
else {header("Location:login.php");};
}
if (!isset($_SESSION['loggedIn'])) {header("Location: login.php"); }
else {header("Location:inhalt/index.html");}
?>
login.php
<a href="anmelden.html">Hier können Sie sich neu registrieren</a>
<?
session_start();
include 'logintest.php';
if (isset($HTTP_POST_VARS['login']))
{
$userid=check_user($HTTP_POST_VARS['identnr'], $HTTP_POST_VARS['pwd']);
if ($userid!=false)
login($userid);
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
if (!login())
echo '<form method="post" action="login.php">
<label>ID-Nummer.:</label><input name="identnr" type="text"><br>
<label>Passwort: </label><input name="pwd" type="password" id="pwd"><br>
<input name="login" type="submit" id="login" value="Login">
</form>';
else
echo '<a href="logout.php"><img src=inhalt/Content/Buttons/Logout.gif border="0"></a>';
?>
-
Also: Anscheinend liefert der Aufruf von check_user einen true-Wert(also einen user) zurück, diesen Teil können wir aus dem debug herausnehmen, genauso wie die db-connect-include-Datei.
Frage:
Wieso speicherst du Session-IDs in der Datenbank...lass Sessions doch einfach Sessions sein und speicher eine Variable, die du dann der Session-Id zuweist auf, dem Server.
Wenn du der Session einen Wert zuweist, kannst du ganz ohne den Datenbankstreß den LogIn verifizieren, nun aber zurück zum login bug:
Hinter If-Else Schleifenbegrenzungsklammern { } hat ein Semikolon NICHTS zu suchen, wenn ich richtig informiert bin.
Ansonsten finde ich jetzt keine Sachen, von denen ich Gänsehaut o.Ä bekomme, tu einfach folgendes:
Mach in die If-Else Blöcke echos rein wie:
Damit kannst du die Stelle ausfindig machen, an der das Script bockt.PHP-Code:if($userid)
{
echo "check user funktion gibt true zurück";
...}
Wenn du diese gefunden hast und den Fehler nicht korrigieren kannst, einfach hier posten
- George Orwell, 1984Who controls the past controls the future. Who controls the present controls the past.
-
irgendwie mach ich es mir zu kompliziert, ich möchte einfach nur ne session aus pwd und identnr erzeugen und dann auf die anderen Seiten weitergeben.
-
langsam zweifel ich an meinem Verstand.
Das Login funktioniert, die HP ist mit frames aufgebaut, habe überall den session-aufruf drin und trotzdem kann ich die seiten normal aufrufen. Ich blick nicht, wie das überhaupt funktionieren kann.
-
Das ist denkbar einfach:
Eine Session an sich ist ein serverseitiges Cookie:
Eine Variable(oder ein Array, wenn du's geschickt verpackst) wird in einem Verzeichnis auf dem Server gespeichert und dieser Variable wird eine ID, eine sog. Session-id zugewiesen.
Wenn du es nun fertigbringst, diese ID dem User zuzuweisen, sprich url?s=$session_id
, kannst du damit diese Variable einem User zuweisen.
Eine einfachere Alternative sind Cookies, da diese dem Client FEST zugeordnet sind und somit nicht über den URL übergeben werden müssen und auch nach Schließen des Browsers lesbar sind.
Es gibt zwar Leute, die keine Cookies akzeptieren, das ist jedoch ein gaaaaaaanz geringer Anteil und das meist auch nur zu Debugzwecken.
Genauere Anleitung zu sessions:
http://www.selfphp.info/funktionsueb...funktionen.php- George Orwell, 1984Who controls the past controls the future. Who controls the present controls the past.
-
irgendwie hab ich im Moment Matschbirne.
Das script soll nur Seiten aufrufen lassen, wenn der user eingeloggt ist. Es wird zwar eine sessionid aufgebau, aber im Grunde kann jeder die seiten aufrufen. Wo liegt hier blos der Fehler?
Damit sollte doch ausgeschlossen sein, dass die Seite aufgerufen werden kann.
PHP-Code:<?
php session_start();
include 'sessionhelpers.inc.php';
if (!logged_in())
die('Sie sind nicht eingeloggt.');
?>Geändert von jbo (20.12.03 um 21:04 Uhr)
-
20.12.03 21:33 #7Huch!PHP-Code:
<?
php session_start();
include 'sessionhelpers.inc.php';
if (!logged_in())
die('Sie sind nicht eingeloggt.');
?>
Was willst du denn damit verhindern? Das Anzeigen der sessionhelpers.inc? Das machst du so:Mach dich mal grundlegend über if/else-Anweisungen schlau.PHP-Code:<?
php session_start();
if(logged_in())
include 'sessionhelpers.inc.php';
else
die('Sie sind nicht eingeloggt.');
?>
-
man, schreib ich müll, ich will verhindern, dass die seiten nur von eingeloggten usern gesehen werden
Geändert von jbo (20.12.03 um 21:36 Uhr)
-
das script ist nach dem tut von mr. hapiness aufgebaut. irgendwo muss der fehler sein, dass die seiten auch aufgerufen werden, wenn keiner eingeloggt ist, ich kann nur den fehler nicht finden
-
20.12.03 23:29 #10
Erm sorry aber könntest du dich mal entscheiden was du eigentlich willst? Soll jetzt jeder die Seite betrachten können oder nur eingeloggte User?
-
sorry, hab mich unklar ausgedrückt . ich möchte, dass nur eingelogte user die Seite sehen können, nicht eingelogte sollen auf die index geschickt werden.
so sieht es zur Zeit aus und er zeigt die seite an.
<?
php session_start();
if (logged_in()){
include 'sessionhelpers.inc.php';}
else {
die('Sie sind nicht eingeloggt.');
header("location: ../jens/index.html");
}
?>
-
ok, das ganze muss mit include laufen, soweit hab ichs verstanden
aber das funktioniert auch nicht
<?
php session_start();
if(logged_in()){
include 'sessionhelpers.inc.php';}
else {
die('Sie sind nicht eingeloggt.');
include 'http://xxx/login.php';
}
?>
-
21.12.03 08:39 #13
Ok, dann machen wir jetzt mal Debugging. Probier mal folgendes:
Was erscheint da?PHP-Code:php session_start();
if(logged_in()){
echo "eingeloggt";
else {
echo "nicht eingeloggt";
}
-
habe den grundlegenden Fehler, habe webspace bei 1und1, die php-konfiguration lässt mich kein html parsen, werde alles auf php umcoden,Original geschrieben von jbo
ok, das ganze muss mit include laufen, soweit hab ichs verstanden
aber das funktioniert auch nicht
<?
php session_start();
if(logged_in()){
include 'sessionhelpers.inc.php';}
else {
die('Sie sind nicht eingeloggt.');
include 'http://xxx/login.php';
}
?>
für Eure Hilfe
Ähnliche Themen
-
Login klappt nicht
Von LarsB im Forum PHPAntworten: 2Letzter Beitrag: 09.04.10, 10:01 -
Login klappt nicht mit ENTER
Von Kaeschdin im Forum PHPAntworten: 11Letzter Beitrag: 08.09.08, 11:40 -
Flash Login klappt nicht
Von Rico2000 im Forum Flash PlattformAntworten: 0Letzter Beitrag: 01.07.08, 16:00 -
Login klappt nicht!
Von ToWeR im Forum PHPAntworten: 7Letzter Beitrag: 07.04.04, 22:46 -
Login Überprüfung klappt nicht
Von badi im Forum PHPAntworten: 4Letzter Beitrag: 02.02.03, 23:51





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren